• Non ci sono risultati.

Riccardo Solmi

N/A
N/A
Protected

Academic year: 2021

Condividi "Riccardo Solmi"

Copied!
5
0
0

Testo completo

(1)

© 2003-2004 Riccardo Solmi 1

TITLE

Assembler MIPS 32 Progetto

Dama

Riccardo Solmi

Introduzione

ƒ Scopo del progetto

• Scrivere un programma per giocare a dama

ƒ Scopi didattici del progetto

• Imparare a scrivere in assembly un programma con una logica semplice ma articolata

ƒ Trovate tutto nella pagina web relativa a questo corso:

(2)

© 2003-2004 Riccardo Solmi 3

Regole del gioco: componenti

ƒ 1 Scacchiera

• 8x8 caselle (righe 1..8, colonne A..H)

ƒ 2 Giocatori

• bianco e nero

ƒ 24 Pezzi

• 12 x giocatore (‘o’=bianco, ‘x’=nero)

• Pezzo = pedina o dama

(minuscolo=pedina, maiuscolo=dama)

ƒ Disposizione iniziale

• Come in figura

--- 8 |x| |x| |x| |x| | 7 | |x| |x| |x| |x|

6 |x| |x| |x| |x| | 5 | | | | | | | | | 4 | | | | | | | | | 3 | |o| |o| |o| |o|

2 |o| |o| |o| |o| | 1 | |o| |o| |o| |o|

--- A B C D E F G H

© 2003-2004 Riccardo Solmi 4

Regole del gioco: scopo del gioco

ƒ A turno ogni giocatore fa una mossa

• Sposta un pezzo eventualmente cattura dei pezzi avversari

• Vedi prossimo lucido per mosse valide

ƒ Scopo: catturare tutti i pezzi dell’avversario

• Il gioco termina quando un giocatore resta senza pezzi

• L’altro viene proclamato vincitore

(3)

© 2003-2004 Riccardo Solmi 5

Regole del gioco: tipi di mosse

ƒ Spostamento:

• In diagonale in una casella adiacente libera

• Verso il lato opposto della scacchiera (pedine)

• In una qualsiasi direzione (dame)

ƒ Cattura:

• In diagonale ci devono essere:

un pezzo avversario e una casella libera

• Mi sposto nella casella libera e catturo il pezzo avversario (lo tolgo dalla scacchiera)

• Per la direzione valgono le stesse regole dello spostamento

Regole del gioco: tipi di mosse (facoltative)

ƒ Cattura multipla

• La regola di cattura può essere applicata più volte di seguito in una stessa mossa

• Tra una cattura e la successiva posso cambiare direzione

ƒ Promozione

• Quando una pedina arriva in una casella del bordo avversario della scacchiera viene promossa a dama

(4)

© 2003-2004 Riccardo Solmi 7

Vincoli implementativi: funzionamento

ƒ Mostro la scacchiera con sopra i pezzi

ƒ Chiedo al giocatore di turno di fare una mossa

Ogni casella è identificata da una coppia di caratteri colonna-riga. Es. B1

Una mossa viene scritta come una sequenza di caselle: iniziale, eventuali intermedie, finale.

Es. B3A4

ƒ Eseguo la mossa

Se la mossa è valida la eseguo, mostro la scacchiera aggiornata e passo al turno successivo.

In caso di mossa non valida mostro un messaggio appropriato e ripeto la richiesta della mossa

In caso di vittoria proclamo il vincitore e termino il programma

ƒ NB. Per Input/Output si utilizza la console di SPIM

--- 8 |x| |x| |x| |x| | 7 | |x| |x| |x| |x|

6 |x| |x| |x| |x| | 5 | | | | | | | | | 4 | | | | | | | | | 3 | |o| |o| |o| |o|

2 |o| |o| |o| |o| | 1 | |o| |o| |o| |o|

--- A B C D E F G H Mossa bianco: B3A4

© 2003-2004 Riccardo Solmi 8

Vincoli implementativi: codice

ƒ Il programma deve essere composto da un insieme di funzioni che rispettino tutte le convenzioni.

ƒ Il programma deve iniziare con un commento contenente:

• Nome e Cognome di tutti i membri del gruppo

• Descrizione delle scelte fatte e delle principali funzioni definite.

(5)

© 2003-2004 Riccardo Solmi 9

Consegna

ƒ Spedire una e-mail con allegato:

• Un file ARCHxxx.s, contenente il programma.

• xxx deve essere sostituito con le iniziali dei cognomi dei membri del gruppo in ordine alfabetico.

• Esempio: Marco Rossi e Giovanni Neri consegnerebbero un file chiamato ARCHnr.s

ƒ Entro una delle seguenti date:

28/01/05, 18/02/05 o 24/06/05

Riferimenti

Documenti correlati

•• Determiniamo se p ed i suoi figli possono essere eliminati dall'albero. Determiniamo se p ed i suoi figli possono essere eliminati dall'albero. Se p è un nodo min, sia alfa

Unconditionally jump to the instruction whose address is in register rsource and save the address of the next instruction in register rdest. © 2002-2004 Alberto Montresor,

• Una word può essere usata anche per contenere l’indirizzo di un’altra struttura dati; in questo caso si dice che punta o che è un puntatore a quest’ultima.. • Una funzione

• Ogni Design Pattern ha un nome, un campo di applicabilità, uno schema di soluzione e una descrizione delle conseguenze della sua applicazione.... © 2002-2007

• Posso rendere pubblico e usabile il metodo clone in una classe astratta ed estenderlo in tutti i costrutti del linguaggio. • Ogni tipo concreto deve far proseguire la copia

• An object structure contains many classes of objects with differing interfaces, and you want to perform operations on these objects that depend on their classes.. • The

Dopo aver risposto alla prima domanda, stampate il disegno su carta o cartoncino, ritagliate i vari pezzi e ricostruite il puzzle quadrato di Aurelia usando i cinque pezzi

La condivisione dei contenuti, le interazioni con gli altri utenti, la gestione della propria identità sui vari profili social e la scelta del linguaggio con cui manifestare