19/03/09 22:07
pollon85
Ora sono riuscita a modificarlo tutto e finalmente funziona
grazie infinite per tutto l'aiuto che mi hai dato!!!
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> void printScacchiera(char [][8]); void MosseCavallo(char [][8],char [], int, int); void main(void) { int i; int posRiga, posCol; 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++; } } printf("Cavallo in %c%d puo' catturare i seguenti pedoni: \n\n",colonne[posCol],8-posRiga); MosseCavallo(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"); } } void MosseCavallo(char scacchiera[][8],char colonne[], int posRiga, int posCol) { int i = posRiga, j = posCol, pedoneTrovato = 0; if ((scacchiera[i - 1][j - 2] == 'P') && (1<=(i - 1)<=8 ) && (1<=(j - 2) <=8)) { printf("Pedone in %c%d\n",colonne[j - 2], 8 - (i - 1)); pedoneTrovato++; } if ((scacchiera[i + 1][j - 2] == 'P')&& (1<=(i + 1) <=8) && (1<=(j - 2) <=8)) { printf("Pedone in %c%d\n",colonne[j - 2], 8 - (i + 1)); pedoneTrovato++; } if ((scacchiera[i + 2][j - 1] == 'P') && (1<=(i + 2) <=8) && (1<=(j - 1) <=8)) { printf("Pedone in %c%d\n",colonne[j - 1], 8 -(i + 2)); pedoneTrovato++; } if ((scacchiera[i + 2][j + 1] == 'P') && (1<=(i + 2) <=8) && (1<=(j + 1) <=8)) { printf("Pedone in %c%d\n",colonne[j + 1], 8 - (i + 2)); pedoneTrovato++; } if ((scacchiera[i + 1][j + 2] == 'P') && (1<=(i + 1) <=8) && (1<=(j + 2) <=8)) { printf("Pedone in %c%d\n",colonne[j + 2], 8 - (i + 1)); pedoneTrovato++; } if ((scacchiera[i - 1][j + 2] == 'P') && (1<=(i - 1) <=8) && (1<=(j + 2) <=8)) { printf("Pedone in %c%d\n",colonne[j + 2], 8 - (i - 1)); pedoneTrovato++; } if ((scacchiera[i - 2][j + 1] == 'P') && (1<=(i - 2) <=8) && (1<=(j + 1)<=8)) { printf("Pedone in %c%d\n",colonne[j + 1], 8 - (i - 2)); pedoneTrovato++; } if ((scacchiera[i - 2][j - 1] == 'P') && (1<=(i - 2) <=8) && (1<=(j - 1) <=8)) { printf("Pedone in %c%d\n",colonne[j - 1], 8 - (i + 2)); pedoneTrovato++; } }
grazie infinite per tutto l'aiuto che mi hai dato!!!
aaa
20/03/09 8:51
gigisoft
Postato originariamente da pollon85:
Ora sono riuscita a modificarlo tutto e finalmente funziona
grazie infinite per tutto l'aiuto che mi hai dato!!!
Ora sono riuscita a modificarlo tutto e finalmente funziona
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> void printScacchiera(char [][8]); void MosseCavallo(char [][8],char [], int, int); void main(void) { int i; int posRiga, posCol; 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++; } } printf("Cavallo in %c%d puo' catturare i seguenti pedoni: \n\n",colonne[posCol],8-posRiga); MosseCavallo(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"); } } void MosseCavallo(char scacchiera[][8],char colonne[], int posRiga, int posCol) { int i = posRiga, j = posCol, pedoneTrovato = 0; if ((scacchiera[i - 1][j - 2] == 'P') && (1<=(i - 1)<=8 ) && (1<=(j - 2) <=8)) { printf("Pedone in %c%d\n",colonne[j - 2], 8 - (i - 1)); pedoneTrovato++; } if ((scacchiera[i + 1][j - 2] == 'P')&& (1<=(i + 1) <=8) && (1<=(j - 2) <=8)) { printf("Pedone in %c%d\n",colonne[j - 2], 8 - (i + 1)); pedoneTrovato++; } if ((scacchiera[i + 2][j - 1] == 'P') && (1<=(i + 2) <=8) && (1<=(j - 1) <=8)) { printf("Pedone in %c%d\n",colonne[j - 1], 8 -(i + 2)); pedoneTrovato++; } if ((scacchiera[i + 2][j + 1] == 'P') && (1<=(i + 2) <=8) && (1<=(j + 1) <=8)) { printf("Pedone in %c%d\n",colonne[j + 1], 8 - (i + 2)); pedoneTrovato++; } if ((scacchiera[i + 1][j + 2] == 'P') && (1<=(i + 1) <=8) && (1<=(j + 2) <=8)) { printf("Pedone in %c%d\n",colonne[j + 2], 8 - (i + 1)); pedoneTrovato++; } if ((scacchiera[i - 1][j + 2] == 'P') && (1<=(i - 1) <=8) && (1<=(j + 2) <=8)) { printf("Pedone in %c%d\n",colonne[j + 2], 8 - (i - 1)); pedoneTrovato++; } if ((scacchiera[i - 2][j + 1] == 'P') && (1<=(i - 2) <=8) && (1<=(j + 1)<=8)) { printf("Pedone in %c%d\n",colonne[j + 1], 8 - (i - 2)); pedoneTrovato++; } if ((scacchiera[i - 2][j - 1] == 'P') && (1<=(i - 2) <=8) && (1<=(j - 1) <=8)) { printf("Pedone in %c%d\n",colonne[j - 1], 8 - (i + 2)); pedoneTrovato++; } }
grazie infinite per tutto l'aiuto che mi hai dato!!!
Attenta che forse nell'ultimo if, nella printf dovrebbe essere (i - 2)
controlla anche gli altri.
Luigi
aaa
20/03/09 22:50
pollon85
grazie per l'ennesimo errore che mi hai fatto vedere
controllerò di nuovo tutto il codice
grazie mille!!!
controllerò di nuovo tutto il codice
grazie mille!!!
aaa