生成一个射击游戏的C语言代码
时间: 2024-06-09 13:04:35 浏览: 13
以下是一个简单的射击游戏的C语言代码,具体内容可以根据实际需要进行修改和完善:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROW 10
#define COL 10
#define BOMB_NUM 10
char board[ROW][COL]; // 游戏面板
char show_board[ROW][COL]; // 显示面板
void init_board() {
int i, j;
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
board[i][j] = '0';
show_board[i][j] = '*';
}
}
}
void set_bomb() {
int i, j, count = 0;
srand((unsigned)time(NULL));
while (count < BOMB_NUM) {
i = rand() % ROW;
j = rand() % COL;
if (board[i][j] == '0') {
board[i][j] = 'B';
count++;
}
}
}
void print_board() {
int i, j;
printf(" ");
for (i = 0; i < COL; i++) {
printf("%d ", i + 1);
}
printf("\n");
for (i = 0; i < ROW; i++) {
printf("%c ", 'A' + i);
for (j = 0; j < COL; j++) {
printf("%c ", show_board[i][j]);
}
printf("\n");
}
}
int get_input(int *row, int *col) {
char input[10];
printf("请输入行列坐标,例如 A1:");
scanf("%s", input);
if (input[0] >= 'a' && input[0] <= 'z') {
input[0] = input[0] - 'a' + 'A';
}
*row = input[0] - 'A';
*col = input[1] - '1';
if (*row < 0 || *row >= ROW || *col < 0 || *col >= COL) {
printf("输入坐标不合法,请重新输入!\n");
return 0;
}
return 1;
}
int check_bomb(int row, int col) {
if (board[row][col] == 'B') {
return 1;
}
return 0;
}
void check_around(int row, int col) {
int i, j, count = 0;
for (i = row - 1; i <= row + 1; i++) {
for (j = col - 1; j <= col + 1; j++) {
if (i >= 0 && i < ROW && j >= 0 && j < COL && board[i][j] == 'B') {
count++;
}
}
}
if (count > 0) {
show_board[row][col] = count + '0';
} else {
show_board[row][col] = '-';
for (i = row - 1; i <= row + 1; i++) {
for (j = col - 1; j <= col + 1; j++) {
if (i >= 0 && i < ROW && j >= 0 && j < COL && show_board[i][j] == '*') {
check_around(i, j);
}
}
}
}
}
int main() {
int row, col, count = 0;
init_board();
set_bomb();
while (1) {
print_board();
if (get_input(&row, &col)) {
if (check_bomb(row, col)) {
printf("很遗憾,你踩到雷了!\n");
break;
} else {
check_around(row, col);
count++;
if (count == ROW * COL - BOMB_NUM) {
printf("恭喜你,成功排除所有雷!\n");
break;
}
}
}
}
return 0;
}
```
这个射击游戏是一个简单的扫雷游戏,玩家需要在游戏面板上排除所有雷,避免踩到雷。玩家可以通过输入行列坐标来选择一个格子,如果该格子上没有雷,则显示周围雷的数量,如果周围没有雷,则继续展开周围的格子。如果玩家踩到雷,则游戏结束,如果玩家成功排除所有雷,则游戏胜利。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)