diff options
author | eug-vs <eugene@eug-vs.xyz> | 2022-03-31 21:03:38 +0300 |
---|---|---|
committer | eug-vs <eugene@eug-vs.xyz> | 2022-03-31 21:03:38 +0300 |
commit | be2885fc3eb77ec33c5afe10a741ff23a21b0b5d (patch) | |
tree | f4be67d960d5f9322b3b536ab5268fbaf05d9c8c /src/board.c | |
parent | 6f4ac9571a0a6df9ec607e5a9a9b8d3e5f7bbc96 (diff) | |
download | carcassonne-engine-c-be2885fc3eb77ec33c5afe10a741ff23a21b0b5d.tar.gz |
refactor: use struct for Tile
Diffstat (limited to 'src/board.c')
-rw-r--r-- | src/board.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/board.c b/src/board.c index 8c33ae3..d885a8c 100644 --- a/src/board.c +++ b/src/board.c @@ -22,7 +22,7 @@ int is_center_index(int index) { return ((index / BOARD_ROW_BYTES) % 2 == 1) && ((index % BOARD_ROW_BYTES) % 2 == 1); } -int is_allowed_placement(char* tile, int index, char* board) { +int is_allowed_placement(Tile tile, int index, char* board) { if (board[index] != EMPTY) return 0; int neighbor_count = 0; @@ -30,7 +30,7 @@ int is_allowed_placement(char* tile, int index, char* board) { for (int i = 0; i < 4; i++) { char neighbor = board[index + neighbor_increments[i]]; if (neighbor != EMPTY) { - if (neighbor != tile[i + 1]) return 0; + if (neighbor != tile.edges[i]) return 0; neighbor_count++; } } @@ -38,20 +38,20 @@ int is_allowed_placement(char* tile, int index, char* board) { return neighbor_count > 0; } -int place_tile(char* tile, int index, char* board, int force) { +int place_tile(Tile tile, int index, char* board, int force) { if (!is_center_index(index)) { printf("Not a valid tile index: %i\n", index); return 0; } if (!force && !is_allowed_placement(tile, index, board)) { - printf("Can not place tile %s\n", tile); + printf("Can not place tile %s (%c)\n", tile.edges, tile.center); return 0; } - board[index] = tile[0]; + board[index] = tile.center; for (int i = 0; i < 4; i++) { - board[index + neighbor_increments[i]] = tile[i + 1]; + board[index + neighbor_increments[i]] = tile.edges[i]; } return 1; |