Informatique – MP Faidherbe TP4 : Le Jeu du Morpion

Transcription

Informatique – MP Faidherbe TP4 : Le Jeu du Morpion
Informatique – MP Faidherbe
TP4 : Le Jeu du Morpion
Alix Goguey - [email protected]
année 2012-2013
1
Introduction
Aujourd’hui nous implémenterons... TADAA... le jeu du Morpion ! Je doute qu’un
rappel des règles soit utile alors on va commencer tout de suite !
Dans un premier temps nous ferons toutes les fonctions de base en mode console. Par
la suite, nous implémenterons une interface graphique.
2
La grille
Le jeu du morpion se situe sur une grille de 3 par 3. Sur chacune des cases, on peut
placer une croix ou un rond (si la case n’est pas vide). Mettons-nous d’accord sur un type
case.
type c a s e = Croix | Rond | Vide ; ;
Figure 1: Une grille de morpion
Exercice 1 : Définissez une représentation de grille avec la structure de données que
vous souhaitez.
1
Exercice 2 : Implémentez la fonction affiche qui prend en argument une grille g et
affiche votre plateau de jeu (affichage en mode console pour le moment).
3
Configuration gagnante
Exercice 3 : Implémentez la fonction test_ligne qui prend en argument une grille g et
un indice de ligne i et qui renvoie un booléen true si la ligne i est gagnante, un booléen
false sinon.
Exercice 4 : De même, implémentez la fonction test_colonne qui prend en argument
une grille g et un indice de colonne j et qui renvoie un booléen.
Exercice 5 : De même, implémentez la fonction test_diag qui prend en argument une
grille g et qui teste directement les 2 diagonales de la grille et qui renvoie un booléen.
Exercice 6 : Implémentez la fonction test_grille qui prend en argument une grille g
et renvoie un booléen true si la configuration de la grille courante est gagnante.
4
Placer un pion et jouer
Exercice 7 : Implémentez la fonction placePion qui prend en argument une grille g,
une case c et des indices de ligne et de colonne i et j. Cette fonction modifiera la case de
la grille g par la case c si celle-ci est modifiable (i.e. si celle-ci est Vide). Pour indiquer
que la grille a été modifiée la fonction renverra un booléen true et un booléen false
sinon.
Exercice 8 : Implémentez la fonction initGrille qui renvoie une grille de morpion
initialisée (i.e. toutes les cases sont vides).
Exercice 9 : Implémentez la fonction finJeu qui prend en paramètre une grille g et
renvoie un booléen true si la grille est pleine et false sinon.
Exercice 10 : Implémentez la fonction jouerHvsH qui prend en paramètre 2 noms et
qui déroule une partie entre 2 utilisateurs humains.
l e t x = read_int ( ) ; ; (∗ demande un e n t i e r a l ’ u t i l i s a t e u r ∗)
(∗ l ’ e n t i e r e s t s t o c k e dans x
∗)
5
Interface graphique
Exercice 11 : Implémentez la fonction affiche_graph qui prend en argument une grille
g et affiche votre plateau de jeu.
2
#l o a d " g r a p h i c s . cma " ; ;
open Graphics ; ;
open_graph " 640 x600 " ; ;
(∗ q u e l q u e s f o n c t i o n s u t i l e s ∗)
clear_graph ( ) ; ;
(∗ t r a c e r une l i g n e e n t r e ( x1 , y1 ) e t ( x2 , y2 ) ∗)
moveto x1 y1 ; ;
l i n e t o x2 y2 ; ;
(∗ t r a c e r un c e r c l e de c e n t r e ( x , y ) e t de rayon r ∗)
draw_circle x y r ; ;
Exercice 12 : Adaptez votre fonction jouerHvsH pour que le jeu puisse se faire en cliquant directement sur le graphique.
(∗ q u e l q u e s f o n c t i o n s u t i l e s
∗)
(∗ v o i r l a page s u r l e Module Graphics ∗)
button_down ( ) ; ;
mouse_pos ( ) ; ;
(∗ exemple ∗)
w h i l e ( not ( button_down ( ) ) ) do
pos := mouse_pos ( ) ;
done ;
3

Documents pareils