70 lines
2.0 KiB
C
70 lines
2.0 KiB
C
#include "head.h"
|
|
|
|
|
|
int main()
|
|
{
|
|
char _board[8][8];
|
|
{ //Set Def desk
|
|
char _cleanDesk[] = {"rnbqkbnrpppppppp"};
|
|
for(int i = 0;i<8;i++)
|
|
for(int j = 0;j<8;j++)
|
|
_board[i][j] = ' ';
|
|
for (int i = 0; i < 2;i++)
|
|
for(int j = 0; j <8;j++)
|
|
_board[i][j] = _cleanDesk[i*8+j];
|
|
for (int i = 6; i < 8;i++)
|
|
for(int j = 0; j < 8;j++)
|
|
_board[i][j] = i==6? (_cleanDesk[8+j])-32 : (_cleanDesk[j])-32;
|
|
print_board(*_board);
|
|
}
|
|
|
|
char charsInInput=1;
|
|
char _input[CHARS_IN_INPUT_MAX];
|
|
__TURN __turn;
|
|
__turn.whosTurn = 0; // 0 - white 1 - black
|
|
while(charsInInput>0){
|
|
if (input_(_input,&charsInInput)) return 0;
|
|
unsigned char ptr;
|
|
{//Turn info
|
|
ptr = (*_input>='A'&&*_input<='Z')?3:2; // Qe2-e4
|
|
__turn.currCol = _input[ptr-2]-'a';
|
|
__turn.currRow = 8-(_input[ptr-1]-'0');
|
|
__turn.nextCol = _input[ptr+1]-'a';
|
|
__turn.nextRow = 8-(_input[ptr+2]-'0');
|
|
}
|
|
|
|
{//Rules
|
|
char currFigure = _board[__turn.currRow][__turn.currCol];
|
|
{ // 'Q'e2-e5 Missmatch
|
|
if(ptr==3)
|
|
if(*_input!=currFigure&&*_input!=currFigure-32){
|
|
printf("Err, figure missmatch");
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
if(match_turn(currFigure,__turn.whosTurn))return 1;
|
|
|
|
{ // TAKE MISMATCH
|
|
if
|
|
((_board[__turn.nextRow][__turn.nextCol]!=' ' && _input[ptr]!='x'
|
|
)||(
|
|
_board[__turn.nextRow][__turn.nextCol]==' ' && _input[ptr]=='x'))
|
|
{
|
|
printf("Err, take missmatch");
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
if(match_move(_board,&__turn,currFigure))return 1;
|
|
}
|
|
|
|
move(_board,&__turn);
|
|
print_board(*_board);
|
|
if(_input[charsInInput-1]=='#')break;
|
|
}
|
|
|
|
|
|
return 0;
|
|
}
|