扫雷游戏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扫雷游戏相关的知识,希望对你有一定的参考价值。

游戏设计
1.设计两个二维数组的面板,一个是展示给用户使用的,另一个是雷区的面板
2.初始化两个面板,用户使用的面板初始化为‘’,雷区的面板全部初始化为‘0’
3.设置你所需要的雷区
4.用户输入坐标,进行判断。越界重新输入,输入之前的重新输入,输入的为雷区退出。
5.输入正确后进行计算,计算周围的雷区数量
6.步骤4~5重复进行
7.如果没有走完非雷区即失败,走完雷区则成功

核心代码区
头文件
#ifndef GAMEH
#define
GAMEH

#include<stdio.h>
#include<string.h>
#include<time.h>
#include<time.h>

#define ROW 12
#define COL 12
void menu();
void GAME();
#endif

game.c

#include "game.h"

void menu()
{
printf("############################### ");
printf("### 1 PLAY ######### 2 EXIT ### ");
printf("############################### ");
printf("请输入你的选项:");
}

void show_board(char board[][12],int row,int col)
{
for (int i = 1; i < row-1; i++)
{
for (int j = 1; j < col-1; j++)
{
printf(" [%c] ", board[i][j]);
}
printf(" ");
printf(" ");
}
}

void set_mine(char mine_board[][12], int row, int col)
{
int i = 0;
while (i < 20)
{
int x = rand() % 10 + 1;
int y = rand() % 10 + 1;
if (mine_board[x][y] == ‘0‘)
{
mine_board[x][y] = ‘1‘;
i++;
}
}
}

int get_mines(char mine_board[][12],int row,int col,int x,int y)
{
return mine_board[x - 1][y - 1] + mine_board[x - 1][y] + mine_board[x - 1][y + 1] +
mine_board[x][y - 1] + mine_board[x][y + 1] +
mine_board[x + 1][y - 1] + mine_board[x + 1][y] + mine_board[x + 1][y + 1] - 8 ‘0‘;
}
void move(char my_board[][12],char mine_board[][12], int row, int col)
{
int count = 80;
int x = 0;
int y = 0;
do {
show_board(my_board, ROW, COL);
printf("请输入坐标:");
scanf_s("%d%d", &x, &y);
if (x < 1 || x > 10 || y < 1 || y > 10)
{
printf("输入坐标错误");
continue;
}
if (my_board[x][y] != ‘
‘)
{
printf("输入坐标重复");
continue;
}
if (mine_board[x][y] == ‘1‘)
{
break;
}
int num = get_mines(mine_board, ROW, COL, x, y);
my_board[x][y] = num + ‘0‘;
count--;
} while (count > 0);
if (count > 0)
{
printf("你被炸死了! ");
}
else
{
printf("你赢了! ");
}
printf("下面是雷区的排布! ");
show_board( mine_board, ROW, COL);
}

void GAME()
{
srand((unsigned long)time(NULL));

char my_board[ROW][COL];
char mine_board[ROW][COL];

memset(my_board, ‘*‘, sizeof(my_board));
memset(mine_board, ‘0‘, sizeof(mine_board));
set_mine(mine_board, ROW, COL);
move(my_board,mine_board, ROW, COL);

}

main.c

#include "game.h"

int main()
{
int select = 0;
int quit = 1;
while (quit)
{
menu();
scanf_s("%d", &select);
switch (select)
{
case 1:
GAME();
break;
case 2:
quit = 0;
break;
default:
printf("输入有误 ");
break;
}
}
printf("拜拜 ");
return 0;

}

??

以上是关于扫雷游戏的主要内容,如果未能解决你的问题,请参考以下文章

C语言游戏超详解扫雷游戏完整版,细节满满!!

C语言游戏超详解扫雷游戏完整版,细节满满!!

C语言实现扫雷游戏(一步步教你如何写扫雷)

运用HTML+CSS+JavaScript实现扫雷游戏

运用HTML+CSS+JavaScript实现扫雷游戏

c语言初学者如何代码实现 扫雷 游戏