Guest User

Untitled

a guest
Jun 25th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.10 KB | None | 0 0
  1. int canEatPCNero(int casellaInizioCEN, int caselladx, int casellasx)
  2. {
  3.     /*flag che indica quale delle due diagonali prendere*/
  4.     int lat = 0;
  5.     righe(casellaInizioCEN);
  6.     if (scacchiera[casellaIdiagonaleSxN] == utente
  7.             && scacchiera[casellaIIdiagonaleSxN] == ' ')
  8.     {
  9.  
  10.         spostamenti[indice] = casellaIIdiagonaleSxN;
  11.         spostamenti[++indice] = casellaIdiagonaleSxN;
  12.         spostamenti[++indice] = casellaInizioCEN;
  13.         contaMangiateNero += 1;
  14.         return 1;
  15.     }
  16.     else if (scacchiera[casellaIdiagonaleDxN] == utente
  17.             && scacchiera[casellaIIdiagonaleDxN] == ' ')
  18.     {
  19.         spostamenti[indice] = casellaIIdiagonaleDxN;
  20.         spostamenti[++indice] = casellaIdiagonaleDxN;
  21.         spostamenti[++indice] = casellaInizioCEN;
  22.         contaMangiateNero += 1;
  23.         lat = 1;
  24.         return 1;
  25.     }
  26.     else
  27.     {
  28.         if (lat == 1)
  29.         {
  30.             ++indice;
  31.             int temp = casellaIIdiagonaleDxN;
  32.             righe(temp);
  33.             return canEatPCNero(temp, casellaIdiagonaleDxN,
  34.                     casellaIdiagonaleSxN);
  35.         }
  36.         else
  37.             ++indice;
  38.         int temp = casellaIIdiagonaleDxN;
  39.         righe(temp);
  40.         return canEatPCNero(temp,casellaIdiagonaleDxN,casellaIdiagonaleSxN);
  41.     }
  42.     return 0;
  43. }
  44. int spostamentoPedinaNero(int casellaInizioSPN)
  45. {
  46.     righe(casellaInizioSPN);
  47.     if (scacchiera[casellaIdiagonaleSxN] == ' ')
  48.     {
  49.         if (scacchiera[casellaIIdiagonaleSxN] != utente)
  50.         {
  51.             scacchiera[casellaIdiagonaleSxN] = scacchiera[casellaInizioSPN];
  52.             scacchiera[casellaInizioSPN] = ' ';
  53.             printf("coordinate PC: %d - %d\n", casellaInizioSPN,
  54.                     casellaIdiagonaleSxN);
  55.             return casellaIdiagonaleSxN;
  56.         }
  57.         else
  58.             return -1;
  59.     }
  60.     else if (scacchiera[casellaIdiagonaleDxN] == ' ')
  61.     {
  62.         if (scacchiera[casellaIIdiagonaleDxN] != utente)
  63.         {
  64.             scacchiera[casellaIdiagonaleDxN] = scacchiera[casellaInizioSPN];
  65.             scacchiera[casellaInizioSPN] = ' ';
  66.             printf("coordinate PC: %d - %d", casellaInizioSPN,
  67.                     casellaIdiagonaleDxN);
  68.             return casellaIdiagonaleSxN;
  69.         }
  70.         else
  71.             return -1;
  72.     }
  73.     return -1;
  74. }
  75. int mangiataPCPedina(int nMangiate)
  76. {
  77.     int j;
  78.     for (j = 0; j < nMangiate; j++)
  79.     {
  80.         scacchiera[spostamenti[j]] = scacchiera[spostamenti[j + 2]];
  81.         scacchiera[spostamenti[j + 1]] = ' ';
  82.         scacchiera[spostamenti[j + 2]] = ' ';
  83.         j++;
  84.     }
  85.     pedineMangiateNero += 1;
  86.  
  87.     return 1;
  88. }
  89.  
  90. int FunzionePCNero()
  91. {
  92.     int i;
  93.     int j;
  94.     int posizione = 0;
  95. //controllo se PC puo mangiare
  96.     for (i = 0; i < 50; i++)
  97.     {
  98.         if (scacchiera[i] == 'n')
  99.         {
  100.  
  101.             if (canEatPCNero(i,casellaIdiagonaleSxN,casellaIdiagonaleDxN) != -1)
  102.             {
  103.                 if (posizione <= contaMangiateNero)
  104.                 {
  105.  
  106.                     posizione = contaMangiateNero;
  107.                     indice = 0;
  108.                 }
  109.             }
  110.         }
  111.     }
  112.     contaMangiateNero = 0;
  113.     if (posizione != 0)
  114.     {
  115.         mangiataPCPedina(posizione);
  116.         int k;
  117.  
  118. //stampa le coordinate delle mangiate del programma
  119.         printf("mangiata del programma:\n");
  120.  
  121.         for (k = 0; k < posizione; k++)
  122.         {
  123.  
  124.             printf("%d - ", spostamenti[k]);
  125.         }
  126.         pedineMangiateNero = posizione;
  127.         return 1;
  128.     }
  129.  
  130. //non potendo mangiare faccio lo spostamento
  131.     for (j = 49; j >= 0; j--)
  132.     {
  133.         if (scacchiera[j] == 'n')
  134.         {
  135.             if (spostamentoPedinaNero(j) != -1)
  136.             {
  137.                 nMosseNero += 1;
  138.  
  139.                 return 1;
  140.  
  141.             }
  142.         }
  143.     }
  144.  
  145.     return 0;
  146. }
Add Comment
Please, Sign In to add comment