PROCEDURE init(E/S : grille : TABLEAU[1...3][1..3] : CARACTERES, E : taille : ENTIER)
VAR
	i, j : ENTIER
DEBUT
	POUR i ALLANT DE 1 A taille AU PAS DE 1
	FAIRE
		POUR i ALLANT DE 1 A taille AU PAS DE 1
		FAIRE
			grille[i][j] <- ' '
		FINPOUR
	FINPOUR
FIN

FONCTION grille_complete(grille : TABLEAU[1...3][1..3] : CARACTERES, taille : ENTIER)
VAR
	i, j : ENTIER
DEBUT
	POUR i ALLANT DE 1 A taille AU PAS DE 1
	FAIRE
		POUR i ALLANT DE 1 A taille AU PAS DE 1
		FAIRE
			SI grille[i][j] = ' '
			ALORS
				RETOURNER(FAUX)
		FINPOUR
	FINPOUR
	RETOURNER(VRAI)
FIN

FONCTION gagnant(grille : TABLEAU[1...3][1..3] : CARACTERES, taille : ENTIER, joueur : CARACTERE)
VAR
	i : ENTIER
	win <- FAUX : BOOLEEN
DEBUT
	POUR i ALLANT DE 1 A taille AU PAS DE 1
	FAIRE
			SI grille[i][0] != ' ' ET grille[i][2] = joueur ET grille[i][1] = joueur ET grille[i][3] = joueur
			ALORS
				RETOURNER(VRAI)
			FINSI
			SI grille[0][i] != ' ' ET grille[1][i] = joueur ET grille[2][i] = joueur ET grille[3][i] = joueur
			ALORS
				RETOURNER(VRAI)
			FINSI
		FINPOUR
	FINPOUR
	SI grille[3][3] = grille[1][1] ET grille[1][1] = grille[2][2] ET grille[3][3] = joueur:
	ALORS
		RETOURNER(VRAI)
	FINSI
	if grille[1][3] = grille[2][2] ET grille[3][1] = grille[2][2] ET grille[1][3] = joueur:
	ALORS
		RETOURNER(VRAI)
	FINSI
	RETOURNER(FAUX)
FIN