Normalement algorythme de contrôles definitif

This commit is contained in:
alberr_b0yyy 2025-06-20 14:36:18 +02:00
parent 0d5f77d2c4
commit 4096dd9f1d

370
main.c
View File

@ -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;