Universit ́e de Strasbourg
UFR de math ́ematiques et d’informatique
Architecture des Puissance 4
AFABREGUE et Tiago TREVISAN JOST 11 f ́evrier 2022
Copyright By PowCoder代写 加微信 powcoder
Introduction
Le but de ce projet est d’impl ́ementer un petit jeu populaire : le puissance 4. A titre de rappel, ce jeu se joue `a deux, l’objectif ́etant d’ˆetre le premier joueur `a aligner 4 jetons de sa couleur, soit de mani`ere verticale, horizontale ou diagonale. Le code sera r ́ealis ́e en assembleur MIPS, et ex ́ecut ́e grˆace `a l’ ́emulateur Mars. Le projet est `a r ́ealiser en binˆomes, et `a rendre avant 06/03/2022 `a 23h59 en respectant l’ensemble des sp ́ecifications donn ́ees dans la section 1. L’archive projet.zip contient :
— le pr ́esent document
— le code assembleur de d ́epart `a compl ́eter
1 Sp ́ecifications
Votre code prendra la forme d’un fichier .asm, ex ́ecutable grˆace `a l’ ́emulateur Mars4 5. Lors de son ex ́ecution, il demandera `a chaque joueur `a tour de rˆole de donner le num ́ero de colonne (de 1 `a 7) ou` positionner le jeton. Le jeu prendra fin lorsqu’une des conditions d’arrˆet est rencontr ́ee. La Figure 1 donne un exemple d’affichage obtenu grˆace au simulateur MIPS apr`es quelques tours entre les joueurs. La visualisation du jeu correspondra `a une repr ́esentation graphique d’un segment de m ́emoire statique, fournie par les outils de Mars. Cette partie est d ́ej`a impl ́ement ́ee.
Le rendu prendra la forme d’une archive nomm ́ee Nom1 Nom2.zip, qui contiendra : le fichier .asm et un rapport au format .pdf de maximum 2 pages expliquant les choix effectu ́es durant la conception de votre projet, vos structures de donn ́ees, qui a fait quoi, les difficult ́es rencontr ́ees, les fonctionnalit ́es ajout ́ees, et autres observations que vous jugez utiles. Cette archive sera d ́epos ́ee avant le 06/03/2022 `a 23h59 sur la plateforme Moodle. La suite de ce document pr ́esente quelques aides sur l’utilisation de l’ ́emulateur Mars (section 2), un r ́esum ́e exhaustif de l’ex ́ecution attendue (section 3) ainsi que les fonctionnalit ́es `a impl ́ementer (section 4).
Figure 1 – Exemple d’affichage 1
Figure 2 – Configuration de la fenˆetre BitMap Diplay 2 Mars et appels syst`eme
L’ ́emulateur Mars se lance `a partir de l’archive java Mars4 5.jar grˆace `a la commande java -jar Mars4 5.jar. Pour lancer votre programme, vous devez charger votre fichier puissance 4.asm. Ensuite, vous devez activer l’affichage en allant dans l’onglet Tools pour lancer Bitmap Display. Dans l’outil BitMap Display utilisez la configuration telle qu’indiqu ́e dans la figure 2, vous devez s ́electionner une taille de pixel 16×16 (1), une fenˆetre carr ́ee 512×512 (2), la zone m ́emoire point ́ee `a heap (3). Ne pas oubliez de connecter le widget `a votre code MIPS avant de l’assembler (4).
D ́eroulement du jeu
D ́ecrivons le d ́eroulement d’une partie de puissance 4 en analysant la boucle principale de jeu :
1. On demande au joueur X de choisir une colonne ou` jouer avec un chiffre entre 1 et 7.
2. On d ́etermine ou` le jeton sera situ ́e dans la colonne. Si aucun jeton n’est pr ́esent dans la colonne le jeton est plac ́e sur au bas de la colonne. Sinon il est plac ́e au-dessus des autres jetons.
3. On sauvegarde la position du jeton en m ́emoire jusqu’`a la fin de la partie et on l’affiche en mettant `a jour les adresses m ́emoires correspondantes.
4. On regarde si ce dernier jeton a permis au joueur X de gagner. Si ce n’est pas le cas, on v ́erifie que la grille n’est pas pleine, sinon on d ́eclare une ́egalit ́e.
5. Si le joueur X a gagn ́e ou qu’il y a ́egalit ́e on l’affiche sur la console et on arrˆete, sinon le joueur X devient le joueur suivant et on revient `a l’ ́etape 1.
Travail `a fournir
Les fonctions d’affichage graphique et de rafraˆıchissement sont d ́ej`a impl ́ement ́es, aucune modifi- cation n’est `a apporter dans cette partie du code source. Vous devez programmer les fonctionnalit ́es suivantes :
— D ́eterminer la position du jeton qui vient d’ˆetre jou ́e
— Tester si la condition de fin de jeu est remplie (victoire ou ́egalit ́e). — Proposer dans la console de relancer une partie
De plus, le code doit ˆetre comment ́e de fac ̧on `a pouvoir comprendre l’utilisation des registres tempo- raires.
Le projet est consid ́er ́e comme fini lorsque ce cahier des charges est respect ́e. N ́eanmoins, pour avoir la note maximale, une fonctionnalit ́e suppl ́ementaire peut ˆetre ajout ́ee. Celle-ci peut ˆetre choisie parmi celles list ́ees ci-dessous :
— Proposez en d ́ebut de partie `a chaque joueur de choisir une couleur (diff ́erente) parmi un en- semble propos ́e via la console.
— Affichez le joueur gagnant `a la fin de la partie sur la fenˆetre BitMap Display.
Toutefois, une autre proposition de fonctionnalit ́e peut ˆetre choisi et sera ́evalu ́ee comme devant avoir une complexit ́e avec celles propos ́ee pr ́ec ́edemment (mais restez simple).
Enfin, il est interdit d’utiliser le mot-cl ́e .macro. 5 Bar`eme
Le projet sera ́evalu ́e selon le bar`eme suivant :
— Le projet compile (1pts)
— Le code est lisible et bien comment ́e (2pts)
— Le choix de structure de donn ́ees (1,5pts)
— Le calcul de la position est bien fait (4pts)
— La condition de victoire est bien calcul ́ee (6pts)
— Le programme permet bien de relancer une partie (3pts) — la fonctionnalit ́e bonus (2,5pts)
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com