Aide programme C
Fermé
don_josep
Messages postés
22
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
22 août 2011
-
21 août 2011 à 16:25
Utilisateur anonyme - 21 août 2011 à 16:59
Utilisateur anonyme - 21 août 2011 à 16:59
A voir également:
- Aide programme C
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Programme démarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
3 réponses
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
21 août 2011 à 16:32
21 août 2011 à 16:32
C'est le jeu de la vie de Conway si je ne m'abuse, mais bon t'attends pas à ce que quelqu'un te le livre tout maché, comprend que c'est beaucoup demander, et c'est pas t'aider...
Tu devrais commencer à programmer, puis demander de l'aide sur les notions qui te bloques...
Tu devrais commencer à programmer, puis demander de l'aide sur les notions qui te bloques...
Le chêne aussi était un gland, avant d'être un chêne
don_josep
Messages postés
22
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
22 août 2011
2
21 août 2011 à 16:50
21 août 2011 à 16:50
'je fais le code mais J'ai le code, mais pour rendre le fichier de sortie entreé je le trouve tres dificile::
1.#include <stdio.h>
2.#include <conio.h>
3.#include <stdlib.h>
4.
5.
6.
7.void mise_a_0(int[20][70],int[20][70]);
8.void message();
9.void fenetre();
10.void saisie(int[20][70]);
11.void affiche(int[20][70]);
12.int test(int[20][70]);
13.void clear_fenetre();
14.void affect_etat_precedent(int[20][70],int[20][70]);
15.void affect_etat_suivant(int[20][70],int[20][70]);
16.void calcul_cellule(int[20][70],int[20][70]);
17.void alea(int[20][70]);
18.void accueil(int[20][70]);
19.int sortie();
20.int test2(int[20][70]);
21.void menu_saisie(int[20][70]);
22.void permut(int*,int*);
23.void saisie_ligne(int[20][70]);
24.void saisie_colonne(int[20][70]);
25.
26.
27.
28./*******************************************************************************/
29. /*mise a zero de toutes les cases*/
30.
31.void mise_a_0(int t1[20][70],int t2[20][70])
32.{
33.int i,j;
34.for(i=0;i<20;i++)
35.{
36. for(j=0;j<70;j++)
37. {
38.
39. t1[i][j]=0;
40. t2[i][j]=0;
41. }
42.}
43.}
44.
45.
46.
47./*******************************************************************************/
48.
49.
50.void message()
51.{
52.printf("\n\t Appuer sur une touche pour fair evoluer les etapes");
53.printf("\n\n\t\tPour quitter a tout moment appuyer sur ESC");
54.}
55.
56.
57.
58./*******************************************************************************/
59. /*affichage de la fenetre*/
60.
61.void fenetre()
62.{
63.textbackground(1);
64.textcolor(14);
65.window(5,2,74,22);
66.gotoxy(20,1);
67.clrscr();
68.}
69.
70.
71./*******************************************************************************/
72. /*nettoie la fenetre*/
73.
74.void clear_fenetre()
75.{
76.window(1,1,80,25);
77.textbackground(0);
78.textcolor(7);
79.clrscr();
80.}
81.
82.
83./*******************************************************************************/
84. /*affiche les cellules*/
85.
86.
87.void affiche(int t1[20][70])
88.{
89.int i,j;
90.clrscr();
91._setcursortype(_NOCURSOR);
92.textcolor(14);
93.for(i=0;i<20;i++)
94.{
95. for(j=0;j<70;j++)
96. {
97. if(t1[i][j]==1){cprintf("X");}else{cprintf(" ");}
98. }
99.}
100.printf(" ");
101.}
102.
103.
104./*******************************************************************************/
105. /*test de fin de saisie*/
106.
107.int test(int t1[20][70])
108.{
109.int r;
110.clear_fenetre();
111.fenetre();
112.affiche(t1);
113.printf("\n\t\tArreter la saisie : ESC");
114.printf("\n\n\t\tContinuer : C");
115.do
116.{
117.switch(getch())
118.{
119.case 27:r=0;clear_fenetre();break;
120.case 'c':
121.case 'C':r=1;clear_fenetre();break;
122.default:printf("\a");r=2;
123.}
124.
125.}while((r!=1)&&(r!=0));
126.return r;
127.}
128.
129.
130./*******************************************************************************/
131. /*saisie des coordonnes des cellules*/
132.
133.void saisie(int t1[20][70])
134.{
135.int x,y;
136.textcolor(14);
137.do
138.{
139.fenetre();
140.affiche(t1);
141.do
142.{
143.clear_fenetre();
144.fenetre();
145.affiche(t1);
146._setcursortype(_NORMALCURSOR);
147.gotoxy(2,20);
148.printf("\n\n\n\t\tLigne:");
149.scanf("%d",&x);
150.}while((x<1)||(x>20));
151.
152.do
153.{
154.clear_fenetre();
155.fenetre();
156.affiche(t1);
157._setcursortype(_NORMALCURSOR);
158.gotoxy(15,20);
159.printf("\n\n\n\t\tColonne:");
160.scanf("%d",&y);
161.}while((y<1)||(y>70));
162.
163.t1[x-1][y-1]=1;
164.
165.affiche(t1);
166.}while(test(t1)!=0);
167.textcolor(8);
168.}
169.
170.
171./*******************************************************************************/
172. /*saisie par colonne*/
173.
174.void saisie_colonne(int t1[20][70])
175.{int c,l1,l2,i;
176.textcolor(14);
177.do
178.{
179.fenetre();
180.affiche(t1);
181.
182.do
183.{
184.clear_fenetre();
185.fenetre();
186.affiche(t1);
187._setcursortype(_NORMALCURSOR);
188.gotoxy(2,20);
189.printf("\n\n\n\t\tSaisir la colonne :");
190.scanf("%d",&c);
191.}while((c<1)||(c>70));
192.
193.
194.do
195.{
196.clear_fenetre();
197.fenetre();
198.affiche(t1);
199._setcursortype(_NORMALCURSOR);
200.gotoxy(15,20);
201.printf("\n\n\n\t\tSaisir ligne debut :");
202.scanf("%d",&l1);
203.}while((l1<1)||(l1>20));
204.
205.
206.do
207.{
208.clear_fenetre();
209.fenetre();
210.affiche(t1);
211._setcursortype(_NORMALCURSOR);
212.gotoxy(15,20);
213.printf("\n\n\n\t\tSaisir ligne fin :");
214.scanf("%d",&l2);
215.}while((l2<1)||(l2>20));
216.if(l1>l2){permut(&l1,&l2);}
217.
218.for(i=l1;i<=l2;i++)
219.{
220.t1[i-1][c-1]=1;
221.}
222.affiche(t1);
223.
224.}while(test2(t1)!=0);
225.
226.
227.textcolor(8);
228.}
229.
230.
231./*******************************************************************************/
232. /*saisie par ligne*/
233.
234.void saisie_ligne(int t1[20][70])
235.{int l,c1,c2,i;
236.textcolor(14);
237.do
238.{
239.fenetre();
240.affiche(t1);
241.
242.do
243.{
244.clear_fenetre();
245.fenetre();
246.affiche(t1);
247._setcursortype(_NORMALCURSOR);
248.gotoxy(2,20);
249.printf("\n\n\n\t\tSaisir la ligne :");
250.scanf("%d",&l);
251.}while((l<1)||(l>20));
252.
253.
254.do
255.{
256.clear_fenetre();
257.fenetre();
258.affiche(t1);
259._setcursortype(_NORMALCURSOR);
260.gotoxy(15,20);
261.printf("\n\n\n\t\tSaisir colonne debut :");
262.scanf("%d",&c1);
263.}while((c1<1)||(c1>70));
264.
265.
266.do
267.{
268.clear_fenetre();
269.fenetre();
270.affiche(t1);
271._setcursortype(_NORMALCURSOR);
272.gotoxy(15,20);
273.printf("\n\n\n\t\tSaisir colonne fin :");
274.scanf("%d",&c2);
275.}while((c2<1)||(c2>70));
276.if(c1>c2){permut(&c1,&c2);}
277.
278.for(i=c1;i<=c2;i++)
279.{
280.t1[l-1][i-1]=1;
281.}
282.
283.affiche(t1);
284.
285.}while(test2(t1)!=0);
286.
287.
288.textcolor(8);
289.}
290.
291.
292./*******************************************************************************/
293. /*test de fin de saisie*/
294.
295.int test2(int t1[20][70])
296.{
297.int r;
298.clear_fenetre();
299.fenetre();
300.affiche(t1);
301.printf("\n\t\tArreter la saisie : ESC");
302.printf("\n\n\t\tContinuer : C");
303.do
304.{
305.switch(getch())
306.{
307.case 27:r=0;clear_fenetre();break;
308.case 'c':
309.case 'C':r=1;clear_fenetre();menu_saisie(t1);break;
310.default:printf("\a");r=2;
311.}
312.
313.}while((r!=1)&&(r!=0));
314.return r;
315.}
316.
317.
318./*******************************************************************************/
319. /*menu de la saisie*/
320.
321.void menu_saisie(int t1[20][70])
322.{
323.
324.clrscr();
325._setcursortype(_NOCURSOR);
326.textcolor(10);
327.cprintf("\n\n LE JEU DE LA VIE DE CONWAY");
328.printf("\n\n\n\n\tVous desirez saisir :");
329.printf("\n\n\n\n 1 : Cellule par cellule\n\n");
330.printf(" 2 : Par ligne de cellules\n\n");
331.printf(" 3 : Par colonne de cellules\n\n");
332.printf("\n\n\n\n Faites votre choix...");
333.switch(getch())
334.{
335.case '1':clear_fenetre();saisie(t1);break;
336.case '2':clear_fenetre();saisie_ligne(t1);break;
337.case '3':clear_fenetre();saisie_colonne(t1);break;
338.}
339.}
340.
341.
342./*******************************************************************************/
343. /*affecte l etat precedent de la generation*/
344.
345.void affect_etat_precedent(int t1[20][70],int t2[20][70])
346.{
347.int i,j;
348.
349.for(i=0;i<20;i++)
350.{
351. for(j=0;j<70;j++)
352. {
353. t2[i][j]=t1[i][j];
354. }
355.}
356.}
357.
358.
359./*******************************************************************************/
360. /*affecte l etat de la generation suivante*/
361.
362.void affect_etat_suivant(int t1[20][70],int t2[20][70])
363.{
364.int i,j;
365.
366.for(i=0;i<20;i++)
367.{
368. for(j=0;j<70;j++)
369. {
370. t1[i][j]=t2[i][j];
371. }
372.}
373.}
374.
375.
376./*******************************************************************************/
377. /*calcul du nombre de cellules voisines*/
378.
379.void calcul_cellule(int t1[20][70],int t2[20][70])
380.{
381.int i,j,a;
382.
383.for(i=0;i<20;i++)
384.{
385. for(j=0;j<70;j++)
386. {
387. if((i==0)&&(j==0))
388. {
389. a=t1[i][j+1]+t1[i+1][j]+t1[i+1][j+1]+t1[i][69]+t1[i+1][69]+t1[19][j]+t1[19][j+1]+t1[19][69];
390. }
391.
392. if((i!=0)&&(j!=0)&&(i!=19)&&(j!=69))
393. {
394. a=t1[i-1][j-1]+t1[i-1][j]+t1[i-1][j+1]+t1[i][j+1]+t1[i+1][j+1]+t1[i+1][j]+t1[i+1][j-1]+t1[i][j-1];
395. }
396.
397. if((i==0)&&(j!=0)&&(j!=69))
398. {
399. a=t1[i][j-1]+t1[i+1][j-1]+t1[i+1][j]+t1[i+1][j+1]+t1[i][j+1]+t1[19][j-1]+t1[19][j]+t1[19][j+1];
400. }
401.
402. if((i==0)&&(j==69))
403. {
404. a=t1[i][j-1]+t1[i+1][j-1]+t1[i+1][j]+t1[i][0]+t1[i+1][0]+t1[19][0]+t1[19][j]+t1[19][j-1];
405. }
406.
407. if((i==19)&&(j==0))
408. {
409. a=t1[i-1][j]+t1[i-1][j+1]+t1[i][j+1]+t1[i][69]+t1[i-1][69]+t1[0][j]+t1[0][j+1]+t1[0][69];
410. }
411.
412. if((i==19)&&(j!=0)&&(j!=69))
413. {
414. a=t1[i][j-1]+t1[i][j+1]+t1[i-1][j-1]+t1[i-1][j]+t1[i-1][j+1]+t1[0][j]+t1[0][j-1]+t1[0][j+1];
415. }
416.
417. if((i==19)&&(j==69))
418. {
419. a=t1[i][j-1]+t1[i-1][j-1]+t1[i-1][j]+t1[0][j]+t1[0][j-1]+t1[i][0]+t1[i-1][0]+t1[0][0];
420. }
421.
422. if((i!=0)&&(i!=19)&&(j==0))
423. {
424. a=t1[i-1][j]+t1[i-1][j+1]+t1[i][j+1]+t1[i+1][j+1]+t1[i+1][j]+t1[i][69]+t1[i-1][69]+t1[i+1][69];
425. }
426.
427. if((i!=0)&&(i!=19)&&(j==69))
428. {
429. a=t1[i-1][j]+t1[i-1][j-1]+t1[i][j-1]+t1[i+1][j-1]+t1[i+1][j]+t1[i][0]+t1[i-1][0]+t1[i+1][0];
430. }
431.
432.
433. if((t1[i][j]==0)&&(a==3)){t2[i][j]=1;}
434. if((t1[i][j]==1)&&((a==2)||(a==3))){t2[i][j]=1;}
435. if((t1[i][j]==1)&&((a==1)||(a==0)||(a>3))){t2[i][j]=0;}
436. }
437. }
438.}
439.
440.
441.
442./*******************************************************************************/
443. /*l affichage aleatoire*/
444.
445.void alea(int t1[20][70])
446.{
447.int i,j;
448.randomize();
449.
450.for(i=0;i<20;i++)
451.{
452. for(j=0;j<70;j++)
453. {
454. t1[i][j]=random(2);
455. }
456.}
457.}
458.
459.
460./*******************************************************************************/
461. /*permutation*/
462.
463.void permut(int *a,int *b)
464.{
465.int aux;
466.aux=*a;
467.*a=*b;
468.*b=aux;
469.}
470.
471.
472./*******************************************************************************/
473.
474.
475.void accueil(int t1[20][70])
476.{int k;
477.clrscr();
478._setcursortype(_NOCURSOR);
479.textcolor(10);
480.cprintf("\n\n LE JEU DE LA VIE DE CONWAY");
481.printf("\n\n\n\n\tVous desirez simuler le jeu de la vie avec :");
482.printf("\n\n\n\n 1 : Saisie des coordonnees des cellules\n\n");
483.printf(" 2 : Affichage aleatoire des cellules");
484.printf("\n\n\n\n Faites votre choix...");
485.textcolor(12);
486.cprintf("\n\n\n\n Realise par 2PAC esgi (2pac 4 ever!!)");
487.do{
488.switch(getch())
489.{
490.case '1':clear_fenetre();menu_saisie(t1);k=0;break;
491.case '2':clear_fenetre();alea(t1);k=0;break;
492.default:printf("\a");k=2;
493.}
494.}while(k==2);
495.}
496.
497.
498./*******************************************************************************/
499. /*pour sortir du programme*/
500.
501.int sortie()
502.{int k;
503.clrscr();
504.clear_fenetre();
505.textcolor(10);
506.cprintf("\n\n LE JEU DE LA VIE DE CONWAY");
507.printf("\n\n\n\n\tVous desirez :");
508.printf("\n\n\n\n 1 : Quitter le jeu de la vie\n\n");
509.printf(" 2 : Recommencer");
510.printf("\n\n\n\n Faites votre choix...");
511.textcolor(12);
512.cprintf("\n\n\n\n Realise par 2PAC esgi (2pac 4 ever!!)");
513.do
514.{
515.switch(getch())
516.{
517.case '1':k=0;break;
518.case '2':k=1;break;
519.default:printf("\a");k=2;
520.}
521.}while((k!=0)&&(k!=1));
522.return k;
523.}
524.
525./*******************************************************************************/
526. /*la phase de saisie*/
527.
528.void phase_saisie(int t1[20][70],int t2[20][70])
529.{
530.mise_a_0(t1,t2);
531.accueil(t1);
532.fenetre();
533.affiche(t1);
534.}
535.
536.
537./*******************************************************************************/
538. /*la phase de simualtion*/
539.
540.void phase_simulation(int t1[20][70],int t2[20][70])
541.{
542.int cpt=0;
543.do{
544.if(cpt==0){getch();}
545.
546. affect_etat_precedent(t1,t2);
547. calcul_cellule(t1,t2);
548. affect_etat_suivant(t1,t2);
549. affiche(t1);
550. message();
551.
552. cpt++;
553.}while(getch()!=27);
554.}
555.
556.
557.
558./*******************************************************************************/
559.
560.
561./******************************************************************************/
562./******************** Le menu ******************************/
563./******************** ******************************/
564./******************************************************************************/
565.
566.
567.
568.main()
569.{
570.
571.do
572.{
573.int ta[20][70],te[20][70],cpt=0;
574.phase_saisie(ta,te);
575.phase_simulation(ta,te);
576.}while(sortie()==1);
577.
578.}
1.#include <stdio.h>
2.#include <conio.h>
3.#include <stdlib.h>
4.
5.
6.
7.void mise_a_0(int[20][70],int[20][70]);
8.void message();
9.void fenetre();
10.void saisie(int[20][70]);
11.void affiche(int[20][70]);
12.int test(int[20][70]);
13.void clear_fenetre();
14.void affect_etat_precedent(int[20][70],int[20][70]);
15.void affect_etat_suivant(int[20][70],int[20][70]);
16.void calcul_cellule(int[20][70],int[20][70]);
17.void alea(int[20][70]);
18.void accueil(int[20][70]);
19.int sortie();
20.int test2(int[20][70]);
21.void menu_saisie(int[20][70]);
22.void permut(int*,int*);
23.void saisie_ligne(int[20][70]);
24.void saisie_colonne(int[20][70]);
25.
26.
27.
28./*******************************************************************************/
29. /*mise a zero de toutes les cases*/
30.
31.void mise_a_0(int t1[20][70],int t2[20][70])
32.{
33.int i,j;
34.for(i=0;i<20;i++)
35.{
36. for(j=0;j<70;j++)
37. {
38.
39. t1[i][j]=0;
40. t2[i][j]=0;
41. }
42.}
43.}
44.
45.
46.
47./*******************************************************************************/
48.
49.
50.void message()
51.{
52.printf("\n\t Appuer sur une touche pour fair evoluer les etapes");
53.printf("\n\n\t\tPour quitter a tout moment appuyer sur ESC");
54.}
55.
56.
57.
58./*******************************************************************************/
59. /*affichage de la fenetre*/
60.
61.void fenetre()
62.{
63.textbackground(1);
64.textcolor(14);
65.window(5,2,74,22);
66.gotoxy(20,1);
67.clrscr();
68.}
69.
70.
71./*******************************************************************************/
72. /*nettoie la fenetre*/
73.
74.void clear_fenetre()
75.{
76.window(1,1,80,25);
77.textbackground(0);
78.textcolor(7);
79.clrscr();
80.}
81.
82.
83./*******************************************************************************/
84. /*affiche les cellules*/
85.
86.
87.void affiche(int t1[20][70])
88.{
89.int i,j;
90.clrscr();
91._setcursortype(_NOCURSOR);
92.textcolor(14);
93.for(i=0;i<20;i++)
94.{
95. for(j=0;j<70;j++)
96. {
97. if(t1[i][j]==1){cprintf("X");}else{cprintf(" ");}
98. }
99.}
100.printf(" ");
101.}
102.
103.
104./*******************************************************************************/
105. /*test de fin de saisie*/
106.
107.int test(int t1[20][70])
108.{
109.int r;
110.clear_fenetre();
111.fenetre();
112.affiche(t1);
113.printf("\n\t\tArreter la saisie : ESC");
114.printf("\n\n\t\tContinuer : C");
115.do
116.{
117.switch(getch())
118.{
119.case 27:r=0;clear_fenetre();break;
120.case 'c':
121.case 'C':r=1;clear_fenetre();break;
122.default:printf("\a");r=2;
123.}
124.
125.}while((r!=1)&&(r!=0));
126.return r;
127.}
128.
129.
130./*******************************************************************************/
131. /*saisie des coordonnes des cellules*/
132.
133.void saisie(int t1[20][70])
134.{
135.int x,y;
136.textcolor(14);
137.do
138.{
139.fenetre();
140.affiche(t1);
141.do
142.{
143.clear_fenetre();
144.fenetre();
145.affiche(t1);
146._setcursortype(_NORMALCURSOR);
147.gotoxy(2,20);
148.printf("\n\n\n\t\tLigne:");
149.scanf("%d",&x);
150.}while((x<1)||(x>20));
151.
152.do
153.{
154.clear_fenetre();
155.fenetre();
156.affiche(t1);
157._setcursortype(_NORMALCURSOR);
158.gotoxy(15,20);
159.printf("\n\n\n\t\tColonne:");
160.scanf("%d",&y);
161.}while((y<1)||(y>70));
162.
163.t1[x-1][y-1]=1;
164.
165.affiche(t1);
166.}while(test(t1)!=0);
167.textcolor(8);
168.}
169.
170.
171./*******************************************************************************/
172. /*saisie par colonne*/
173.
174.void saisie_colonne(int t1[20][70])
175.{int c,l1,l2,i;
176.textcolor(14);
177.do
178.{
179.fenetre();
180.affiche(t1);
181.
182.do
183.{
184.clear_fenetre();
185.fenetre();
186.affiche(t1);
187._setcursortype(_NORMALCURSOR);
188.gotoxy(2,20);
189.printf("\n\n\n\t\tSaisir la colonne :");
190.scanf("%d",&c);
191.}while((c<1)||(c>70));
192.
193.
194.do
195.{
196.clear_fenetre();
197.fenetre();
198.affiche(t1);
199._setcursortype(_NORMALCURSOR);
200.gotoxy(15,20);
201.printf("\n\n\n\t\tSaisir ligne debut :");
202.scanf("%d",&l1);
203.}while((l1<1)||(l1>20));
204.
205.
206.do
207.{
208.clear_fenetre();
209.fenetre();
210.affiche(t1);
211._setcursortype(_NORMALCURSOR);
212.gotoxy(15,20);
213.printf("\n\n\n\t\tSaisir ligne fin :");
214.scanf("%d",&l2);
215.}while((l2<1)||(l2>20));
216.if(l1>l2){permut(&l1,&l2);}
217.
218.for(i=l1;i<=l2;i++)
219.{
220.t1[i-1][c-1]=1;
221.}
222.affiche(t1);
223.
224.}while(test2(t1)!=0);
225.
226.
227.textcolor(8);
228.}
229.
230.
231./*******************************************************************************/
232. /*saisie par ligne*/
233.
234.void saisie_ligne(int t1[20][70])
235.{int l,c1,c2,i;
236.textcolor(14);
237.do
238.{
239.fenetre();
240.affiche(t1);
241.
242.do
243.{
244.clear_fenetre();
245.fenetre();
246.affiche(t1);
247._setcursortype(_NORMALCURSOR);
248.gotoxy(2,20);
249.printf("\n\n\n\t\tSaisir la ligne :");
250.scanf("%d",&l);
251.}while((l<1)||(l>20));
252.
253.
254.do
255.{
256.clear_fenetre();
257.fenetre();
258.affiche(t1);
259._setcursortype(_NORMALCURSOR);
260.gotoxy(15,20);
261.printf("\n\n\n\t\tSaisir colonne debut :");
262.scanf("%d",&c1);
263.}while((c1<1)||(c1>70));
264.
265.
266.do
267.{
268.clear_fenetre();
269.fenetre();
270.affiche(t1);
271._setcursortype(_NORMALCURSOR);
272.gotoxy(15,20);
273.printf("\n\n\n\t\tSaisir colonne fin :");
274.scanf("%d",&c2);
275.}while((c2<1)||(c2>70));
276.if(c1>c2){permut(&c1,&c2);}
277.
278.for(i=c1;i<=c2;i++)
279.{
280.t1[l-1][i-1]=1;
281.}
282.
283.affiche(t1);
284.
285.}while(test2(t1)!=0);
286.
287.
288.textcolor(8);
289.}
290.
291.
292./*******************************************************************************/
293. /*test de fin de saisie*/
294.
295.int test2(int t1[20][70])
296.{
297.int r;
298.clear_fenetre();
299.fenetre();
300.affiche(t1);
301.printf("\n\t\tArreter la saisie : ESC");
302.printf("\n\n\t\tContinuer : C");
303.do
304.{
305.switch(getch())
306.{
307.case 27:r=0;clear_fenetre();break;
308.case 'c':
309.case 'C':r=1;clear_fenetre();menu_saisie(t1);break;
310.default:printf("\a");r=2;
311.}
312.
313.}while((r!=1)&&(r!=0));
314.return r;
315.}
316.
317.
318./*******************************************************************************/
319. /*menu de la saisie*/
320.
321.void menu_saisie(int t1[20][70])
322.{
323.
324.clrscr();
325._setcursortype(_NOCURSOR);
326.textcolor(10);
327.cprintf("\n\n LE JEU DE LA VIE DE CONWAY");
328.printf("\n\n\n\n\tVous desirez saisir :");
329.printf("\n\n\n\n 1 : Cellule par cellule\n\n");
330.printf(" 2 : Par ligne de cellules\n\n");
331.printf(" 3 : Par colonne de cellules\n\n");
332.printf("\n\n\n\n Faites votre choix...");
333.switch(getch())
334.{
335.case '1':clear_fenetre();saisie(t1);break;
336.case '2':clear_fenetre();saisie_ligne(t1);break;
337.case '3':clear_fenetre();saisie_colonne(t1);break;
338.}
339.}
340.
341.
342./*******************************************************************************/
343. /*affecte l etat precedent de la generation*/
344.
345.void affect_etat_precedent(int t1[20][70],int t2[20][70])
346.{
347.int i,j;
348.
349.for(i=0;i<20;i++)
350.{
351. for(j=0;j<70;j++)
352. {
353. t2[i][j]=t1[i][j];
354. }
355.}
356.}
357.
358.
359./*******************************************************************************/
360. /*affecte l etat de la generation suivante*/
361.
362.void affect_etat_suivant(int t1[20][70],int t2[20][70])
363.{
364.int i,j;
365.
366.for(i=0;i<20;i++)
367.{
368. for(j=0;j<70;j++)
369. {
370. t1[i][j]=t2[i][j];
371. }
372.}
373.}
374.
375.
376./*******************************************************************************/
377. /*calcul du nombre de cellules voisines*/
378.
379.void calcul_cellule(int t1[20][70],int t2[20][70])
380.{
381.int i,j,a;
382.
383.for(i=0;i<20;i++)
384.{
385. for(j=0;j<70;j++)
386. {
387. if((i==0)&&(j==0))
388. {
389. a=t1[i][j+1]+t1[i+1][j]+t1[i+1][j+1]+t1[i][69]+t1[i+1][69]+t1[19][j]+t1[19][j+1]+t1[19][69];
390. }
391.
392. if((i!=0)&&(j!=0)&&(i!=19)&&(j!=69))
393. {
394. a=t1[i-1][j-1]+t1[i-1][j]+t1[i-1][j+1]+t1[i][j+1]+t1[i+1][j+1]+t1[i+1][j]+t1[i+1][j-1]+t1[i][j-1];
395. }
396.
397. if((i==0)&&(j!=0)&&(j!=69))
398. {
399. a=t1[i][j-1]+t1[i+1][j-1]+t1[i+1][j]+t1[i+1][j+1]+t1[i][j+1]+t1[19][j-1]+t1[19][j]+t1[19][j+1];
400. }
401.
402. if((i==0)&&(j==69))
403. {
404. a=t1[i][j-1]+t1[i+1][j-1]+t1[i+1][j]+t1[i][0]+t1[i+1][0]+t1[19][0]+t1[19][j]+t1[19][j-1];
405. }
406.
407. if((i==19)&&(j==0))
408. {
409. a=t1[i-1][j]+t1[i-1][j+1]+t1[i][j+1]+t1[i][69]+t1[i-1][69]+t1[0][j]+t1[0][j+1]+t1[0][69];
410. }
411.
412. if((i==19)&&(j!=0)&&(j!=69))
413. {
414. a=t1[i][j-1]+t1[i][j+1]+t1[i-1][j-1]+t1[i-1][j]+t1[i-1][j+1]+t1[0][j]+t1[0][j-1]+t1[0][j+1];
415. }
416.
417. if((i==19)&&(j==69))
418. {
419. a=t1[i][j-1]+t1[i-1][j-1]+t1[i-1][j]+t1[0][j]+t1[0][j-1]+t1[i][0]+t1[i-1][0]+t1[0][0];
420. }
421.
422. if((i!=0)&&(i!=19)&&(j==0))
423. {
424. a=t1[i-1][j]+t1[i-1][j+1]+t1[i][j+1]+t1[i+1][j+1]+t1[i+1][j]+t1[i][69]+t1[i-1][69]+t1[i+1][69];
425. }
426.
427. if((i!=0)&&(i!=19)&&(j==69))
428. {
429. a=t1[i-1][j]+t1[i-1][j-1]+t1[i][j-1]+t1[i+1][j-1]+t1[i+1][j]+t1[i][0]+t1[i-1][0]+t1[i+1][0];
430. }
431.
432.
433. if((t1[i][j]==0)&&(a==3)){t2[i][j]=1;}
434. if((t1[i][j]==1)&&((a==2)||(a==3))){t2[i][j]=1;}
435. if((t1[i][j]==1)&&((a==1)||(a==0)||(a>3))){t2[i][j]=0;}
436. }
437. }
438.}
439.
440.
441.
442./*******************************************************************************/
443. /*l affichage aleatoire*/
444.
445.void alea(int t1[20][70])
446.{
447.int i,j;
448.randomize();
449.
450.for(i=0;i<20;i++)
451.{
452. for(j=0;j<70;j++)
453. {
454. t1[i][j]=random(2);
455. }
456.}
457.}
458.
459.
460./*******************************************************************************/
461. /*permutation*/
462.
463.void permut(int *a,int *b)
464.{
465.int aux;
466.aux=*a;
467.*a=*b;
468.*b=aux;
469.}
470.
471.
472./*******************************************************************************/
473.
474.
475.void accueil(int t1[20][70])
476.{int k;
477.clrscr();
478._setcursortype(_NOCURSOR);
479.textcolor(10);
480.cprintf("\n\n LE JEU DE LA VIE DE CONWAY");
481.printf("\n\n\n\n\tVous desirez simuler le jeu de la vie avec :");
482.printf("\n\n\n\n 1 : Saisie des coordonnees des cellules\n\n");
483.printf(" 2 : Affichage aleatoire des cellules");
484.printf("\n\n\n\n Faites votre choix...");
485.textcolor(12);
486.cprintf("\n\n\n\n Realise par 2PAC esgi (2pac 4 ever!!)");
487.do{
488.switch(getch())
489.{
490.case '1':clear_fenetre();menu_saisie(t1);k=0;break;
491.case '2':clear_fenetre();alea(t1);k=0;break;
492.default:printf("\a");k=2;
493.}
494.}while(k==2);
495.}
496.
497.
498./*******************************************************************************/
499. /*pour sortir du programme*/
500.
501.int sortie()
502.{int k;
503.clrscr();
504.clear_fenetre();
505.textcolor(10);
506.cprintf("\n\n LE JEU DE LA VIE DE CONWAY");
507.printf("\n\n\n\n\tVous desirez :");
508.printf("\n\n\n\n 1 : Quitter le jeu de la vie\n\n");
509.printf(" 2 : Recommencer");
510.printf("\n\n\n\n Faites votre choix...");
511.textcolor(12);
512.cprintf("\n\n\n\n Realise par 2PAC esgi (2pac 4 ever!!)");
513.do
514.{
515.switch(getch())
516.{
517.case '1':k=0;break;
518.case '2':k=1;break;
519.default:printf("\a");k=2;
520.}
521.}while((k!=0)&&(k!=1));
522.return k;
523.}
524.
525./*******************************************************************************/
526. /*la phase de saisie*/
527.
528.void phase_saisie(int t1[20][70],int t2[20][70])
529.{
530.mise_a_0(t1,t2);
531.accueil(t1);
532.fenetre();
533.affiche(t1);
534.}
535.
536.
537./*******************************************************************************/
538. /*la phase de simualtion*/
539.
540.void phase_simulation(int t1[20][70],int t2[20][70])
541.{
542.int cpt=0;
543.do{
544.if(cpt==0){getch();}
545.
546. affect_etat_precedent(t1,t2);
547. calcul_cellule(t1,t2);
548. affect_etat_suivant(t1,t2);
549. affiche(t1);
550. message();
551.
552. cpt++;
553.}while(getch()!=27);
554.}
555.
556.
557.
558./*******************************************************************************/
559.
560.
561./******************************************************************************/
562./******************** Le menu ******************************/
563./******************** ******************************/
564./******************************************************************************/
565.
566.
567.
568.main()
569.{
570.
571.do
572.{
573.int ta[20][70],te[20][70],cpt=0;
574.phase_saisie(ta,te);
575.phase_simulation(ta,te);
576.}while(sortie()==1);
577.
578.}
bubull97
Messages postés
133
Date d'inscription
vendredi 1 octobre 2010
Statut
Membre
Dernière intervention
19 février 2014
10
21 août 2011 à 16:36
21 août 2011 à 16:36
Salut
Je suis actuellement en train de suivre des études en programmation, j'ai fini ma première avec 14,7/20 en langage C.
Mais je pense pas que quelqu'un t'aidera à distance, ton raisonnement est assez compliqué et il n'y a pas beaucoup de vrais programmeurs ici...
Bonne continuation
Je suis actuellement en train de suivre des études en programmation, j'ai fini ma première avec 14,7/20 en langage C.
Mais je pense pas que quelqu'un t'aidera à distance, ton raisonnement est assez compliqué et il n'y a pas beaucoup de vrais programmeurs ici...
Bonne continuation
don_josep
Messages postés
22
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
22 août 2011
2
21 août 2011 à 16:45
21 août 2011 à 16:45
et pourquoi pas vous m'aider?
bubull97
Messages postés
133
Date d'inscription
vendredi 1 octobre 2010
Statut
Membre
Dernière intervention
19 février 2014
10
21 août 2011 à 16:48
21 août 2011 à 16:48
Parce qu'avant de coder en C, il faut faire un diagramme d'action (la partie analyse de la programmation)
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
Modifié par nicocorico le 21/08/2011 à 16:54
Modifié par nicocorico le 21/08/2011 à 16:54
Il n'y a aucun problème pour t'aider, simplement ce que tu demandes là peut prendre plusieurs jours, et tu risque d'avoir du mal à trouver quelqu'un pour te le faire gracieusement !
De plus ton texte interminable est cousu de fautes et de mots manquants, ce qui ne simplifie pas la tâche...
De plus ton texte interminable est cousu de fautes et de mots manquants, ce qui ne simplifie pas la tâche...
Il ne faut pas exagérer. Il y a beaucoup de vrais programmeurs sur comment ça marche et ils seront probablement capable de l'aider !
Il faut simplement qu'un d'entre eux aient le temps d'analyser son code, mais après je suis certain qu'il trouvera de l,aide sur comment ça marche.
Bon après s'il veut un travail tout fait c'est pas la même chose, mais si c'est pour se faire expliquer des concepts avec lesquels il a de la difficulté il trouvera tout ce qu'il a besoin sur CCM.
@++ : )
Il faut simplement qu'un d'entre eux aient le temps d'analyser son code, mais après je suis certain qu'il trouvera de l,aide sur comment ça marche.
Bon après s'il veut un travail tout fait c'est pas la même chose, mais si c'est pour se faire expliquer des concepts avec lesquels il a de la difficulté il trouvera tout ce qu'il a besoin sur CCM.
@++ : )