Skip to content
Snippets Groups Projects
user avatar
klau authored
42b93539

Projet Puissance-4 en assembleur MIPS

I. Introduction

L'assembleur MIPS est basé sur une architecture registre-registre ne pouvant travailler que sur des données dans le banc de registres. Principalement utilisé dans les consoles de jeux vidéo, nous avons illustré ses principes fondamentaux à travers l'implémentation du jeu Puissance-4.

II. Puissance-4

1. Règles du jeu

Jeu de stratégie pour 2 joueurs se déroulant sur une grille de 6 lignes × 7 colonnes.

Mécaniques :

  • Chaque joueur dispose de 21 jetons d'une couleur
  • Tour par tour, les joueurs placent un jeton dans une colonne
  • Le jeton tombe à la position la plus basse disponible
  • Victoire en alignant 4 jetons consécutifs (horizontal, vertical ou diagonal)
  • Match nul si la grille est remplie sans alignement

2. Personnalisation du jeu

À partir d'un code de base fourni par les enseignants, nous avons ajouté des fonctionnalités pour :

  • Améliorer l'expérience utilisateur
  • Rendre le jeu plus dynamique et original

III. Structure du programme

Organisation du travail

  1. Recherches individuelles sur les différentes parties
  2. Mise en commun et sélection des solutions optimales
  3. Répartition des tâches :
    • Setayesh :
      • Gestion du relancement du jeu (PlayerWon)
      • Calcul des positions des jetons (UpdateRecord)
    • King :
      • Vérification des victoires (WinCheck)
      • Implémentation du choix des couleurs

Fonctions clés

Fonction Description
UpdateRecord Détermine la position exacte du jeton et met à jour l'état du jeu. Vérifie : validité de la colonne (1-7), prochaine ligne vide, ajout du numéro du joueur
WinCheck Vérifie les alignements gagnants (horizontal, vertical, diagonal) et l'état de la grille
GameTie Gère les matchs nuls et propose de relancer une partie

IV. Conclusion

Bilan

Projet enrichissant nécessitant :

  • Des recherches préalables approfondies
  • Une collaboration étroite pour résoudre les défis techniques

Difficultés rencontrées

  1. Réinitialisation du plateau pour une nouvelle partie
  2. Calcul précis des positions des jetons

Solutions trouvées grâce à une approche collaborative et méthodique.


Réalisé par :
Seyedehsetayesh GHAMAT et King Lau