привет, моя задача - сравнить две матрицы в structure
, которые должны быть разными. что я здесь делаю? В первую очередь задача - реализовать новую функцию -> воспроизведение. но мне нужно сравнить, если новая плата отличается от первой.
мой тестовый файл = этот код необходимо редактировать
TEST repeat_game() {
// Game creation
Game* game = create_game();
Board *board = create_board(9, 9, 9);
/// variables for easy tests
game->board = board; //board set
game->player->score = 69; //before scene score
char replay[] = "yes";
int score = 0; //after scene score
// variables for hard test
size_t pixel_data_size =
sizeof(*(game->board)) * game->board->row_count * game->board->column_count;
Board* newboard = malloc(pixel_data_size);
memcpy(newboard, game->board, pixel_data_size);
// main function
replay_game(replay, game);
// Easy test cases
// test if the score is equal to zero after restarting the game
ASSERT_EQ(game->player->score, score);
// test if the parameter replay is equal to "yes"
ASSERT_STR_EQ(replay, "yes");
// Hard test
// test if the game board is different than the previous one.
int l = 1;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
if ( newboard->tiles[i][j] != game->board->tiles[i][j]) {
l = 0;
}
}
}
ASSERT_EQ(l, 0);
destroy_board(newboard);
PASS();
}
функция воспроизведения_игры
void replay_game(char* replay, Game* game) {
while (strcmp(replay, "yes") != 0 && strcmp(replay, "no") != 0 ) {
scanf("%s", replay);
if (strcmp(replay, "yes") != 0 || strcmp(replay, "no") != 0) {
printf("invalid value\n");
}
}
if (strcmp(replay, "yes") == 0) {
destroy_board(game->board);
game->game_state = PLAYING;
game->board = create_board(9, 9, 9);
game->player->score = 0;
}
}
h файл
typedef enum {
CLOSED,
OPEN,
MARKED
} TileState;
typedef struct {
bool is_mine; /* Records if mine is on the Tile */
TileState tile_state; /* Enum for status of the Tile state */
int value; /* Number of neighbour tiles where is mine on; -1 if mine is not on */
} Tile;
typedef struct {
int row_count; /* Number of rows in the Board */
int column_count; /* Number of columns in the Board */
int mine_count; /* Number of mines in the Board */
Tile *tiles[MAX_ROW_COUNT][MAX_COLUMN_COUNT]; /* 2-dimensional struct array of the tiles */
} Board;
вывод
* Suite test_user_interface:
....Segmentation fault (core dumped)
есть идеи как сравнить платы? спасибо за помощь