Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- FILE *fd;
- char A[8][8];
- fd = fopen ("input.txt", "r");
- if(fd == NULL)
- {
- printf("Error in opening file");
- return(0);
- }
- int i, j;
- int e, v;
- //fclose(fd);
- //Pawn pëstininkas Rook bokðtas Bishop rikis Queen karalienë King karalius Knight þirgas
- //didþiosios yra balti, maþosios - juodi
- int count = 0;
- int Chess = 0;
- int wh = 0, bl = 0;//white in trouble or black in trouble
- while (1)
- {
- for (i = 0; i <=8; i++ )
- {
- for (j = 0; j <= 8; j++ )
- {
- fscanf(fd, " %c", &A[i][j]);
- printf("%c", A[i][j]);
- if ( j == 8)
- printf ("\n");
- switch(A[i][j])
- {
- case 'p':
- if (A[i+1][j+1] == 'K' || A[i+1][j-1] == 'K')
- {
- bl++;
- break;
- }
- else
- {
- break;
- }
- case 'r':
- e = i + 1;
- while (A[e][j] == '.')
- {
- e++;
- }
- if (A[e][j] == 'K')
- {
- bl++;
- break;
- }
- e = i - 1;
- while (A[e][j] == '.')
- {
- e--;
- }
- if (A[e][j] == 'K')
- {
- bl++;
- break;
- }
- v = j + 1;
- while (A[i][v] == '.')
- {
- v++;
- }
- if (A[i][v] == 'K')
- {
- bl++;
- break;
- }
- v = j - 1;
- while (A[i][v] == '.')
- {
- v--;
- }
- if (A[i][v] == 'K')
- {
- bl++;
- break;
- }
- case 'b':
- e = i + 1;
- v = j + 1;
- while (A[e][v] == '.')
- {
- e++;
- v++;
- }
- if (A[e][v] == 'K')
- {
- bl++;
- break;
- }
- e = i + 1;
- v = j - 1;
- while (A[e][v] == '.')
- {
- e++;
- v--;
- }
- if (A[e][v] == 'K')
- {
- bl++;
- break;
- }
- e = i - 1;
- v = j + 1;
- while (A[e][v] == '.')
- {
- e--;
- v++;
- }
- if (A[e][v] == 'K')
- {
- bl++;
- break;
- }
- e = i - 1;
- v = j - 1;
- while (A[e][v] == '.')
- {
- e--;
- v--;
- }
- if (A[e][v] == 'K')
- {
- bl++;
- break;
- }
- case 'q':
- e = i + 1;
- v = j + 1;
- while (A[e][v] == '.')
- {
- e++;
- v++;
- }
- if (A[e][v] == 'K')
- {
- bl++;
- break;
- }
- e = i + 1;
- v = j - 1;
- while (A[e][v] == '.')
- {
- e++;
- v--;
- }
- if (A[e][v] == 'K')
- {
- bl++;
- break;
- }
- e = i - 1;
- v = j + 1;
- while (A[e][v] == '.')
- {
- e--;
- v++;
- }
- if (A[e][v] == 'K')
- {
- bl++;
- break;
- }
- e = i - 1;
- v = j - 1;
- while (A[e][v] == '.')
- {
- e--;
- v--;
- }
- if (A[e][v] == 'K')
- {
- bl++;
- break;
- }
- e = i + 1;
- while (A[e][j] == '.')
- {
- e++;
- }
- if (A[e][j] == 'K')
- {
- bl++;
- break;
- }
- e = i - 1;
- while (A[e][j] == '.')
- {
- e--;
- }
- if (A[e][j] == 'K')
- {
- bl++;
- break;
- }
- v = j + 1;
- while (A[i][v] == '.')
- {
- v++;
- }
- if (A[i][v] == 'K')
- {
- bl++;
- break;
- }
- v = j - 1;
- while (A[i][v] == '.')
- {
- v--;
- }
- if (A[i][v] == 'K')
- {
- bl++;
- break;
- }
- break;
- /* case 'k':
- if (A[i+1][j+1] == 'K' ||[i+1][j-1] == 'K' || A[i+1][j-1] == 'K' || A[i-1][j-1] == 'K' || A[i-1][j+1] == 'K' || A[i-1][j] == 'K' || A[i][j+1] == 'K' || A[i][j-1] == 'K')
- {
- bl++;
- break;
- }
- else
- {
- break;
- }*/
- case 'n':
- if (A[i+2][j+1] == 'K' || A[i+2][j-1] == 'K' || A[i-2][j+1] == 'K' || A[i-2][j-1] == 'K' || A[i-1][j+2] == 'K' || A[i+1][j+2] == 'K' || A[i-1][j-2] == 'K' || A[i+1][j-2] == 'K')
- {
- bl++;
- break;
- }
- if(A[i+1][j+2] == 'K' || A[i+1][j-2] == 'K' || A[i-1][j+2] == 'K' || A[i-1][j-2] == 'K' ||A[i-2][j+1] == 'K' || A[i+2][j+1] == 'K' ||A[i-2][j-1] == 'K' || A[i+2][j-1] == 'K')
- {
- bl++;
- break;
- }
- else
- {
- break;
- }
- case 'P':
- if (A[i-1][j+1] == 'k' || A[i-1][j-1] == 'k')
- {
- wh++;
- break;
- }
- else
- {
- break;
- }
- break;
- case 'R':
- e = i + 1;
- while (A[e][j] == '.')
- {
- e++;
- }
- if (A[e][j] == 'k')
- {
- wh++;
- break;
- }
- e = i - 1;
- while (A[e][j] == '.')
- {
- e--;
- }
- if (A[e][j] == 'k')
- {
- wh++;
- break;
- }
- v = j + 1;
- while (A[i][v] == '.')
- {
- v++;
- }
- if (A[i][v] == 'k')
- {
- wh++;
- break;
- }
- v = j - 1;
- while (A[i][v] == '.')
- {
- v--;
- }
- if (A[i][v] == 'k')
- {
- wh++;
- break;
- }
- break;
- case 'B':
- e = i + 1;
- v = j + 1;
- while (A[e][v] == '.')
- {
- e++;
- v++;
- }
- if (A[e][v] == 'k')
- {
- wh++;
- break;
- }
- e = i + 1;
- v = j - 1;
- while (A[e][v] == '.')
- {
- e++;
- v--;
- }
- if (A[e][v] == 'k')
- {
- wh++;
- break;
- }
- e = i - 1;
- v = j + 1;
- while (A[e][v] == '.')
- {
- e--;
- v++;
- }
- if (A[e][v] == 'k')
- {
- wh++;
- break;
- }
- e = i - 1;
- v = j - 1;
- while (A[e][v] == '.')
- {
- e--;
- v--;
- }
- if (A[e][v] == 'k')
- {
- wh++;
- break;
- }
- case 'Q':
- e = i + 1;
- v = j + 1;
- while (A[e][v] == '.')
- {
- e++;
- v++;
- }
- if (A[e][v] == 'k')
- {
- wh++;
- break;
- }
- e = i + 1;
- v = j - 1;
- while (A[e][v] == '.')
- {
- e++;
- v--;
- }
- if (A[e][v] == 'k')
- {
- wh++;
- break;
- }
- e = i - 1;
- v = j + 1;
- while (A[e][v] == '.')
- {
- e--;
- v++;
- }
- if (A[e][v] == 'k')
- {
- wh++;
- break;
- }
- e = i - 1;
- v = j - 1;
- while (A[e][v] == '.')
- {
- e--;
- v--;
- }
- if (A[e][v] == 'k')
- {
- wh++;
- break;
- }
- e = i + 1;
- while (A[e][j] == '.')
- {
- e++;
- }
- if (A[e][j] == 'k')
- {
- wh++;
- break;
- }
- e = i - 1;
- while (A[e][j] == '.')
- {
- e--;
- }
- if (A[e][j] == 'k')
- {
- wh++;
- break;
- }
- v = j + 1;
- while (A[i][v] == '.')
- {
- v++;
- }
- if (A[i][v] == 'k')
- {
- wh++;
- break;
- }
- v = j - 1;
- while (A[i][v] == '.')
- {
- v--;
- }
- if (A[i][v] == 'k')
- {
- wh++;
- break;
- }
- /* case 'K':
- if (A[i+1][j+1] == 'k' || A[i+1][j-1] == 'k' || A[i+1][j-1] == 'k' || A[i-1][j-1] == 'k' || A[i-1][j+1] == 'k' || A[i-1][j] == 'k' || B[ee].A[i][j+1] == 'k' || B[ee].A[i][j-1] == 'k')
- {
- wh++;
- break;
- }
- else
- {
- break;
- }*/
- case 'N':
- if (A[i+2][j+1] == 'k' || A[i+2][j-1] == 'k' || A[i-2][j+1] == 'k' || A[i-2][j-1] == 'k' || A[i-1][j+2] == 'k' || A[i+1][j+2] == 'k' || A[i-1][j-2] == 'k' || A[i+1][j-2] == 'k')
- {
- wh++;
- break;
- }
- if(A[i+1][j+2] == 'k' || A[i+1][j-2] == 'k' || A[i-1][j+2] == 'k' || A[i-1][j-2] == 'k' || A[i-2][j+1] == 'k' || A[i+2][j+1] == 'k' || A[i-2][j-1] == 'k' || A[i+2][j-1] == 'k')
- {
- wh++;
- break;
- }
- else
- {
- break;
- }
- default:
- A[i][j]='.';
- break;
- }
- /*for(i = 2; i <=10; i++)//in order to clean an array
- {
- for(j = 2; j <= 9; j++ )
- {
- A[i][j] == '.';
- }
- }*/
- }
- }
- count ++;
- if (bl == 0 && wh == 0)
- {
- printf ("\nGame %d: no king is in check\n", count);
- }
- if (bl > 0)
- {
- printf("\nGame %d: black king is in check\n", count) ;
- bl = 0;
- }
- if (wh > 0)
- {
- printf("\nGame %d: white king is in check\n", count) ;
- wh = 0;
- }
- /*else if (bl >= 1 && wh >= 1)
- {
- printf("\nGame %d: white and black kings are in check\n", count) ;
- }*/
- if( feof(fd) )
- {
- break ;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement