experiments/minesweeper-c/minesweeper.c
2024-05-27 21:30:27 +12:00

69 lines
1.5 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct Board {
char* board;
int width, height, mine_rng;
} Board;
typedef enum Difficulty {
Easy,
Medium,
Hard
} Difficulty;
Board create_board(Difficulty difficulty) {
Board board = { 0 };
switch(difficulty) {
case Easy:
board.width = 25;
board.height = 25;
board.mine_rng = 10;
break;
case Medium:
board.width = 35;
board.height = 35;
board.mine_rng = 7;
break;
case Hard:
board.width = 50;
board.height = 50;
board.mine_rng = 5;
break;
}
board.board = calloc(sizeof(char), board.width * board.height);
return board;
}
void generate_board(Board board) {
for(int x = 0; x < board.width; x++) {
for(int y = 0; y < board.height; y++) {
int index = y * board.width + x;
if(rand() % board.mine_rng == 0)
board.board[index] = 'b';
else
board.board[index] = ' ';
}
}
}
void print_board(Board board) {
for(int x = 0; x < board.width; x++) {
for(int y = 0; y < board.height; y++)
printf("%c", board.board[y * board.width + x]);
printf("\n");
}
}
int main() {
srand(time(NULL));
Board board = create_board(Easy);
generate_board(board);
print_board(board);
}