Durant mon année de SEICOM, nous devions faire un programme pour apprendre les bases du C. J'ai donc décidé de programmer le jeu awalé, dont je possédais un exemplaire et qui est un jeu africain peu connu.

Mission

> Analyse

Je me suis renseigné sur les règles du jeu awalé, j'ai analysé les phases de jeu et les conditions de victoire.

> Acquisition du coup

Chaque case du plateau a été numérotée. Je vérifie si le coup joué est bien une case du plateau de notre camp.

awale invalid

> Droit de semer

Je vérifie que le coup saisi est valide (case non vide, ou si l'adversaire n'est pas en "famine").

awale famine

> Semer

Si le coup est valide, je prends toutes les graines de la case puis je les égraine dans toutes les cases qui suivent sur sa rangée puis sur celle de l'adversaire suivant le sens de rotation (une graine dans chaque trou après le trou où j'ai récupéré les graines).

> Recolter

Si sa dernière graine tombe dans un trou du camp adverse et qu'il y a maintenant deux ou trois graines dans ce trou, le joueur récupère ces deux ou trois graines et les met de côté. Ensuite on regarde la case précédente : si elle est dans le camp adverse et contient deux ou trois graines, il récupère ces graines, et ainsi de suite jusqu'à ce qu'il arrive à son camp ou jusqu'à ce qu'il y ait un nombre de graines différent de deux ou trois. Ainsi le score du joueur augmente.

> Victoire

Le but du jeu est d'avoir récupéré le plus de graines à la fin de la partie. J'ai donc comparé les scores obtenus pendant les tours de jeu préalablement enregistrés dans une variable ou lorsque un joueur abandonne la partie.

awale fin

> IHM

J'ai fait un affichage simple sur l'Invité de commande, pour afficher le menu et le déroulement de la partie. Pour consacrer plus de temps aux fonctionnalités qu'à l'esthétique.

awale menu

> Multi-joueur

Lorsqu'il y a deux joueurs, ils jouent chacun leur tour. Pour jouer solo, j'ai créé une intelligence artificielle basique.

> Debug

Pour me permettre de mieux analyser les bugs que j'ai pu rencontré, je sauvegardais les parties, mais j'ai aussi créé un test dans le menu, où je pouvais arranger le plateau de jeu comme je le voulais pour mieux détecter l'endroit où se produisait le bug.

awale test

Technologies

Notepad++, C

Programmes et/ou compte rendu

Télécharger

Bilan

|Le + : Codage complet d'un jeu

|Le – : Visuel trop simpliste