Licence Informatique Info0101
Exercice 3 (Tic-tac-toe)
L’article de Wikipédia décrit les règles du jeu comme suit : “Le Tic-tac-toe se joue sur une grille carrée de 3x3 cases.
Deux joueurs s’affrontent. Ils doivent remplir chacun à leur tour une case de la grille avec le symbole qui leur est
attribué : O ou X. Le gagnant est celui qui arrive à aligner trois symboles identiques, horizontalement, verticalement
ou en diagonale.”.
1
˚
) Nous souhaitons écrire l’algorithme du jeu du Tic-tac-toe. Pour cela, on souhaite utiliser un tableau à 2 dimensions.
À votre avis, quel est le type de ce tableau ?
2
˚
) On suppose disposer de la fonction gagne(grille : tableau de tableaux d’entiers) : entier qui retourne
0 si aucun joueur n’a gagné, 1 si c’est le joueur 1 qui a gagné et 2 si c’est le joueur 2. Écrivez l’algorithme principal
du jeu.
3
˚
) Nous souhaitons écrire la fonction gagne.
a) Combien y’a-t-il de combinaisons gagnantes dans ce jeu ?
b) Proposez un algorithme simple pour vérifier si la première ligne de la grille contient 3 symboles identiques.
c) Généralisez cet algorithme pour toutes les lignes.
d) Idem pour les colonnes.
e) À l’aide des questions précédentes, écrivez la fonction gagne. N’oubliez pas de vérifier les 2 diagonales !
4
˚
) Écrivez le jeu du Tic-tac-toe en Java.
Exercice 4 (Le jeu des petits carrés)
Le jeu des petits carrés se joue à deux joueurs. Le but du jeu est le suivant : à chaque tour, chaque joueur trace un
petit trait suivant le quadrillage de la feuille afin de fermer des carrés. Le gagnant est celui qui en a fermé le plus. Pour
cet exercice, on choisit de représenter la grille de jeu sous la forme d’un tableau à 2 dimensions. Ce tableau contient
les informations concernant les carrés (déjà formés ou non) et les traits (tracés ou non). Si une case correspondant
à un carré est à 0, le carré n’est pas encore formé. Dans le cas contraire, la case est à 1. De même, pour les cases
correspondant aux traits.
0 0 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 1 1 1
0 0 0 1 0
0 0
0 1
0 0
0 1 0
0 1
0 1 1
0 1
. . .
|
. . — .
| |
. . — .
Représentation du jeu Cases pour les carrés Cases pour les traits Le jeu
1
˚
) En prenant un quadrillage de l×h, combien peut-on faire de carrés ? Écrivez un algorithme permettant de parcourir
uniquement les cases correspondant aux carrés.
2
˚
) Écrivez l’algorithme permettant de mettre à jour la valeur de la case (i,j) correspondant à un carré, en fonction
de ses traits.
3
˚
) Écrivez l’algorithme permettant de mettre à jour les cases correspondant aux carrés lorsqu’un trait est tracé sur
la case (i,j) (ie lorsque la case (i,j) est mise à 1).
4
˚
) Écrivez le jeu des petits carrés en Java.
2012/2013 – Travaux dirigés n
˚6page 2/2