Creative Commons License Foxbond's Repo

/**(c) 2016 Michał (Foxbond) Chraniuk */
#include <stdio.h>

int tab[10][10];

void uzup()
{
     int i,j;
     for(i=0;i<10;i++)
         {
                 for(j=0;j<10;j++)
                 {
                         tab[i][j]=3;
                 }
         }
}

void nieb(int i, int j)
{
     int x,y;
     for(x=i+1;x<10;x++)
     {
             if(tab[x][j]==0)
             {
              break;
             }
             else
             tab[x][j]=2;
     }
     for(x=i-1;x>=0;x--)
     {
             if(tab[x][j]==0)
             {
              break;
             }
             else
             tab[x][j]=2;
     }
     for(y=j+1;y<10;y++)
     {
             if(tab[i][y]==0)
             {
              break;
             }
             else
             tab[i][y]=2;
     }
     for(y=j-1;y>=0;y--)
     {
             if(tab[i][y]==0)
             {
              break;
             }
             else
             tab[i][y]=2;
     }
     for(x=i+1,y=j+1;x<10,y<10;x++,y++)
     {
             if(tab[x][y]==0)
             {
              break;
             }
             else
             tab[x][y]=2;
     }
     for(x=i+1,y=j-1;x<10,y>=0;x++,y--)
     {
             if(tab[x][y]==0)
             {
              break;
             }
             else
             tab[x][y]=2;
     }
     for(x=i-1,y=j+1;x>=0,y<10;x--,y++)
     {
             if(tab[x][y]==0)
             {
              break;
             }
             else
             tab[x][y]=2;
     }
     for(x=i-1,y=j-1;x>=0,y>=0;x--,y--)
     {
             if(tab[x][y]==0)
             {
              break;
             }
             else
             tab[x][y]=2;
     }
}

void rozmiesc()
{
     int i,j;
         for(i=0;i<10;i++)
         {
                 for(j=0;j<10;j++)
                 {
                         if (tab[i][j]==3)
                         {
                                          tab[i][j]=1;
                                          nieb(i,j);
                                          break;
                         }     
                 }
                 if (tab[i][j]==1)
                 {
                 	break;
				 }
                 
         }
         pokaz();
         printf("\n");
         if(i!=10 && j!=10)
         rozmiesc();
}

void pokaz()
{
     int i,j;
     for(i=0;i<10;i++)
         {
                 for(j=0;j<10;j++)
                 {
                         if (tab[i][j] == 0){
                         	char d = 219;
                         	printf("%c", d); continue;
						 }
						 
						 if (tab[i][j] == 3){
                         	char d = 176;
                         	printf("%c", d); continue;
						 }
						 printf("%d",tab[i][j]);
                 }
                 printf("\n");
         }
}

int main()
{
    int x,y;
    uzup();
    tab[1][1]=tab[1][7]=tab[2][1]=tab[2][7]=tab[3][7]=tab[5][4]=tab[6][5]=tab[7][5]=0;
    printf("Podaj rozmieszczenie 3 zawodnikow na planszy o wymiarach 10x10 pomijajac pola zajete\n(2,2)(2,8)(3,2)(3,8)(4,8)(6,5)(7,6)(8,6)\n");
	pokaz();
    printf("\nPodaj wspolrzedne pierwszego zawodnika\nx = ");
    scanf("%d", &x);
    printf("y = ");
    scanf("%d", &y);
    tab[x-1][y-1]=1;
    nieb(x-1,y-1);
    pokaz();
    printf("Podaj wspolrzedne drugiego zawodnika\nx = ");
    scanf("%d", &x);
    printf("y = ");
    scanf("%d", &y);
    tab[x-1][y-1]=1;
    nieb(x-1,y-1);
    pokaz();
    printf("Podaj wspolrzedne trzeciego zawodnika\nx = ");
    scanf("%d", &x);
    printf("y = ");
    scanf("%d", &y);
    tab[x-1][y-1]=1;
    nieb(x-1,y-1);
    pokaz();
    printf("\n");
    rozmiesc();
    printf("Ostateczna forma\n");
    pokaz();
    getch();
    return 0;
}

> Back