Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema con gioco del tris
Forum - C/C++ - Problema con gioco del tris

Avatar
trenta3 (Normal User)
Newbie


Messaggi: 16
Iscritto: 17/12/2008

Segnala al moderatore
Postato alle 14:28
Domenica, 27/09/2009
Ho scritto il codice qui sotto per il gioco del tris, il problema è che non funziona:
a volte il computer non mette la crocetta.
Mi manca solo questo per finire il gioco.
Vi prego aiutatemi.

Ecco il codice:
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. //-------------------------------
  7. char Griglia[10];
  8. int vincita=0;
  9. //-------------------------------
  10. void DisegnaGriglia();
  11. void Clear();
  12. void PulisciGriglia();
  13. void MossaComputer();
  14. void MossaGiocatore();
  15. int TestaVincita();
  16. int TestaPericolo();
  17. //-------------------------------
  18.  
  19.      
  20.  
  21. int main(int argc, char *argv[]){
  22.     char t;
  23.          srand(time(NULL));
  24. inizio:
  25. Clear();
  26. PulisciGriglia();
  27. DisegnaGriglia();
  28.  
  29. while(vincita==0){
  30. if(Griglia[0]==0) {MossaComputer();Griglia[0]=1;}
  31. if(Griglia[0]==1) {MossaGiocatore();Griglia[0]=0;}
  32. Clear();
  33. DisegnaGriglia();
  34. vincita = TestaVincita();
  35.  
  36. }
  37.  
  38. if (vincita==1){
  39. printf("\nHai perso!\n");
  40. getch();
  41. }
  42. if (vincita==2){
  43. printf("\nHai vinto!\n");
  44. getch();
  45. }
  46. if (vincita==3){
  47. printf("\nPareggio!\n");
  48. getch();
  49. }
  50.  
  51. return 0;
  52. }
  53.  
  54.  
  55. void DisegnaGriglia(){
  56. printf("\n.---.---.---.\n| %c | %c | %c |\n|---|---|---|\n| %c | %c | %c |\n|---|---|---|\n| %c | %c | %c |\n\'---\'---\'---\'",
  57.        Griglia[1],Griglia[2],Griglia[3],Griglia[4],Griglia[5],Griglia[6],Griglia[7],Griglia[8],Griglia[9]);
  58. return;
  59. }
  60.  
  61. void Clear(){
  62. system("cls");
  63. return;
  64. }
  65.  
  66. void PulisciGriglia(){
  67.  
  68. Griglia[1]='a';
  69. Griglia[2]='b';
  70. Griglia[3]='c';
  71. Griglia[4]='d';
  72. Griglia[5]='e';
  73. Griglia[6]='f';
  74. Griglia[7]='g';
  75. Griglia[8]='h';
  76. Griglia[9]='i';
  77. Griglia[0]=rand()%2;
  78. return;
  79. }
  80.  
  81. void MossaComputer(){
  82.      srand(time(NULL));
  83.      int caselle;
  84.      int num;
  85.      int per;
  86.      per = TestaPericolo();
  87.      if (per==0){
  88. if (Griglia[1]=='a') caselle+=1;
  89. if (Griglia[2]=='b') caselle+=1;
  90. if (Griglia[3]=='c') caselle+=1;
  91. if (Griglia[4]=='d') caselle+=1;
  92. if (Griglia[5]=='e') caselle+=1;
  93. if (Griglia[6]=='f') caselle+=1;
  94. if (Griglia[7]=='g') caselle+=1;
  95. if (Griglia[8]=='h') caselle+=1;
  96. if (Griglia[9]=='i') caselle+=1;
  97. num = (rand()%caselle)+1;
  98. caselle=0;
  99. if (Griglia[1]=='a') caselle+=1;
  100. if (num==caselle) Griglia[num]='x';
  101. if (Griglia[2]=='b') caselle+=1;
  102. if (num==caselle) Griglia[num]='x';
  103. if (Griglia[3]=='c') caselle+=1;
  104. if (num==caselle) Griglia[num]='x';
  105. if (Griglia[4]=='d') caselle+=1;
  106. if (num==caselle) Griglia[num]='x';
  107. if (Griglia[5]=='e') caselle+=1;
  108. if (num==caselle) Griglia[num]='x';
  109. if (Griglia[6]=='f') caselle+=1;
  110. if (num==caselle) Griglia[num]='x';
  111. if (Griglia[7]=='g') caselle+=1;
  112. if (num==caselle) Griglia[num]='x';
  113. if (Griglia[8]=='h') caselle+=1;
  114. if (num==caselle) Griglia[num]='x';
  115. if (Griglia[9]=='i') caselle+=1;
  116. if (num==caselle) Griglia[num]='x';
  117. }else{
  118. scie:
  119. if (Griglia[per]=='o') {per=((per+1)%9); if (per==0) per=1; goto scie;}else{
  120.                        Griglia[per]='x';}
  121. }
  122. return;
  123. }
  124.  
  125. void MossaGiocatore(){
  126. char key;
  127. for(;;){
  128. if (_kbhit()){
  129. key = getch();
  130. if (key=='a' || key=='A') { if (Griglia[1]=='a') Griglia[1]='o'; }
  131. if (key=='b' || key=='B') { if (Griglia[2]=='b') Griglia[2]='o'; }
  132. if (key=='c' || key=='C') { if (Griglia[3]=='c') Griglia[3]='o'; }
  133. if (key=='d' || key=='D') { if (Griglia[4]=='d') Griglia[4]='o'; }
  134. if (key=='e' || key=='E') { if (Griglia[5]=='e') Griglia[5]='o'; }
  135. if (key=='f' || key=='F') { if (Griglia[6]=='f') Griglia[6]='o'; }
  136. if (key=='g' || key=='G') { if (Griglia[7]=='g') Griglia[7]='o'; }
  137. if (key=='h' || key=='H') { if (Griglia[8]=='h') Griglia[8]='o'; }
  138. if (key=='i' || key=='I') { if (Griglia[9]=='i') Griglia[9]='o'; }
  139. return;
  140. }
  141. _sleep(1);
  142. }//for(;;)
  143. return;
  144. }
  145.  
  146.  
  147. int TestaPericolo(){
  148. if (Griglia[1]=='o' && Griglia[2]=='o') return 3;
  149. if (Griglia[2]=='o' && Griglia[3]=='o') return 1;
  150. if (Griglia[3]=='o' && Griglia[1]=='o') return 2;
  151. if (Griglia[4]=='o' && Griglia[5]=='o') return 6;
  152. if (Griglia[4]=='o' && Griglia[6]=='o') return 5;
  153. if (Griglia[5]=='o' && Griglia[6]=='o') return 4;
  154. if (Griglia[7]=='o' && Griglia[8]=='o') return 9;
  155. if (Griglia[8]=='o' && Griglia[9]=='o') return 7;
  156. if (Griglia[9]=='o' && Griglia[7]=='o') return 8;
  157. if (Griglia[1]=='o' && Griglia[4]=='o') return 7;
  158. if (Griglia[1]=='o' && Griglia[7]=='o') return 4;
  159. if (Griglia[7]=='o' && Griglia[4]=='o') return 1;
  160. if (Griglia[2]=='o' && Griglia[5]=='o') return 8;
  161. if (Griglia[5]=='o' && Griglia[8]=='o') return 2;
  162. if (Griglia[8]=='o' && Griglia[2]=='o') return 5;
  163. if (Griglia[3]=='o' && Griglia[6]=='o') return 9;
  164. if (Griglia[6]=='o' && Griglia[9]=='o') return 3;
  165. if (Griglia[9]=='o' && Griglia[3]=='o') return 6;
  166. if (Griglia[1]=='o' && Griglia[5]=='o') return 9;
  167. if (Griglia[5]=='o' && Griglia[9]=='o') return 1;
  168. if (Griglia[9]=='o' && Griglia[1]=='o') return 5;
  169. if (Griglia[3]=='o' && Griglia[5]=='o') return 7;
  170. if (Griglia[5]=='o' && Griglia[7]=='o') return 3;
  171. if (Griglia[7]=='o' && Griglia[3]=='o') return 5;
  172. //=============================================\\
  173. if (Griglia[1]=='x' && Griglia[2]=='x') return 3;
  174. if (Griglia[2]=='x' && Griglia[3]=='x') return 1;
  175. if (Griglia[3]=='x' && Griglia[1]=='x') return 2;
  176. if (Griglia[4]=='x' && Griglia[5]=='x') return 6;
  177. if (Griglia[4]=='x' && Griglia[6]=='x') return 5;
  178. if (Griglia[5]=='x' && Griglia[6]=='x') return 4;
  179. if (Griglia[7]=='x' && Griglia[8]=='x') return 9;
  180. if (Griglia[8]=='x' && Griglia[9]=='x') return 7;
  181. if (Griglia[9]=='x' && Griglia[7]=='x') return 8;
  182. if (Griglia[1]=='x' && Griglia[4]=='x') return 7;
  183. if (Griglia[1]=='x' && Griglia[7]=='x') return 4;
  184. if (Griglia[7]=='x' && Griglia[4]=='x') return 1;
  185. if (Griglia[2]=='x' && Griglia[5]=='x') return 8;
  186. if (Griglia[5]=='x' && Griglia[8]=='x') return 2;
  187. if (Griglia[8]=='x' && Griglia[2]=='x') return 5;
  188. if (Griglia[3]=='x' && Griglia[6]=='x') return 9;
  189. if (Griglia[6]=='x' && Griglia[9]=='x') return 3;
  190. if (Griglia[9]=='x' && Griglia[3]=='x') return 6;
  191. if (Griglia[1]=='x' && Griglia[5]=='x') return 9;
  192. if (Griglia[5]=='x' && Griglia[9]=='x') return 1;
  193. if (Griglia[9]=='x' && Griglia[1]=='x') return 5;
  194. if (Griglia[3]=='x' && Griglia[5]=='x') return 7;
  195. if (Griglia[5]=='x' && Griglia[7]=='x') return 3;
  196. if (Griglia[7]=='x' && Griglia[3]=='x') return 5;
  197. return 0;
  198. }
  199.  
  200. int TestaVincita(){
  201. if (Griglia[1]=='o' && Griglia[2]=='o' && Griglia[3]=='o') return 2;
  202. if (Griglia[4]=='o' && Griglia[5]=='o' && Griglia[6]=='o') return 2;
  203. if (Griglia[7]=='o' && Griglia[8]=='o' && Griglia[9]=='o') return 2;
  204. if (Griglia[1]=='o' && Griglia[4]=='o' && Griglia[7]=='o') return 2;
  205. if (Griglia[2]=='o' && Griglia[5]=='o' && Griglia[8]=='o') return 2;
  206. if (Griglia[3]=='o' && Griglia[6]=='o' && Griglia[9]=='o') return 2;
  207. if (Griglia[1]=='o' && Griglia[5]=='o' && Griglia[9]=='o') return 2;
  208. if (Griglia[3]=='o' && Griglia[5]=='o' && Griglia[7]=='o') return 2;
  209.  
  210. if (Griglia[1]=='x' && Griglia[2]=='x' && Griglia[3]=='x') return 1;
  211. if (Griglia[4]=='x' && Griglia[5]=='x' && Griglia[6]=='x') return 1;
  212. if (Griglia[7]=='x' && Griglia[8]=='x' && Griglia[9]=='x') return 1;
  213. if (Griglia[1]=='x' && Griglia[4]=='x' && Griglia[7]=='x') return 1;
  214. if (Griglia[2]=='x' && Griglia[5]=='x' && Griglia[8]=='x') return 1;
  215. if (Griglia[3]=='x' && Griglia[6]=='x' && Griglia[9]=='x') return 1;
  216. if (Griglia[1]=='x' && Griglia[5]=='x' && Griglia[9]=='x') return 1;
  217. if (Griglia[3]=='x' && Griglia[5]=='x' && Griglia[7]=='x') return 1;
  218.  
  219. if (Griglia[1]!='a' && Griglia[2]!='b' &&
  220. Griglia[3]!='c' && Griglia[4]!='d' &&
  221. Griglia[5]!='e' && Griglia[6]!='f' &&
  222. Griglia[7]!='g' && Griglia[8]!='h' && Griglia[9]!='i') return 3;
  223.  
  224. return 0;
  225. }



Grazie a chiunque mi risponderà

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 695
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 17:33
Domenica, 27/09/2009
Testo quotato

Postato originariamente da trenta3:

Ho scritto il codice qui sotto per il gioco del tris, il problema è che non funziona:
a volte il computer non mette la crocetta.
Mi manca solo questo per finire il gioco.
Vi prego aiutatemi.

Ecco il codice:

[...]

Grazie a chiunque mi risponderà



Salve,

da una rapida scorsa al codice ho notato che:

Nella funzione MossaComputer() "caselle" non e' inizializzata, poi la scelta della mossa e' poco chiara, poi nella verifica del valore di "per", nell'"else", rifai il test

Codice sorgente - presumibilmente C/C++

  1. ... if (per==0) ...



infine l'uso del goto, in questo caso, e' sconsigliato ( un do ... while e' preferibile ).

Nella funzione MossaGiocatore() gli if innestati sono evitabili, e' molto meglio qualcosa del genere

Codice sorgente - presumibilmente C/C++

  1. if (((key=='a') || (key=='A')) && (Griglia[1]=='a')) { Griglia[1]='o'; }
  2. ...



Nella funzione TestaPericolo() potresti evitare meta' degli if con il passaggio di un parametro, qualcosa del genere

Codice sorgente - presumibilmente C++

  1. int TestaPericolo(char simbolo) {
  2. if ((simbolo != 'x') && (simbolo != 'o')) return 0
  3. if ((Griglia[1]==simbolo) && (Griglia[2]==simbolo)) return 3;
  4. ...



Nella funzione TestaVincita() se gestisci un contatore delle mosse effettuate potresti evitare il complicato if finale che diventerebbe semplicemente

Codice sorgente - presumibilmente C/C++

  1. ... if (counter == 9) return 3;



spero di esserti stato utile, purtroppo non ho il tempo di analizzare piu' approfonditamente la funzione MossaComputer(), penso che il problema di cui parli sia li'.
Ciao. :k:

Luigi


Le cose si fanno per bene o non si fanno affatto
PM Quote
Avatar
trenta3 (Normal User)
Newbie


Messaggi: 16
Iscritto: 17/12/2008

Segnala al moderatore
Postato alle 20:22
Lunedì, 28/09/2009
Grazie per l'aiuto.
ho provato a risolvere qualcosa ma non ne esco:
adesso mette più crocette di prima ma qualche turno lo salta.
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. //-------------------------------
  7. char Griglia[10];
  8. int vincita=0;
  9. //-------------------------------
  10. void DisegnaGriglia();
  11. void Clear();
  12. void PulisciGriglia();
  13. void MossaComputer();
  14. void MossaGiocatore();
  15. int TestaVincita();
  16. int TestaPericolo();
  17. //-------------------------------
  18.  
  19.      
  20.  
  21. int main(int argc, char *argv[]){
  22.     srand(time(NULL));
  23.     char t;
  24.          
  25. inizio:
  26. Clear();
  27. PulisciGriglia();
  28. DisegnaGriglia();
  29.  
  30. while(vincita==0){
  31. if(Griglia[0]==0) {MossaComputer();Griglia[0]=1;}
  32. if(Griglia[0]==1) {MossaGiocatore();Griglia[0]=0;}
  33. Clear();
  34. DisegnaGriglia();
  35. vincita = TestaVincita();
  36.  
  37. }
  38.  
  39. if (vincita==1){
  40. printf("\nHai perso!\n");
  41. getch();
  42. }
  43. if (vincita==2){
  44. printf("\nHai vinto!\n");
  45. getch();
  46. }
  47. if (vincita==3){
  48. printf("\nPareggio!\n");
  49. getch();
  50. }
  51.  
  52. return 0;
  53. }
  54.  
  55.  
  56. void DisegnaGriglia(){
  57. printf("\n.---.---.---.\n| %c | %c | %c |\n|---|---|---|\n| %c | %c | %c |\n|---|---|---|\n| %c | %c | %c |\n\'---\'---\'---\'",
  58.        Griglia[1],Griglia[2],Griglia[3],Griglia[4],Griglia[5],Griglia[6],Griglia[7],Griglia[8],Griglia[9]);
  59. return;
  60. }
  61.  
  62. void Clear(){
  63. system("cls");
  64. return;
  65. }
  66.  
  67. void PulisciGriglia(){
  68.  
  69. Griglia[1]='a';
  70. Griglia[2]='b';
  71. Griglia[3]='c';
  72. Griglia[4]='d';
  73. Griglia[5]='e';
  74. Griglia[6]='f';
  75. Griglia[7]='g';
  76. Griglia[8]='h';
  77. Griglia[9]='i';
  78. Griglia[0]=rand()%2;
  79. return;
  80. }
  81.  
  82. void MossaComputer(){
  83.      srand(time(NULL));
  84.      int caselle; //qui viene inizializzata caselle\\
  85.      int num;
  86.      int per=0;
  87.      
  88.      if (TestaPericolo()==0){
  89. if (Griglia[1]=='a') caselle+=1;
  90. if (Griglia[2]=='b') caselle+=1;
  91. if (Griglia[3]=='c') caselle+=1;
  92. if (Griglia[4]=='d') caselle+=1;
  93. if (Griglia[5]=='e') caselle+=1;
  94. if (Griglia[6]=='f') caselle+=1;
  95. if (Griglia[7]=='g') caselle+=1;
  96. if (Griglia[8]=='h') caselle+=1;
  97. if (Griglia[9]=='i') caselle+=1;
  98. num = (rand()%caselle)+1;
  99.  
  100. DaiGriglia:
  101.            
  102. if (Griglia[num]=='x' || Griglia[num]=='o'){
  103. num = num +1;
  104. if (num == 10) num=1;
  105. goto DaiGriglia;
  106. }else{
  107. Griglia[num]='x';
  108. }
  109.  
  110. }else{
  111.       per = TestaPericolo();
  112.       grilia:
  113. if (Griglia[per]=='o'){
  114. per=per+1;
  115. if(per==10) per=1;
  116. goto grilia;
  117. }else{
  118. Griglia[per]='x';
  119. }
  120.  
  121. }
  122.  
  123. return;
  124. }
  125.  
  126. void MossaGiocatore(){
  127. char key;
  128. for(;;){
  129. if (_kbhit()){
  130. key = getch();
  131. if ((key=='a' || key=='A') && (Griglia[1]=='a')) Griglia[1]='o';
  132. if ((key=='b' || key=='B') && (Griglia[2]=='b')) Griglia[2]='o';
  133. if ((key=='c' || key=='C') && (Griglia[3]=='c')) Griglia[3]='o';
  134. if ((key=='d' || key=='D') && (Griglia[4]=='d')) Griglia[4]='o';
  135. if ((key=='e' || key=='E') && (Griglia[5]=='e')) Griglia[5]='o';
  136. if ((key=='f' || key=='F') && (Griglia[6]=='f')) Griglia[6]='o';
  137. if ((key=='g' || key=='G') && (Griglia[7]=='g')) Griglia[7]='o';
  138. if ((key=='h' || key=='H') && (Griglia[8]=='h')) Griglia[8]='o';
  139. if ((key=='i' || key=='I') && (Griglia[9]=='i')) Griglia[9]='o';
  140. return;
  141. }
  142. _sleep(1);
  143. }//for(;;)
  144. return;
  145. }
  146.  
  147.  
  148. int TestaPericolo(){
  149.     int y;
  150.     y=0;
  151. if (Griglia[1]==Griglia[2]) y=3;
  152. if (Griglia[2]==Griglia[3]) y=1;
  153. if (Griglia[3]==Griglia[1]) y=2;
  154. if (Griglia[4]==Griglia[5]) y=6;
  155. if (Griglia[4]==Griglia[6]) y=5;
  156. if (Griglia[5]==Griglia[6]) y=4;
  157. if (Griglia[7]==Griglia[8]) y=9;
  158. if (Griglia[8]==Griglia[9]) y=7;
  159. if (Griglia[9]==Griglia[7]) y=8;
  160. if (Griglia[1]==Griglia[4]) y=7;
  161. if (Griglia[1]==Griglia[7]) y=4;
  162. if (Griglia[7]==Griglia[4]) y=1;
  163. if (Griglia[2]==Griglia[5]) y=8;
  164. if (Griglia[5]==Griglia[8]) y=2;
  165. if (Griglia[8]==Griglia[2]) y=5;
  166. if (Griglia[3]==Griglia[6]) y=9;
  167. if (Griglia[6]==Griglia[9]) y=3;
  168. if (Griglia[9]==Griglia[3]) y=6;
  169. if (Griglia[1]==Griglia[5]) y=9;
  170. if (Griglia[5]==Griglia[9]) y=1;
  171. if (Griglia[9]==Griglia[1]) y=5;
  172. if (Griglia[3]==Griglia[5]) y=7;
  173. if (Griglia[5]==Griglia[7]) y=3;
  174. if (Griglia[7]==Griglia[3]) y=5;
  175. return y;
  176. }
  177.  
  178. int TestaVincita(){
  179. if (Griglia[1]=='o' && Griglia[2]=='o' && Griglia[3]=='o') return 2;
  180. if (Griglia[4]=='o' && Griglia[5]=='o' && Griglia[6]=='o') return 2;
  181. if (Griglia[7]=='o' && Griglia[8]=='o' && Griglia[9]=='o') return 2;
  182. if (Griglia[1]=='o' && Griglia[4]=='o' && Griglia[7]=='o') return 2;
  183. if (Griglia[2]=='o' && Griglia[5]=='o' && Griglia[8]=='o') return 2;
  184. if (Griglia[3]=='o' && Griglia[6]=='o' && Griglia[9]=='o') return 2;
  185. if (Griglia[1]=='o' && Griglia[5]=='o' && Griglia[9]=='o') return 2;
  186. if (Griglia[3]=='o' && Griglia[5]=='o' && Griglia[7]=='o') return 2;
  187.  
  188. if (Griglia[1]=='x' && Griglia[2]=='x' && Griglia[3]=='x') return 1;
  189. if (Griglia[4]=='x' && Griglia[5]=='x' && Griglia[6]=='x') return 1;
  190. if (Griglia[7]=='x' && Griglia[8]=='x' && Griglia[9]=='x') return 1;
  191. if (Griglia[1]=='x' && Griglia[4]=='x' && Griglia[7]=='x') return 1;
  192. if (Griglia[2]=='x' && Griglia[5]=='x' && Griglia[8]=='x') return 1;
  193. if (Griglia[3]=='x' && Griglia[6]=='x' && Griglia[9]=='x') return 1;
  194. if (Griglia[1]=='x' && Griglia[5]=='x' && Griglia[9]=='x') return 1;
  195. if (Griglia[3]=='x' && Griglia[5]=='x' && Griglia[7]=='x') return 1;
  196.  
  197. if (Griglia[1]!='a' && Griglia[2]!='b' &&
  198. Griglia[3]!='c' && Griglia[4]!='d' &&
  199. Griglia[5]!='e' && Griglia[6]!='f' &&
  200. Griglia[7]!='g' && Griglia[8]!='h' && Griglia[9]!='i') return 3;
  201.  
  202. return 0;
  203. }



Grazie di nuovo.
Per adesso ho tenuto i goto perchè li vorrei togliere dopo aver visto il gioco che funziona.

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 695
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 23:01
Lunedì, 28/09/2009
Testo quotato

Postato originariamente da trenta3:

Grazie per l'aiuto.
ho provato a risolvere qualcosa ma non ne esco:
adesso mette più crocette di prima ma qualche turno lo salta.
Codice sorgente - presumibilmente C/C++

  1. [...]
  2.      int caselle; //qui viene inizializzata caselle\\
  3. [...]






no... qui caselle viene solo dichiarato, non inizializzato, il valore che assume all'inizio e' imprevedibile, dovresti scrivere:

Codice sorgente - presumibilmente C/C++

  1. [...]
  2.      int caselle = 0; // ORA viene inizializzata caselle
  3. [...]



Ciao. :k:

Luigi.


Le cose si fanno per bene o non si fanno affatto
PM Quote
Avatar
trenta3 (Normal User)
Newbie


Messaggi: 16
Iscritto: 17/12/2008

Segnala al moderatore
Postato alle 17:14
Martedì, 29/09/2009
Grazie infinite per quello che hai fatto. :hail:
Ho riguardato il programma e ho corretto l'inizializzazione di caselle e mi sono accorto di un'altro errore:
Codice sorgente - presumibilmente Plain Text

  1. while(vincita==0){
  2. if(Griglia[0]==0) {MossaComputer();Griglia[0]=1;}
  3. if(Griglia[0]==1) {MossaGiocatore();Griglia[0]=0;}
  4.  
  5. Clear();
  6. DisegnaGriglia();
  7. vincita = TestaVincita();
  8.  
  9. }



che ho sostituito

Codice sorgente - presumibilmente Plain Text

  1. while(vincita==0){
  2. if(Griglia[0]==0) {MossaComputer();Griglia[0]=1;}else{
  3. if(Griglia[0]==1) {MossaGiocatore();Griglia[0]=0;}}
  4.  
  5. Clear();
  6. DisegnaGriglia();
  7. vincita = TestaVincita();
  8.  
  9. }



Grazie tantissime: era questo il problema che non andava(Problema banalissimo) :_doubt:

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 695
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 21:54
Martedì, 29/09/2009
Testo quotato

Postato originariamente da trenta3:

Grazie infinite per quello che hai fatto. :hail:
Ho riguardato il programma e ho corretto l'inizializzazione di caselle e mi sono accorto di un'altro errore:
Codice sorgente - presumibilmente Plain Text

  1. while(vincita==0){
  2. if(Griglia[0]==0) {MossaComputer();Griglia[0]=1;}
  3. if(Griglia[0]==1) {MossaGiocatore();Griglia[0]=0;}
  4.  
  5. Clear();
  6. DisegnaGriglia();
  7. vincita = TestaVincita();
  8.  
  9. }



che ho sostituito

Codice sorgente - presumibilmente Plain Text

  1. while(vincita==0){
  2. if(Griglia[0]==0) {MossaComputer();Griglia[0]=1;}else{
  3. if(Griglia[0]==1) {MossaGiocatore();Griglia[0]=0;}}
  4.  
  5. Clear();
  6. DisegnaGriglia();
  7. vincita = TestaVincita();
  8.  
  9. }



Grazie tantissime: era questo il problema che non andava(Problema banalissimo) :_doubt:



comunque se Griglia[0] puo' assumere solo i valori 0 e 1 il secondo if e' inutile.

Ciao. :k:

Luigi.


Le cose si fanno per bene o non si fanno affatto
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 0:45
Venerdì, 02/10/2009

oddio a parte il fatto che quel codice è allucinante per non dire inguardabile, ti consiglio di studiarti bene i cicli e ti invito a pensare almeno dieci minuti prima di metterti a scrivere il codice, così avrai una visione d'insieme ed eviterai di ridondare le istruzioni.



Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 0:53
Venerdì, 02/10/2009
if if if if if if
astio per i cicli?
:rofl:


a domanda precisa, risposta precisa...
a domanda generica, risposta generica...
PM Quote