J'insiste !!!Code:
1
2
3
4
5 for(i=0;i<lignes;i++) { p4[i]=malloc(col*sizeof(p4[i])); if(p4[i]==NULL) printf("Alloc"); }
Version imprimable
J'insiste !!!Code:
1
2
3
4
5 for(i=0;i<lignes;i++) { p4[i]=malloc(col*sizeof(p4[i])); if(p4[i]==NULL) printf("Alloc"); }
Ca marche, merci beaucoup.
Par contre je ne comprend pas pourquoi tu me dis de supprimer les incohérences en parlant de ce bout de code :
Au niveau de la syntaxe, je n'ai pas mis d'accolade ni de else, car il n'y a qu'une instruction pour la condition si oui, et une seule pour le cas inverse.Code:
1
2
3
4 if(nmbrerandom==0) joueuractuel=&joueur; joueuractuel=&joueur2;
Et au niveau "pratique", j'ai besoin du pointeur joueuractuel pour toujours savoir dans mon programme quel joueur joue.
En gros, l'algorythme de la boucle JOUE est :
JOUE=1;
TANT QUE (JOUE) {
-> afficher la grille
-> test si quelqu'un gagne (fonction verif_grille)
-> verif horizontale
-> verif verticale
-> verif diagonale
Si quelqu'un gagne : Le joueur *joueuractuel a gagné && JOUE=0.
Sinon : si (joueuractuel == &joueur) alors maintenant (joueuractuel == &joueur2).
-> fonction placerpion avec comme argument en plus, *joueuractuel pour savoir quel pion il faudra placer sur la grille.
-> Si (*joueuractuel == 'S' || *joueuractuel == 'T') {
-> faire une petite IA, et trouver le meilleur choix de colonne.
-> Si la colonne de 'lechoixdecolonne' est remplie, faire une reallocation mémoire de 10 lignes, et la remplir avec des ' '.
-> boucle de 0 à (lignes-1), si la case == ' ', placez le char *joueuractuel. }
-> Sinon demandez la colonne souhaité.
-> Si la colonne de 'lechoixdecolonne' est remplie, faire une reallocation mémoire de 10 lignes, et la remplir avec des ' '.
-> boucle de 0 à (lignes-1), si la case == ' ', placez le char *joueuractuel.
}
Voilà, voilà
Citation:
Par contre je ne comprend pas pourquoi tu me dis de supprimer les incohérences en parlant de ce bout de code :
Parce que quel que soit le résultat du if, joueuractuel=&joueur2Code:
1
2
3 if(nmbrerandom==0) joueuractuel=&joueur; joueuractuel=&joueur2;
Alors il manque un elseCitation:
Au niveau de la syntaxe, je n'ai pas mis d'accolade ni de else, car il n'y a qu'une instruction pour la condition si oui, et une seule pour le cas inverse
Code:
1
2
3 if(nmbrerandom==0) joueuractuel=&joueur; else joueuractuel=&joueur2;
ok je pensais que comme en lisp, lorsqu'il n'y avait que deux instructions entre un bloc if sans accolade, la deuxieme instruction etait directement executé lorsque le test est faux.
Autant pour moi.
Merci
le C est un langage rigoureux, pas fait pour les rigolos...
Comme pratiquement TOUS les langages (informatiques ou autres d'ailleurs), il faut savoir au moins se débrouiller avec l'orthographe et la grammaire...
Révise donc un peu la grammaire....
http://c.developpez.com/cours/
Je te signale que les gens qui t'aident ici le font bénévolement.. Donc en somme pas vraiment de temps à perdre avec quelqu'un qui ne sait même pas la base.. Et tu as mobilisé du monde (24 posts)...
Euh...
Je suis toujours resté poli et courtois, je ne me suis jamais plains de quoi que ce soit, les gens s'entraident bénévolement, c'est le principe même d'un forum...
Si je monopolise l'attention et que vous ne trouvez pas utile de me répondre, ne le faites pas je n'ai pas obligé qui que ce soit, j'ai juste demandé un peu d'aide.
Une personne a bien voulu me consacrer du temps pour m'expliquer des choses que je n'avais pas bien comprises sur les pointeurs, maintenant je pense les avoir mieux assimilées, merci à cette personne.
je viens ici pour demander de l'aide, pas pour me faire insulter.
Merci.
Je répondais à ça...
ce qui veut dire que tu n'as pas lu les règles et la grammaire du C.Citation:
Envoyé par gnouz
souviron34 :Hummm, ce n'est pas très sympathique comme commentaire!Citation:
le C est un langage rigoureux, pas fait pour les rigolos...
....
Je te signale que les gens qui t'aident ici le font bénévolement.. Donc en somme pas vraiment de temps à perdre avec quelqu'un qui ne sait même pas la base.. Et tu as mobilisé du monde (24 posts)...
En fait 4 personnes sont intervenues sur ce sujet. En tant que l'une d'entre elles, mon point de vue est le suivant:
- Rien ne me contraint à répondre à un post; je n'ai rigoureusement aucune obligation. Je le fais tant que je juge pouvoir faire avancer le schmilblick et que le P.O. manifeste de l'intérêt pour son sujet. Le P.O. n'est lui en rien responsable du fait que quelqu'un lui réponde
- On trouve amplement sur ce forum de quoi satisfaire ses préférences du moment: des questions hypertechniques aux questions hyperbasiques. A chacun de choisir librement sur quel sujet il a envie d'intervenir ou qu'il a envie de suivre.
- Si le forum devait se réduire à des dialogues d'experts, il perdrait beaucoup de son utilité. Après tout, ce sont ces "débutants" qui programmeront demain, ce n'est pas moi!