codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void guardia(char scacchiera[][16], int nx, int ny);
void ladro(char scacchiera[][16], int nx, int ny);
float ladronord( char scacchiera[][16], int nx, int ny);
void printScacchiera(char scacchiera[][16]);
/*void ladrosud(char scaccheira[][16], int nx, int ny);
void ladroest(char scaccheira[][16], int nx, int ny);
void ladroovest(char scacchiera[][16], int nx, int ny);
*/
void main()
{
int i,j,nx,ny;
char scacchiera[16][16]= {
{ 'm','m','m','m','m','m','m','m','m','m','m','m','m','m','m','m'},
{ 'm',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'},
{ 'm',' ',' ','m',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'},
{ 'm',' ',' ','m',' ',' ',' ','m','m','m','m','m','m','m','m','m'},
{ 'm',' ',' ','m',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'},
{ 'm',' ',' ','m',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'},
{ 'm',' ',' ','m',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'},
{ 'm',' ',' ','m',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'},
{ 'm',' ',' ','m',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'},
{ 'm',' ',' ','m',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'},
{ 'm',' ',' ',' ',' ',' ',' ','m',' ',' ',' ','m','m','m',' ','m'},
{ '.',' ',' ',' ',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'},
{ '.',' ',' ',' ',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'},
{ '.',' ',' ',' ',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'},
{ 'm',' ',' ',' ',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'},
{ 'm','m','m','m','m','m','m','m','m','m','m','m','m','m','m','m'}};
//scelta automatica del seed
srand(time(NULL));
//generazione della posizione del LADRO
ladro(scacchiera, nx, ny);
//generazione della posizione della GUARDIA
guardia(scacchiera, nx, ny);
//stampa la scacchiera
printScacchiera(scacchiera);
ladronord(scacchiera,nx,ny);
system("PAUSE");
}
void ladro(char scacchiera[][16], int nx, int ny)
{
int i;
for (i=0;i<1;i++)//ciclo che viene eseguito una sola volta tanto quanto è la posizione da generare.
{
/* genera a caso una posizione nella scacchiera 17x17 */
do
{
nx = rand()%17;
ny = rand()%17;
}
while(scacchiera[nx][ny]=='m');
scacchiera[nx][ny] = 'L';
printf("le cordinate del ladro sono %d : %d \n",nx,ny);
printf("\n\n");
}
}
void guardia(char scacchiera[][16], int mx, int my)
{
int i;
for (i=0;i<1;i++)//ciclo che viene eseguito una sola volta tanto quanto è la posizione da generare.
{
/* genera a caso una posizione nella scacchiera 17x17 */
do
{
mx = rand()%17;
my = rand()%17;
}
while(scacchiera[mx][my]=='m');
scacchiera[mx][my] = 'G';
printf("le cordinate della guardia sono %d : %d \n",mx,my);
printf("\n\n");
}
}
void printScacchiera(char scacchiera[][16])
{
int i,j;
for (i=0;i<16;i++)//visualizzazione della scacchiera
{
for (j=0;j<16;j++)
printf(" %c",scacchiera[i][j]);
printf("\n"); //visualizzazione per riga
}
}
float ladronord( char scacchiera[][16], int nx, int ny) //indica il possibile spostamento che l'utente fa fare al ladro
{
char p;
printf("per spostare il ladro occorre premere:\n W = SU \n S = GIU' \n A = SINISTRA \n D = DESTRA\n");
scanf("%c",&p);
switch (p)
{
case 1:
if(p == 'w')
nx=nx-1;
scacchiera[nx][ny] = 'L';
break;
case 2:
if(p == 's')
nx=nx+1;
ladronord(scacchiera,nx,ny);
break;
case 3:
if(p == 'a')
ny=ny-1;
break;
case 4:
if(p == 'd')
ny=ny+1;
break;
}
printScacchiera(scacchiera);
}