Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool check_move(int col_from, int row_from, int col_to, int row_to, int board[8][8], bool is_white_move)
- {
- // czy ruch miesci sie w planszy
- if (col_from < 0 || col_from > 7 || col_to < 0 || col_to > 7)
- return false;
- else if (row_from < 0 || row_from > 7 || row_to < 0 || row_to > 7)
- return false;
- // czy nie idziemy na biale pole
- else if (board[row_to][col_to] == 0)
- return false;
- // czy na polu skad zaczynamy stoi nasz pion
- else if (board[col_from][row_from] <= 1)
- return false;
- else if (board[col_from][row_from] == 2 && is_white_move)
- return false;
- else if (board[col_from][row_from] == 3 && !is_white_move)
- return false;
- // czy pole na ktore się ruszamy jest puste;
- else if (board[col_to][row_to] != 1)
- return false;
- else if (col_from == col_to || row_from == row_to)
- return false;
- // czy o jedno lub 2 pola po skosie
- if (abs(col_from - col_to) == 1 && abs(row_from - col_to) == 1)
- return true;
- else if (abs(col_from - col_to) == 2 && abs(row_from - col_to) == 2)
- {
- if (is_white_move)
- {
- if (col_from - col_to > 0 && row_from - row_to > 0)
- {
- if (board[row_from - 1][col_from - 1] == 2)
- return true;
- }
- else if (col_from - col_to < 0 && row_from - row_to > 0)
- {
- if (board[row_from - 1][col_from + 1] == 2)
- return true;
- }
- else if (col_from - col_to > 0 && row_from - row_to < 0)
- {
- if (board[row_from + 1][col_from - 1] == 2)
- return true;
- }
- else if (col_from - col_to < 0 && row_from - row_to < 0)
- {
- if (board[row_from + 1][col_from + 1] == 2)
- return true;
- }
- return false;
- }
- else
- {
- if (col_from - col_to > 0 && row_from - row_to > 0)
- {
- if (board[row_from - 1][col_from - 1] == 3)
- return true;
- }
- else if (col_from - col_to < 0 && row_from - row_to > 0)
- {
- if (board[row_from - 1][col_from + 1] == 3)
- return true;
- }
- else if (col_from - col_to > 0 && row_from - row_to < 0)
- {
- if (board[row_from + 1][col_from - 1] == 3)
- return true;
- }
- else if (col_from - col_to < 0 && row_from - row_to < 0)
- {
- if (board[row_from + 1][col_from + 1] == 3)
- return true;
- }
- return false;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement