Tester l'algorithme :
Graphique :
Code de l'algorithme :
1
VARIABLES
2
i EST_DU_TYPE NOMBRE
3
lg EST_DU_TYPE NOMBRE
4
a EST_DU_TYPE NOMBRE
5
b EST_DU_TYPE NOMBRE
6
L EST_DU_TYPE LISTE
7
j EST_DU_TYPE NOMBRE
8
x EST_DU_TYPE NOMBRE
9
y EST_DU_TYPE NOMBRE
10
yoshi EST_DU_TYPE NOMBRE
11
v EST_DU_TYPE NOMBRE
12
w EST_DU_TYPE NOMBRE
13
n EST_DU_TYPE NOMBRE
14
m EST_DU_TYPE NOMBRE
15
k EST_DU_TYPE NOMBRE
16
DEBUT_ALGORITHME
17
LIRE n
18
LIRE m
19
POUR w ALLANT_DE 1 A m
20
DEBUT_POUR
21
POUR v ALLANT_DE 1 A n
22
DEBUT_POUR
23
L[(w-1)*3*n+1+3*(v-1)] PREND_LA_VALEUR v
24
L[(w-1)*3*n+2+3*(v-1)] PREND_LA_VALEUR w
25
L[(w-1)*3*n+3+3*(v-1)] PREND_LA_VALEUR 1
26
FIN_POUR
27
FIN_POUR
28
POUR k ALLANT_DE 1 A 3*n*m
29
DEBUT_POUR
30
AFFICHER L[k]
31
FIN_POUR
32
yoshi PREND_LA_VALEUR 1
33
POUR j ALLANT_DE 1 A n*m
34
DEBUT_POUR
35
SI ((L[3*(j-1)+3])%2==1) ALORS
36
DEBUT_SI
37
a PREND_LA_VALEUR L[3*(j-1)+1]
38
b PREND_LA_VALEUR L[3*(j-1)+2]
39
TRACER_SEGMENT (a-1/2,b-1/2)->(a+1/2,b-1/2)
40
TRACER_SEGMENT (a-1/2,b+1/2)->(a-1/2,b-1/2)
41
TRACER_SEGMENT (a+1/2,b-1/2)->(a+1/2,b+1/2)
42
TRACER_SEGMENT (a-1/2,b+1/2)->(a+1/2,b+1/2)
43
TRACER_POINT (a,b)
44
FIN_SI
45
FIN_POUR
46
PAUSE
47
yoshi PREND_LA_VALEUR 1
48
TANT_QUE (L[3]==1) FAIRE
49
DEBUT_TANT_QUE
50
SI (yoshi%2==1) ALORS
51
DEBUT_SI
52
AFFICHER "Joueur 1"
53
FIN_SI
54
SI (yoshi%2==0) ALORS
55
DEBUT_SI
56
AFFICHER "Joueur 2"
57
FIN_SI
58
AFFICHER "Rentrez les coordonnée de la case"
59
LIRE x
60
LIRE y
61
SI (L[3*n*(y-1)+3*x]==1) ALORS
62
DEBUT_SI
63
POUR j ALLANT_DE 1 A n*m
64
DEBUT_POUR
65
SI ((L[3*(j-1)+1])>=x ET (L[3*(j-1)+2])>=y) ALORS
66
DEBUT_SI
67
L[3*(j-1)+3] PREND_LA_VALEUR 0
68
FIN_SI
69
FIN_POUR
70
POUR j ALLANT_DE 1 A n*m
71
DEBUT_POUR
72
SI ((L[3*(j-1)+3])%2==0) ALORS
73
DEBUT_SI
74
a PREND_LA_VALEUR L[3*(j-1)+1]
75
b PREND_LA_VALEUR L[3*(j-1)+2]
76
TRACER_SEGMENT (a-1/2,b-1/2)->(a+1/2,b-1/2)
77
TRACER_SEGMENT (a-1/2,b+1/2)->(a-1/2,b-1/2)
78
TRACER_SEGMENT (a+1/2,b-1/2)->(a+1/2,b+1/2)
79
TRACER_SEGMENT (a-1/2,b+1/2)->(a+1/2,b+1/2)
80
TRACER_SEGMENT (a-1/2,b-1/2)->(a+1/2,b+1/2)
81
TRACER_SEGMENT (a-1/2,b+1/2)->(a+1/2,b-1/2)
82
TRACER_POINT (a,b)
83
FIN_SI
84
FIN_POUR
85
yoshi PREND_LA_VALEUR (yoshi+1)%2
86
FIN_SI
87
SINON
88
DEBUT_SINON
89
AFFICHER "Rejouez"
90
FIN_SINON
91
FIN_TANT_QUE
92
AFFICHER " Game Over !"
93
AFFICHER "Victoire du "
94
SI (yoshi%2==1) ALORS
95
DEBUT_SI
96
AFFICHER "joueur 1"
97
FIN_SI
98
SINON
99
DEBUT_SINON
100
AFFICHER "joueur 2"
101
FIN_SINON
102
FIN_ALGORITHME