Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Algoritmo scacchi
Forum - C/C++ - Algoritmo scacchi - Pagina 5

Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo
Avatar
pollon85 (Normal User)
Newbie


Messaggi: 13
Iscritto: 17/03/2009

Segnala al moderatore
Postato alle 23:07
Giovedì, 19/03/2009
Ora sono riuscita a modificarlo tutto e finalmente funziona :love:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <math.h>
  5.  
  6. void printScacchiera(char [][8]);
  7. void MosseCavallo(char [][8],char [], int, int);
  8. void main(void)
  9. {
  10.     int i;
  11.     int posRiga, posCol;
  12.  
  13.     char colonne[8] = {'a','b','c','d','e','f','g','h'};
  14.  
  15.     char scacchiera[][8] =                    
  16.     {{'b','n','b','n','b','n','b','n'},
  17.     {'n','b','n','b','n','b','n','b'},
  18.     {'b','n','b','n','b','n','b','n'},
  19.     {'n','b','n','b','n','b','n','b'},
  20.     {'b','n','b','n','b','n','b','n'},
  21.     {'n','b','n','b','n','b','n','b'},
  22.     {'b','n','b','n','b','n','b','n'},
  23.     {'n','b','n','b','n','b','n','b'}};
  24.  
  25.     srand(time(NULL));
  26.  
  27.     i = 0;
  28.  
  29.     while(i<8)
  30.     {
  31.         posRiga = rand()%8;
  32.         posCol = rand()%8;
  33.  
  34.         if(scacchiera[posRiga][posCol] == 'b' || scacchiera[posRiga][posCol] == 'n')
  35.         {
  36.             scacchiera[posRiga][posCol] = 'P';
  37.             i++;
  38.         }
  39.     }
  40.    
  41.     i = 0;
  42.  
  43.     while(i<1)
  44.     {
  45.         posRiga = rand()%8;
  46.         posCol = rand()%8;
  47.  
  48.         if(scacchiera[posRiga][posCol] == 'b' || scacchiera[posRiga][posCol] == 'n')
  49.         {
  50.             scacchiera[posRiga][posCol] = 'C'; // Cavallo
  51.             i++;
  52.         }
  53.     }
  54.  
  55.    printf("Cavallo in %c%d puo' catturare i seguenti pedoni: \n\n",colonne[posCol],8-posRiga);
  56.    MosseCavallo(scacchiera,colonne,posRiga,posCol);
  57.    printScacchiera(scacchiera);
  58. }
  59. void printScacchiera(char scacchiera[][8])
  60. {
  61.     int i,j;
  62.  
  63.     printf("\n");
  64.     printf("  a b c d e f g h\n\n");
  65.     for(i=0;i<8;i++)
  66.     {
  67.         printf("%d",8-i);
  68.         for(j=0;j<8;j++)
  69.         {
  70.             printf(" %c", scacchiera[i ][j]);
  71.            
  72.         }
  73.         printf("\n");
  74.     }
  75. }
  76.  
  77.  
  78. void MosseCavallo(char scacchiera[][8],char colonne[], int posRiga, int posCol)
  79. {
  80. int i = posRiga, j = posCol, pedoneTrovato = 0;
  81. if ((scacchiera[i - 1][j - 2] == 'P') && (1<=(i - 1)<=8 ) && (1<=(j - 2) <=8))
  82.     {
  83.      printf("Pedone in %c%d\n",colonne[j - 2], 8 - (i - 1));
  84.      pedoneTrovato++;
  85.     }
  86.  
  87. if ((scacchiera[i + 1][j - 2] == 'P')&& (1<=(i + 1) <=8) && (1<=(j - 2) <=8))
  88.     {
  89.      printf("Pedone in %c%d\n",colonne[j - 2], 8 - (i + 1));
  90.      pedoneTrovato++;
  91.     }
  92.  
  93. if ((scacchiera[i + 2][j - 1] == 'P') && (1<=(i + 2) <=8) && (1<=(j - 1) <=8))
  94.     {
  95.      printf("Pedone in %c%d\n",colonne[j - 1], 8 -(i + 2));
  96.      pedoneTrovato++;
  97.     }
  98.  
  99. if ((scacchiera[i + 2][j + 1] == 'P') && (1<=(i + 2) <=8) && (1<=(j + 1) <=8))
  100.     {
  101.      printf("Pedone in %c%d\n",colonne[j + 1], 8 - (i + 2));
  102.      pedoneTrovato++;
  103.     }
  104.  
  105. if ((scacchiera[i + 1][j + 2] == 'P') && (1<=(i + 1) <=8) && (1<=(j + 2) <=8))
  106.     {
  107.      printf("Pedone in %c%d\n",colonne[j + 2], 8 - (i + 1));
  108.      pedoneTrovato++;
  109.     }
  110.  
  111. if ((scacchiera[i - 1][j + 2] == 'P') && (1<=(i - 1) <=8) && (1<=(j + 2) <=8))
  112.     {
  113.      printf("Pedone in %c%d\n",colonne[j + 2], 8 - (i - 1));
  114.      pedoneTrovato++;
  115.     }
  116.  
  117. if ((scacchiera[i - 2][j + 1] == 'P') && (1<=(i - 2) <=8) && (1<=(j + 1)<=8))
  118.     {
  119.      printf("Pedone in %c%d\n",colonne[j + 1], 8 - (i - 2));
  120.      pedoneTrovato++;
  121.     }
  122.  
  123. if ((scacchiera[i - 2][j - 1] == 'P') && (1<=(i - 2) <=8) && (1<=(j - 1) <=8))
  124.     {
  125.      printf("Pedone in %c%d\n",colonne[j - 1], 8 - (i + 2));
  126.      pedoneTrovato++;
  127.     }
  128.  
  129. }


grazie infinite :hail: per tutto l'aiuto che mi hai dato!!!:hail:

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 9:51
Venerdì, 20/03/2009
Testo quotato

Postato originariamente da pollon85:

Ora sono riuscita a modificarlo tutto e finalmente funziona :love:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <math.h>
  5.  
  6. void printScacchiera(char [][8]);
  7. void MosseCavallo(char [][8],char [], int, int);
  8. void main(void)
  9. {
  10.     int i;
  11.     int posRiga, posCol;
  12.  
  13.     char colonne[8] = {'a','b','c','d','e','f','g','h'};
  14.  
  15.     char scacchiera[][8] =                    
  16.     {{'b','n','b','n','b','n','b','n'},
  17.     {'n','b','n','b','n','b','n','b'},
  18.     {'b','n','b','n','b','n','b','n'},
  19.     {'n','b','n','b','n','b','n','b'},
  20.     {'b','n','b','n','b','n','b','n'},
  21.     {'n','b','n','b','n','b','n','b'},
  22.     {'b','n','b','n','b','n','b','n'},
  23.     {'n','b','n','b','n','b','n','b'}};
  24.  
  25.     srand(time(NULL));
  26.  
  27.     i = 0;
  28.  
  29.     while(i<8)
  30.     {
  31.         posRiga = rand()%8;
  32.         posCol = rand()%8;
  33.  
  34.         if(scacchiera[posRiga][posCol] == 'b' || scacchiera[posRiga][posCol] == 'n')
  35.         {
  36.             scacchiera[posRiga][posCol] = 'P';
  37.             i++;
  38.         }
  39.     }
  40.    
  41.     i = 0;
  42.  
  43.     while(i<1)
  44.     {
  45.         posRiga = rand()%8;
  46.         posCol = rand()%8;
  47.  
  48.         if(scacchiera[posRiga][posCol] == 'b' || scacchiera[posRiga][posCol] == 'n')
  49.         {
  50.             scacchiera[posRiga][posCol] = 'C'; // Cavallo
  51.             i++;
  52.         }
  53.     }
  54.  
  55.    printf("Cavallo in %c%d puo' catturare i seguenti pedoni: \n\n",colonne[posCol],8-posRiga);
  56.    MosseCavallo(scacchiera,colonne,posRiga,posCol);
  57.    printScacchiera(scacchiera);
  58. }
  59. void printScacchiera(char scacchiera[][8])
  60. {
  61.     int i,j;
  62.  
  63.     printf("\n");
  64.     printf("  a b c d e f g h\n\n");
  65.     for(i=0;i<8;i++)
  66.     {
  67.         printf("%d",8-i);
  68.         for(j=0;j<8;j++)
  69.         {
  70.             printf(" %c", scacchiera[i ][j]);
  71.            
  72.         }
  73.         printf("\n");
  74.     }
  75. }
  76.  
  77.  
  78. void MosseCavallo(char scacchiera[][8],char colonne[], int posRiga, int posCol)
  79. {
  80. int i = posRiga, j = posCol, pedoneTrovato = 0;
  81. if ((scacchiera[i - 1][j - 2] == 'P') && (1<=(i - 1)<=8 ) && (1<=(j - 2) <=8))
  82.     {
  83.      printf("Pedone in %c%d\n",colonne[j - 2], 8 - (i - 1));
  84.      pedoneTrovato++;
  85.     }
  86.  
  87. if ((scacchiera[i + 1][j - 2] == 'P')&& (1<=(i + 1) <=8) && (1<=(j - 2) <=8))
  88.     {
  89.      printf("Pedone in %c%d\n",colonne[j - 2], 8 - (i + 1));
  90.      pedoneTrovato++;
  91.     }
  92.  
  93. if ((scacchiera[i + 2][j - 1] == 'P') && (1<=(i + 2) <=8) && (1<=(j - 1) <=8))
  94.     {
  95.      printf("Pedone in %c%d\n",colonne[j - 1], 8 -(i + 2));
  96.      pedoneTrovato++;
  97.     }
  98.  
  99. if ((scacchiera[i + 2][j + 1] == 'P') && (1<=(i + 2) <=8) && (1<=(j + 1) <=8))
  100.     {
  101.      printf("Pedone in %c%d\n",colonne[j + 1], 8 - (i + 2));
  102.      pedoneTrovato++;
  103.     }
  104.  
  105. if ((scacchiera[i + 1][j + 2] == 'P') && (1<=(i + 1) <=8) && (1<=(j + 2) <=8))
  106.     {
  107.      printf("Pedone in %c%d\n",colonne[j + 2], 8 - (i + 1));
  108.      pedoneTrovato++;
  109.     }
  110.  
  111. if ((scacchiera[i - 1][j + 2] == 'P') && (1<=(i - 1) <=8) && (1<=(j + 2) <=8))
  112.     {
  113.      printf("Pedone in %c%d\n",colonne[j + 2], 8 - (i - 1));
  114.      pedoneTrovato++;
  115.     }
  116.  
  117. if ((scacchiera[i - 2][j + 1] == 'P') && (1<=(i - 2) <=8) && (1<=(j + 1)<=8))
  118.     {
  119.      printf("Pedone in %c%d\n",colonne[j + 1], 8 - (i - 2));
  120.      pedoneTrovato++;
  121.     }
  122.  
  123. if ((scacchiera[i - 2][j - 1] == 'P') && (1<=(i - 2) <=8) && (1<=(j - 1) <=8))
  124.     {
  125.      printf("Pedone in %c%d\n",colonne[j - 1], 8 - (i + 2));
  126.      pedoneTrovato++;
  127.     }
  128.  
  129. }


grazie infinite :hail: per tutto l'aiuto che mi hai dato!!!:hail:



Attenta che forse nell'ultimo if, nella printf dovrebbe essere (i - 2)
controlla anche gli altri.

Luigi

PM Quote
Avatar
pollon85 (Normal User)
Newbie


Messaggi: 13
Iscritto: 17/03/2009

Segnala al moderatore
Postato alle 23:50
Venerdì, 20/03/2009
grazie per l'ennesimo errore che mi hai fatto vedere :D
controllerò di nuovo tutto il codice :yup:
grazie mille!!! :hail:

PM Quote
Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo