Téléverser les fichiers vers "/"
This commit is contained in:
parent
73dd1946dd
commit
8feb400da4
59
blocus.c
Normal file
59
blocus.c
Normal file
@ -0,0 +1,59 @@
|
||||
#include "blocus.h"
|
||||
#include <stdio.h>
|
||||
|
||||
void initialize_game(Game *game, int size) {
|
||||
game->size = size;
|
||||
for (int i = 0; i < size; i++)
|
||||
for (int j = 0; j < size; j++)
|
||||
game->grid[i][j] = EMPTY;
|
||||
|
||||
game->player1_x = 0;
|
||||
game->player1_y = 0;
|
||||
game->player2_x = size - 1;
|
||||
game->player2_y = size - 1;
|
||||
|
||||
game->grid[0][0] = PLAYER1;
|
||||
game->grid[size - 1][size - 1] = PLAYER2;
|
||||
game->current_player = PLAYER1;
|
||||
game->winner = 0;
|
||||
}
|
||||
|
||||
int is_valid_move(Game *game, int x, int y) {
|
||||
return x >= 0 && x < game->size && y >= 0 && y < game->size && game->grid[x][y] == EMPTY;
|
||||
}
|
||||
|
||||
void move_player(Game *game, int x, int y) {
|
||||
if (game->current_player == PLAYER1) {
|
||||
game->grid[game->player1_x][game->player1_y] = EMPTY;
|
||||
game->player1_x = x;
|
||||
game->player1_y = y;
|
||||
game->grid[x][y] = PLAYER1;
|
||||
} else {
|
||||
game->grid[game->player2_x][game->player2_y] = EMPTY;
|
||||
game->player2_x = x;
|
||||
game->player2_y = y;
|
||||
game->grid[x][y] = PLAYER2;
|
||||
}
|
||||
}
|
||||
|
||||
void block_cell(Game *game, int x, int y) {
|
||||
if (is_valid_move(game, x, y)) {
|
||||
game->grid[x][y] = BLOCKED;
|
||||
game->current_player = (game->current_player == PLAYER1) ? PLAYER2 : PLAYER1;
|
||||
}
|
||||
}
|
||||
|
||||
int has_lost(Game *game) {
|
||||
int x = (game->current_player == PLAYER1) ? game->player1_x : game->player2_x;
|
||||
int y = (game->current_player == PLAYER1) ? game->player1_y : game->player2_y;
|
||||
|
||||
for (int dx = -1; dx <= 1; dx++) {
|
||||
for (int dy = -1; dy <= 1; dy++) {
|
||||
if (is_valid_move(game, x + dx, y + dy))
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
game->winner = (game->current_player == PLAYER1) ? PLAYER2 : PLAYER1;
|
||||
return 1; // Le joueur est bloqué
|
||||
}
|
Loading…
Reference in New Issue
Block a user