Bonjour, j'ai un projet de fin d'année et je me demandais si vous aviez des idées pour pouvoir faire évoluer mon jeu. Toutes les idées seraient la bien venue puisque je ne sais pas vraiment comment l'améliorer.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
 
program PL1vsCPU;
uses wincrt,crt;
Var Tirage: Array[1..10,1..2] of integer;
  MiseJoueur,MiseC: Array [1..10] of integer;
  X,I,Y,TotC,TotP,Mise1,MiseCPU,Ligne: integer;
  Verif,Verif2: string;
 
begin
  Randomize;
  Verif:='';TotP:=0;
 
    WRITELN('                     Vie ou Mort');
  WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;
  WRITE('Voulez vous connaitre les ''regles'' ou ''jouer'' ? ');READLN(Verif);
 
  if (Verif='regles') then
     BEGIN
       Clrscr;
       WRITELN('Le principe de base est simple:');
       WRITELN('Le joueur declare sa propre mise, et celle de l''IA au debut du jeu.');
       WRITELN('Vous miserez sur 10 emplacements.');
       WRITELN('Il est possible de miser 0 sur tous les emplacements.');
       WRITELN('Mais il est deconseille de jouer plusieurs fois 0 !');
       WRITELN('L''ordinateur ne jouera pas (en general) 0');
       READLN;
       Clrscr;
       WRITELN('Ensuite un tirage est fait');
       WRITELN('Si l''emplacement est pris, il y a deux cas:');
       WRITELN('   -L''emplacement est pris en vie, dans ce cas, le joueur remporte 5x sa mise sur l''emplacement');
       WRITELN('   -L''emplacement est pris en mort, dans ce cas, le joueur perd 5x sa mise sur l''emplacement');
       WRITELN('''V'' signifie vide, signifie que l''emplacement est vide.');
       WRITELN('''X'' signifie mort, signifie que l''emplacement est pris en mort.');
       WRITELN('''O'' signifie vie, signifie que l''emplacement est pris en vie.');
       WRITELN('Il y a 40% de chance (ou de malchance) qu''un emplacement soit pris');
       WRITELN('Enfin le joueur gagnant est celui qui a encore de l''argent pour miser');
 
 
       WRITELN;
       WRITELN('Voulez vous ''jouer'' ? ');READLN(Verif);
     end;
  if (Verif='jouer') then
     BEGIN
       Clrscr;
       Verif:='oui';
     end;
 
  While (Verif='oui') DO
        BEGIN
          WRITE('Indiquez la mise du joueur : ');READLN(Mise1);
          WRITE('Indiquez la mise de l''ordinateur: ');READLN(MiseCPU);
          Clrscr;
          While ((Mise1<0) or (MiseCPU<0)) DO
                BEGIN
                  WRITELN('Erreur Veuillez ressaisir les mises');
                  WRITE('Indiquez la mise du joueur : ');READLN(Mise1);
                  WRITE('Indiquez la mise de l''ordinateur: ');READLN(MiseCPU);
                  Clrscr
                end;
          if (Mise1<>MiseCPU) then
             BEGIN
               WRITE('Vous avez entre des valeur differentes.');
               WRITE('Voulez vous ressaisir les mises ? ');READLN(Verif2);
               if (Verif2='oui') then
                  BEGIN
                    WRITE('Indiquez la mise du joueur : ');READLN(Mise1);
                    WRITE('Indiquez la mise de l''ordinateur: ');READLN(MiseCPU);
                    if (Mise1<>MiseCPU) then
                       BEGIN
                         WRITE('Vous avez entre des mises differentes.');READLN;
                         WRITELN('Le jeu continue');
                       end;
                  end;
               READLN;Clrscr;
             end;
          WHILE ((Mise1>0) or (MiseCPU>0)) DO
                BEGIN
                  TotC:=0;
                  For I:=1 to 10 DO
                    BEGIN
                      X:=Random(10)+1;
                      if (X<=4) then
                         BEGIN
                           Tirage[I,1]:=1;
                         end
                      ELSE
                         BEGIN
                           Tirage[I,1]:=0;
                         end;
                    end;
 
                For I:=1 To 10 DO
                    BEGIN
                      if (Tirage[I,1]=1) then
                         BEGIN
                           X:=random(100)+1;
                           if (X mod 2 = 0) then
                              BEGIN
                                X:=0;
                              end
                           ELSE
                              BEGIN
                                X:=1;
                              end;
                           Tirage[I,2]:=X
                         end
                      ELSE
                          BEGIN
                            Tirage[I,2]:=3;
                          end;
                    end;
                  for I:=1 to 10 DO
                      BEGIN
                        WRITE('Veuillez indiquer votre mise en ',I,' : ');READLN(MiseJoueur[I]);
                        TotP:=MiseJoueur[I]+TotP;
                        WRITE('Etes vous sur de votre mise? ');READLN(Verif2);
                        WRITELN;
                        if (Verif2='non') then
                           BEGIN
                             TotP:=TotP-MiseJoueur[I];
                             WRITE('Veuillez re-indiquer votre mise en ',I,' : ');READLN(MiseJoueur[I]);
                             TotP:=MiseJoueur[I]+TotP;
                           end;
                      end;
                  While (TotP>Mise1) DO
                        BEGIN
                          WRITELN('Erreur, indiquez de nouveau vos mises');
                          READLN;
                          for I:=1 to 10 DO
                              BEGIN
                                TotP:=TotP-MiseJoueur[I];
                              end;
                          for I:=1 to 10 DO
                              BEGIN
                                WRITE('Veuillez indiquer votre mise en ',I,' : ');READLN(MiseJoueur[I]);
                                TotP:=MiseJoueur[I]+TotP;
                              end;
                        end;
                  TotP:=0;
                  For I:=1 to 10 DO
                      BEGIN
                        X:=Random(10)+1;
                        if (X<=5) then
                           BEGIN
                            Y:=Random(MiseCPU)+1;
                            TotC:=TotC+Y;
                            MiseC[I]:=Y;
                           end
                        ELSE
                           BEGIN
                             MiseC[I]:=0;
                           end;
                      end;
                  WRITELN('Appuyez sur entre pour afficher le tirage');
                  READLN;
                  Clrscr;
 
                  Ligne:=0;
                  For I:=1 to 10 do
                      BEGIN
                        if ((Ligne+1 >= 1) and (Ligne+1 < 5)) then
                           BEGIN
                             WRITE('    ',Ligne+1,'  |  ');
                           end;
                        if (Ligne+1 = 5) then
                           BEGIN
                             WRITELN('    ',LIGNE+1,'  |  ');
                           end;
                        if ((Tirage[I,1] = 1) and (Ligne>=5)) then
                           BEGIN
                             if (Tirage[I,2] = 1) then
                                BEGIN
                                  WRITE('    O  |  ');
                                end
                             ELSE
                                 BEGIN
                                   WRITE('    X  |  ');
                                 end;
                           end;
                        if ((Tirage[I,2] = 3) and (Ligne>=5)) then
                           BEGIN
                             WRITE('    V  |  ');
                           end;
                        if (Ligne>= 9) then
                           BEGIN
                             WRITELN;
                           end;
                        Ligne:=Ligne+1;
                      end;
 
                  WRITE('   ');
                  For I:=1 to 46 do
                      BEGIN
                        WRITE('-');
                      end;
                  WRITELN;
                  Ligne:=0;
 
                  For I:=1 to 10 do
                      BEGIN
                        if ((Ligne+1 >= 1) and (Ligne+1 < 5)) then
                           BEGIN
                             WRITE('    ',Ligne+6,'  |  ');
                           end;
                        if (Ligne+1 = 5) then
                           BEGIN
                             WRITELN('    ',LIGNE+6,' |  ');
                           end;
                        if ((Tirage[I,1] = 1) and (Ligne>=5)) then
                           BEGIN
                             if (Tirage[I,2] = 1) then
                                BEGIN
                                  WRITE('    O  |  ');
                                end
                             ELSE
                                BEGIN
                                  WRITE('    X  |  ');
                                end;
                             end;
                        if ((Tirage[I,2] = 3) and (Ligne>=5)) then
                           BEGIN
                             WRITE('    V  |  ');
                           end;
                        Ligne:=Ligne+1;
                        end;
                  READLN;
                  Clrscr;
 
                  For I:=1 to 10 DO
                      BEGIN
                        if (Tirage[I,1]=1) then
                           BEGIN
                             if (Tirage[I,2]=1) then
                                BEGIN
                                  Mise1:=Mise1+(MiseJoueur[I]*5);
                                  MiseCPU:=MiseCPU+(MiseC[I]*5);
                                end
                             ELSE
                                 BEGIN
                                  Mise1:=Mise1-(MiseJoueur[I]*5);
                                  MiseCPU:=MiseCPU-(MiseC[I]*5);
                                 end;
                           end;
                      end;
                  WRITELN('Mise restante du joueur: ',Mise1);
                  WRITELN('Mise de l''IA: ',MiseCPU);
                  READLN;WRITELN;
                  if ((Mise1<0) or (MiseCPU<0)) then
                     BEGIN
                       WRITE('Voulez vous rejouez ? ');READLN(Verif);
                       if (Verif='oui') then
                          BEGIN
                            WRITE('Indiquez la mise du joueur : ');READLN(Mise1);
                            WRITE('Indiquez la mise de l''ordinateur: ');READLN(MiseCPU);
                            Clrscr;
                            While ((Mise1<0) or (MiseCPU<0)) DO
                                  BEGIN
                                    WRITELN('Erreur Veuillez ressaisir les mises');
                                    WRITE('Indiquez la mise du joueur : ');READLN(Mise1);
                                    WRITE('Indiquez la mise de l''ordinateur: ');READLN(MiseCPU);
                                    Clrscr;
                                  end;
                            if ((Mise1<MiseCPU) or (Mise1>MiseCPU)) then
                               BEGIN
                                 WRITE('Vous avez entrez des valeur differentes.');
                                 READLN;Clrscr;
                               end;
                            end;
                     end
                  ELSE
                      BEGIN
                        WRITE('Voulez vous continuez ? ');READLN(Verif);
                        IF (Verif='non') then
                           BEGIN
                             Mise1:=0;
                             MiseCPU:=0;
                           end;
                      end;
                end;
 
          If ((Mise1>0) or (MiseCPU<0)) Then
             BEGIN
               WRITELN('Vous avez gagnez la partie !');
             end;
          If ((Mise1<0) or (MiseCPU>0)) Then
             BEGIN
               WRITELN('Vous avez perdu la partie !');
             end;
          If ((Mise1<0) or (MiseCPU<0)) Then
             BEGIN
               WRITELN('Vous avez mit fin a la partie');
             end;
 
        end;
 
 
Readln;
end.