From 4096dd9f1d5db93bc04ae0ecfe3cd61168576b06 Mon Sep 17 00:00:00 2001 From: alberr_b0yyy Date: Fri, 20 Jun 2025 14:36:18 +0200 Subject: [PATCH] =?UTF-8?q?Normalement=20algorythme=20de=20contr=C3=B4les?= =?UTF-8?q?=20definitif?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.c | 370 +++++++++++++++++++++------------------------------------ 1 file changed, 133 insertions(+), 237 deletions(-) diff --git a/main.c b/main.c index 4b6ead2..1d27293 100644 --- a/main.c +++ b/main.c @@ -65,14 +65,14 @@ int piece_color_to_int(Pieces piece) { } Pieces board[8][8] = { - {EMPTY, EMPTY, BLACK_BISHOP, EMPTY, EMPTY, BLACK_ROOK, BLACK_KING, EMPTY}, - {BLACK_PAWN, BLACK_PAWN, BLACK_PAWN, EMPTY, BLACK_PAWN, BLACK_PAWN, BLACK_PAWN, BLACK_PAWN}, - {EMPTY, BLACK_KNIGHT, EMPTY, BLACK_PAWN, EMPTY, EMPTY, EMPTY, EMPTY}, - {EMPTY, EMPTY, EMPTY, EMPTY, WHITE_PAWN, BLACK_KNIGHT, EMPTY, EMPTY}, - {EMPTY, EMPTY, WHITE_BISHOP, WHITE_PAWN, EMPTY, EMPTY, EMPTY, EMPTY}, - {EMPTY, EMPTY, WHITE_KNIGHT, EMPTY, EMPTY, WHITE_KNIGHT, EMPTY, EMPTY}, - {WHITE_PAWN, WHITE_PAWN, WHITE_PAWN, EMPTY, EMPTY, WHITE_PAWN, WHITE_PAWN, WHITE_PAWN}, - {WHITE_ROOK, EMPTY, EMPTY, WHITE_QUEEN, EMPTY, WHITE_ROOK, WHITE_KING, EMPTY} + {BLACK_ROOK, EMPTY, BLACK_BISHOP, EMPTY, BLACK_KING, EMPTY, BLACK_KNIGHT, BLACK_ROOK}, + {BLACK_PAWN, EMPTY, BLACK_PAWN, BLACK_PAWN, EMPTY, BLACK_PAWN, BLACK_PAWN, EMPTY}, + {EMPTY, BLACK_QUEEN, EMPTY, EMPTY, BLACK_PAWN, EMPTY, EMPTY, BLACK_PAWN}, + {EMPTY, EMPTY, BLACK_KNIGHT, WHITE_QUEEN, EMPTY, EMPTY, WHITE_PAWN, EMPTY}, + {EMPTY, WHITE_PAWN, EMPTY, EMPTY, EMPTY, WHITE_KNIGHT, EMPTY, EMPTY}, + {EMPTY, EMPTY, WHITE_BISHOP, EMPTY, WHITE_PAWN, EMPTY, EMPTY, EMPTY}, + {WHITE_PAWN, WHITE_PAWN, EMPTY, WHITE_PAWN, EMPTY, EMPTY, EMPTY, WHITE_PAWN}, + {WHITE_ROOK, EMPTY, WHITE_BISHOP, EMPTY, WHITE_KING, EMPTY, WHITE_KNIGHT, WHITE_ROOK} }; int piece_color[8][8]; int x = 0; @@ -158,262 +158,159 @@ void controls() { switch (getchar()) { case 104: // h - if (x == 0 && y == 0) { + if (x == 0) { + if (y > 0) { + y--; + y_direction--; + } + else if (y == 0) { + y = 7; + y_direction = 7; + } x = 7; - y = 7; x_direction = 7; - y_direction = 7; } - if (x > 0) { - for (x--; x > 0; x--) { - x_direction--; - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { + else if (x > 0) { + x--; + x_direction--; + while (piece_color_to_int(board[y][x]) == 3) { + if (x == 0) { + if (y > 0) { + y--; + y_direction--; + } + else if (y == 0) { + y = 7; + y_direction = 7; + } + x = 7; + x_direction = 7; break; } - if (piece_color_to_int(board[y][x]) == 3) { - - } + x--; + x_direction--; } } + while (piece_color_to_int(board[y][x]) == 3) { + x--; + x_direction--; + } break; case 106: // j - break; - case 107: // k - break; - case 108: // l - if (x == 7 && y == 7) { - x = 0; + if (y == 7) { + if (x < 7) { + x++; + x_direction++; + } + else if (x == 7) { + x = 0; + x_direction = -7; + } y = 0; - x_direction = -7; y_direction = -7; } - if (x < 7) { - for (x++; x < 7; x++) { - x_direction++; - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { + else if (y < 7) { + y++; + y_direction++; + while (piece_color_to_int(board[y][x]) == 3) { + if (y == 7) { + if (x < 7) { + x++; + x_direction++; + } + else if (x == 7) { + x = 0; + x_direction = -7; + } + y = 0; + y_direction = -7; break; } + y++; + y_direction++; } } - if (x == 7 && piece_color_to_int(board[y][x]) == 3) { + while (piece_color_to_int(board[y][x]) == 3) { + y++; + y_direction++; + } + break; + case 107: // k + if (y == 0) { + if (x > 0) { + x--; + x_direction--; + } + else if (x == 0) { + x = 7; + x_direction = 7; + } + y = 7; + y_direction = 7; + } + else if (y > 0) { + y--; + y_direction--; + while (piece_color_to_int(board[y][x]) == 3) { + if (y == 0) { + if (x > 0) { + x--; + x_direction--; + } + else if (x == 0) { + x = 7; + x_direction = 7; + } + y = 7; + y_direction = 7; + break; + } + y--; + y_direction--; + } + } + while (piece_color_to_int(board[y][x]) == 3) { + y--; + y_direction--; + } + break; + case 108: // l + if (x == 7) { if (y < 7) { y++; y_direction++; } - if (y == 7) { + else if (y == 7) { y = 0; - x = 0; - x_direction = -7; y_direction = -7; - for (x++; x < 7; x++) { - x_direction++; - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; + } + x = 0; + x_direction = -7; + } + else if (x < 7) { + x++; + x_direction++; + while (piece_color_to_int(board[y][x]) == 3) { + if (x == 7) { + if (y < 7) { + y++; + y_direction++; } - } - - - } - } - if (x == 7 && (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2)) { - x = 0; - y++; - x_direction = -7; - y_direction++; - - - } - - - break; - case 10: // enter - //a(); - break; - case 113: // q - return; - default: break; - } - } -} - - -/* -void controls() { - while (1) { - tile_selection(); - - x_direction = 0; - y_direction = 0; - - int input = getchar(); - - switch (input) { - case 104: // h - if (x == 0 && y == 0) { - x = 7; - y = 7; - x_direction = 7; - y_direction = 7; - } - if (x > 0) { - for (x--; x > 0; x--) { - x_direction--; - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { + else if (y == 7) { + y = 0; + y_direction = -7; + } + x = 0; + x_direction = -7; break; } + x++; + x_direction++; } } - else if (x == 0) { - y--; - x = 7; - x_direction = 7; - tile_selection(); - x_direction = 0; - for (; x > 0; x--) { - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; - } - x_direction--; - } - } - if (x == 0 && piece_color_to_int(board[y][x]) == 3) { - y--; - x = 7; - x_direction = 7; - tile_selection(); - x_direction = 0; - for (; x > 0; x--) { - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; - } - x_direction--; - } - } - break; - case 106: // j - if (x == 7 && y == 7) { - x = 0; - y = 0; - x_direction = -7; - y_direction = -7; - } - if (y < 7) { - for (y++; y < 7; y++) { - y_direction++; - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; - } - } - } - else if (y == 7) { + while (piece_color_to_int(board[y][x]) == 3) { x++; - y = 0; - y_direction = -7; - tile_selection(); - y_direction = 0; - for (; y < 7; y++) { - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; - } - y_direction++; - } - } - if (y == 7 && piece_color_to_int(board[y][x]) == 3) { - x++; - y = 0; - y_direction = -7; - tile_selection(); - y_direction = 0; - for (; y < 7; y++) { - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; - } - y_direction++; - } - } - break; - case 107: // k - if (x == 0 && y == 0) { - x = 7; - y = 7; - x_direction = 7; - y_direction = 7; - } - if (y > 0) { - for (y--; y > 0; y--) { - y_direction--; - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; - } - } - } - else if (y == 0) { - x--; - y = 7; - y_direction = 7; - tile_selection(); - y_direction = 0; - for (; y > 0; y--) { - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; - } - y_direction--; - } - } - if (y == 0 && piece_color_to_int(board[y][x]) == 3) { - x--; - y = 7; - y_direction = 7; - tile_selection(); - y_direction = 0; - for (; y > 0; y--) { - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; - } - y_direction--; - } - } - break; - case 108: // l - if (x == 7 && y == 7) { - x = 0; - y = 0; - x_direction = -7; - y_direction = -7; - } - if (x < 7) { - for (x++; x < 7; x++) { - x_direction++; - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; - } - } - } - else if (x == 7) { - y++; - x = 0; - x_direction = -7; - tile_selection(); - x_direction = 0; - for (; x < 7; x++) { - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; - } - x_direction++; - } - } - if (x == 7 && piece_color_to_int(board[y][x]) == 3) { - y++; - x = 0; - x_direction = -7; - tile_selection(); - x_direction = 0; - for (; x < 7; x++) { - if (piece_color_to_int(board[y][x]) == 1 || piece_color_to_int(board[y][x]) == 2) { - break; - } - x_direction++; - } + x_direction++; } break; case 10: // enter @@ -425,7 +322,6 @@ void controls() { } } } -*/ int main() { struct termios t_old, t_new;