Scrivere un programma che presa in input una casella
della scacchiera, sia essa C, riempia tale scacchiera con dei numeri interi.
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<stdio.h>
#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<N; i++)
        for(j=0; j<N; j++)
        matrice[i][j] = 0;
        scanf("%d",&riga);
        scanf("%d",&colonna);
        regina(matrice,riga,colonna);
        
    for(i=0; i<N; i++)
    {
        for (j=0; j<N; 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<N; a++)
        for(b=0; b<N; 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)<N)
                matrice[x-1][y+1] = 1;
                x--;
                y++;
                }
                x=riga;
                y=colonna;
                
                while(x<N)
                {
                if ( matrice2[x+1][y+1] == 0 && (x+1)<N && (y+1)<N)
                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<N)
                {
                if ( matrice2[x+1][y-1] == 0 && (x+1)<N && (y-1)>=0)
                matrice[x+1][y-1] = 1;
                x++;
                y--;
                }
                
                
/*torreeeee*/
                
                for (j=colonna; j<N; j++)
                {
                x=riga;
                y=j;
                while(y<N)
                {
                if ( matrice2[x][y+1] == 0 && (y+1)<N)
                matrice[x][y+1] = 1;
                y++;
                }
                }
                
                for (j=colonna; j<N; 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<N; i++)
                {
                y=colonna;
                x=i;
                while(x<N)
                {
                if ( matrice2[x+1][y] == 0 && (x+1)<N)
                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;
} 
Ricerca appunti sul web
 
  
    Ricerca personalizzata
  
venerdì 27 febbraio 2009
Sorgenti c : Scacchi 2
Pubblicato da
Baiox
alle
10:39
        
 
 
Etichette: Informatica, Programmazione C
Iscriviti a:
Commenti sul post (Atom)
0 commenti:
Posta un commento