Code:
#include <stdio.h>
#include <stdlib.h>
#define MIN_SIZE 4
#define MAX_SIZE 15
int getNumber(int min, int max) {
int result;
do {
scanf("%d",&result);
} while ( !(result >= min && result <= max) );
return result;
}
void clearBoard(char board[MAX_SIZE][MAX_SIZE], int rows, int cols ) {
for ( int r = 0 ; r < rows ; r++ ) {
for ( int c = 0 ; c < cols ; c++ ) {
board[r][c] = '.';
}
}
}
void placeHero(char board[MAX_SIZE][MAX_SIZE]) {
board[0][0] = '$';
}
void placeEnemies(char board[MAX_SIZE][MAX_SIZE], int rows, int cols, int number_of_enemies) {
for ( int i = 0 ; i < number_of_enemies ; i++ ) {
int r, c;
do {
r = rand() % rows;
c = rand() % cols;
} while ( board[r][c] != '.' );
board[r][c] = i + '0';
}
}
void placeObstacles(char board[MAX_SIZE][MAX_SIZE], int rows, int cols, int number_of_obstacles) {
for ( int i = 0 ; i < number_of_obstacles ; i++ ) {
int r, c;
do {
r = rand() % rows;
c = rand() % cols;
} while ( board[r][c] != '.' );
board[r][c] = '#';
}
}
void printBoard(char board[MAX_SIZE][MAX_SIZE], int rows, int cols) {
for ( int r = 0 ; r < rows ; r++ ) {
for ( int c = 0 ; c < cols ; c++ ) {
printf(" %c ",board[r][c]);
}
printf("\n");
}
}
int calcEnemies(int N, int M, int diff) {
int levels[] = { 5, 10, 10 };
return ( (N*M) * levels[diff-1] ) / 100;
}
int calcObstacles(int N, int M, int diff) {
int levels[] = { 5, 5, 10 };
return ( (N*M) * levels[diff-1] ) / 100;
}
int main(void)
{
int N,M,diff,number_of_enemies=0,number_of_obstacles=0,money=0,total_money=0,enemies_to_kill;
char board[MAX_SIZE][MAX_SIZE];
char board_interaction;
printf("Give the two dimensions of the board.\n");
N = getNumber(4,15);
M = getNumber(4,15);
printf("Give the number of the difficulty of the game.\n1. Easy\n2. Medium\n3. Hard\n");
diff = getNumber(1,3);
number_of_enemies = calcEnemies(N, M, diff);
number_of_obstacles = calcObstacles(N, M, diff);
enemies_to_kill=number_of_enemies;
clearBoard(board,N,M);
placeHero(board);
placeObstacles(board,N,M,number_of_obstacles);
placeEnemies(board,N,M,number_of_enemies);
printBoard(board,N,M);
printf("\nLevel money spent:%d \n",money);
printf("Game money spent:%d \n",total_money);
printf("Make your move(s):");
scanf(" %c",&board_interaction);
return 0;
}
Examples.