04/02/12 18:20
pocho22na
Implementare un algoritmo legato al gioco degli scacchi. L’algoritmo considera una scacchiera regolamentare (8x8 caselle bianche e nere, casella nera in basso a sinistra), dispone a caso (usando la function rand) 8 Pedoni bianchi (per semplicità, possono stare in una qualunque casella non occupata da un altro pezzo) e poi dispone a caso (usando la function rand) una Regina nera (può stare in una qualunque casella non occupata da un altro pezzo). L’algoritmo deve visualizzare la scacchiera, mostrando una ‘b’ e una ‘n’ per le caselle bianche e nere non occupate, mostrando una ‘P’ nelle caselle occupate dai Pedoni e una ‘R’ per la casella occupata dalla Regina. L’algoritmo determina, in base alla posizione di tutti i pezzi sulla scacchiera, quali sono i Pedoni che possono essere catturati da uno qualunque dei possibili movimenti della Regina. Fare attenzione al fatto che un Pedone potrebbe essere “protetto” da un altro Pedone e che i Pedoni “protetti” non possono essere catturati. Infine l’algoritmo visualizza l’elenco dei Pedoni catturabili, precisando anche da quale pezzo sono catturabili e utilizzando la notazione usuale delle posizioni nel gioco degli scacchi, ovvero scrivendo, per esempio: Pedone in a3 catturabile da Regina in b4, Pedone in d6 catturabile da Regina in b4,….. Ricordare che nella notazione usuale degli scacchi le righe della scacchiera sono indicate mediante numeri interi (da 1 ad 8, dal basso verso l’alto), mentre le colonne sono indicate mediante lettere dell’alfabeto (da ‘a’ ad ‘h’ da sinistra a destra) e che la notazione prevede di indicare prima la lettera (colonna) e poi il numero (riga).
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main(){
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'}};
int i,j,x;
srand(time(NULL));
//pedoni casuali
for(x=1;x<=8;x++){
i=rand()%8;
j=rand()%8;
if (scacchiera[i][j]=='b' || scacchiera[i][j]=='n')
scacchiera[i][j]='P';
else{
i=rand()%8;
j=rand()%8;
scacchiera[i][j]='P';
}
}
//regina casuale
x=1;
while (x==1){
i=rand()%8;
j=rand()%8;
if (scacchiera[i][j]=='b' || scacchiera[i][j]=='n'){
scacchiera[i][j]='R';
x=0;
}
}
//stampa
for(i=0;i<8;i++){
for(j=0;j<8;j++){
printf(" %c|", scacchiera[i][j]);
}
printf("\n------------------------\n"
}
system ("PAUSE"
}
sono partito bene ?
aaa