Regina [Scacchi]

/* . Scrivere un programma che presa in input una casella
della scacchiera, sia essa C, riempia tale scacchiera con dei numeri interi. Il valore
intero da memorizzare nelle caselle della scacchiera `e definito nel seguente modo:
- La casella deve contenere il valore 1 se, posizionando una regina in C, tale
casella `e raggiungibile dalla regina.
- La casella deve contenere il valore 2 se la casella `e C, cio`e se `e la stessa casella
definita in input che contiene la regina.
- La casella deve contenere il valore 0 se, posizionando una regina in C, tale
casella non `e raggiungibile dalla regina e non `e C (non `e la casella che contiene
la regina). */

#include
#define N 8
void regina(int [][N], int, int);

int main()
{
int i=0;
int j=0;
int riga=0;
int colonna=0;

int matrice[N][N];
for(i=0; i for(j=0; j matrice[i][j] = 0;

scanf("%d",&riga);
scanf("%d",&colonna);
regina(matrice,riga,colonna);

for(i=0; i {
for (j=0; j {
printf("%d ",matrice[i][j]);
}
printf("\n");
}
}

void regina (int matrice[][N], int riga,int colonna)
{

int i=0;
int j=0;
int a=0;
int b=0;
int x=0;
int y=0;
int matrice2[N][N];

for(a=0; a for(b=0; b matrice2[a][b] = 0;

x=riga;
y=colonna;


/* alfiereeeee*/

while(x>0)
{
if ( matrice2[x-1][y+1] == 0 && (x-1)>=0 && (y+1) matrice[x-1][y+1] = 1;
x--;
y++;
}

x=riga;
y=colonna;

while(x {
if ( matrice2[x+1][y+1] == 0 && (x+1) matrice[x+1][y+1] = 1;
x++;
y++;
}

x=riga;
y=colonna;

while(x>0)
{
if ( matrice2[x-1][y-1] == 0 && (x-1)>=0 && (y-1)>=0)
matrice[x-1][y-1] = 1;
x--;
y--;
}

x=riga;
y=colonna;

while(x {
if ( matrice2[x+1][y-1] == 0 && (x+1)=0)
matrice[x+1][y-1] = 1;
x++;
y--;
}


/*torreeeee*/


for (j=colonna; j {
x=riga;
y=j;
while(y {
if ( matrice2[x][y+1] == 0 && (y+1) matrice[x][y+1] = 1;
y++;
}
}

for (j=colonna; j {
x=riga;
y=j;
while(y>0)
{
if ( matrice2[x][y-1] == 0 && (y-1)>=0)
matrice[x][y-1] = 1;
y--;
}
}

for (i=riga; i {
y=colonna;
x=i;
while(x {
if ( matrice2[x+1][y] == 0 && (x+1) matrice[x+1][y] = 1;
x++;
}
}

for (i=riga; i>0; i--)
{
y=colonna;
x=i;
while(x>0)
{
if ( matrice2[x-1][y] == 0 && (x-1)>=0)
matrice[x-1][y] = 1;
x--;
}
}
/* metto 2 nella posizione iniziale della regina*/
matrice[riga][colonna] = 2;
}

Commenti