Ti chiedo davvero scusa e grazie del tempo che stai perdendo con me...il problema è che non sono proprio capace con la programmazione(e si è notato
oubt
Cerco di essere più chiara,il mio progetto è come quello che sta all'inizio del post,ho scacchiera,8 pedoni e un cavallo.Io ho cercato di modificare il programma che "clikkami" aveva postato per il suo progetto
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
void printScacchiera(char [][8]); //8metodi per i possibili spostamenti Cavallo//
void UnPassoSuDueDestra(char [][8],char [], int, int);
void UnPassoSuDueSinistra(char [][8],char [], int, int);
void UnPassoGiuDueSinistra(char [][8],char [], int, int);
void UnPassoGiuDueDestra(char [][8],char [], int, int);
void UnPassoDestraDueSu(char [][8],char [], int, int);
void UnPassoDestraDueGiu(char [][8],char [], int, int);
void UnPassoSinistraDueSu(char [][8],char [], int, int);
void UnPassoSinistraDueGiu(char [][8],char [], int, int);
void main(void)
{
int i;
int posRiga, posCol;
char riga[8] = {'1','2','3','4','5','6','7','8'};
char colonne[8] = {'a','b','c','d','e','f','g','h'};
char scacchiera[][8] =
{{'b','n','b','n','b','n','b','n'},
{'n','b','n','b','n','b','n','b'},
{'b','n','b','n','b','n','b','n'},
{'n','b','n','b','n','b','n','b'},
{'b','n','b','n','b','n','b','n'},
{'n','b','n','b','n','b','n','b'},
{'b','n','b','n','b','n','b','n'},
{'n','b','n','b','n','b','n','b'}};
srand(time(NULL));
i = 0;
while(i<8)
{
posRiga = rand()%8;
posCol = rand()%8;
if(scacchiera[posRiga][posCol] == 'b' || scacchiera[posRiga][posCol] == 'n')
{
scacchiera[posRiga][posCol] = 'P';
i++;
}
}
i = 0;
while(i<1)
{
posRiga = rand()%8;
posCol = rand()%8;
if(scacchiera[posRiga][posCol] == 'b' || scacchiera[posRiga][posCol] == 'n')
{
scacchiera[posRiga][posCol] = 'C'; // Cavallo
i++;
}
} //a questo punto posRiga e posCol hanno le coord del Cavallo,ultimo dichiarato//
A questo punto nel programma che ho visto di "clikkami" sempre in questo post,c'è in
printf("Regina in %c%d puo'catturare i seguenti pedoni:\n\n",colonne[posCol],8-posRiga); //questo lo dovrei modificare per il mio caso e quindi dovrei scrivere un printf("Cavallo in...puo'catturare.... e questo non riesco a capirlo//
Poi c'è
UnPassoSuDueDestra(scacchiera,colonne,posRiga,posCol);
UnPassoSuDueSinistra(scacchiera,colonne,posRiga,posCol);
UnPassoGiuDueSinistra(scacchiera,colonne,posRiga,posCol);
UnPassoGiuDueDestra(scacchiera,colonne,posRiga,posCol);
UnPassoDestraDueSu(scacchiera,colonne,posRiga,posCol);
UnPassoDestraDueGiu(scacchiera,colonne,posRiga,posCol);
UnPassoSinistraDueSu(scacchiera,colonne,posRiga,posCol);
UnPassoSinistraDueGiu(scacchiera,colonne,posRiga,posCol);
printScacchiera(scacchiera);
void printScacchiera(char scacchiera[][8])
{
int i,j;
printf("\n");
printf(" a b c d e f g h\n\n");
for(i=0;i<8;i++)
{
printf("%d",8-i);
for(j=0;j<8;j++)
{
printf(" %c", scacchiera[i ][j]);
}
printf("\n");
}
}
//dichiarato tutto,ora devo scrivere i movimenti del Cavallo per vedere se trova i Pedoni//
Nel programma di "clikkami" un metodo ad esempio era
void ReginaNord(char scacchiera[][8], char colonne[], int posRiga, int posCol)
{
int i,pedoneTrovato = 0;
for(i=posRiga;i>=0;i--)
{
if((scacchiera[i ][posCol] == 'P') && (pedoneTrovato == 0))
{
if((scacchiera[i-1][posCol-1] != 'P') && (scacchiera[i-1][posCol+1] != 'P'))
{
printf("Pedone in %c%d\n",colonne[posCol],8-i);
pedoneTrovato = 1;
}
else
{
pedoneTrovato = 1;
}
}
}
}
Io invece ho il metodo ad esempio UnPassoSuDueDestra,a differenza del metodo che ho scritto prima della Regina di "clikkami" io non ho inserito il ciclo for perche il Cavallo ha i passi limitati a differenza della Regina,quindi per questo io dovrei avere una situazione del genere
i=posRiga;j=posCol;1<i<8 && 1<j<8;i=i+1;j=j+2; // ho messo gli indici tra 1 e 8 perchè cmq non devo uscire fuori dalla scacchiera,perchè si deve gestire anche il caso in cui i passo su e i 2 a destra non si possano fare//
In parole povere,come ti ho detto all'inizio ho tentato di modificare il programma di "clikkami" per le mie esigenza