注:如何更换字体和背景?调整字体大小?
- 更改字体和背景:工具-选项-常规-字体和颜色;
- 更改大小:ctrl+滚轮
人生格言:一个牛逼的人是可以合理规划自己的时间的
简介
使用2个模块来实现程序:
- test.c-游戏逻辑
- game.c、game.h-游戏的具体实现
流程设计
一.游戏的开始
- 要求:进入游戏,有个菜单,根据输入执行游戏,执行完后回到游戏菜单,至少执行一次;
test.c
#include<stdio.h>
void menu()
{
printf("************************************\n");
printf("******** 1. play *********\n");
printf("******** 0. exit *********\n");
printf("************************************\n");
}
void test()
{
int input = 0;
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
//game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,重新选择!\n");
break;
}
} while (input);
}
int main()
{
test();
return 0;
}
二.扫雷游戏的实现
要求:显示一个9*9的棋盘,有10个雷
逻辑流程:
(一)前期准备
思路一:
一个棋盘存放布置的雷的信息,另一个棋盘存放排查的雷的信息(打印的数组,周围几个雷)
判断雷的个数,防止越界,就不用判断坐标的合法性:使用11*11
实现过程:
(一)定义2个11*11的二维字符数组;
1. 需要存放布置好的雷的信息,存放排查出的雷的信息,我们需要2个二维数组
2. 排查坐标的时候,为了防止坐标越界,我们给数组的行增加2行,列增加了2列
(二)对2个二维字符数组进行初始化,所有的元素
注:使用一个函数模板,进行复用初始化,前者用‘0’,后者‘*’
test.c
//初始化棋盘
InitBoard(mine, ROWS, COLS, '0');
InitBoard(show, ROWS, COLS, '*');
game.c
//对数组进行初始化
void InitBoard(char board[ROWS][COLS], int rows, int cols, char set)
{
int i = 0;
for (i = 0; i < rows; i++)
{
int j = 0;
for (j = 0; j < cols; j++)
{
board[i][j] = set;
}
}
}
(三)显示棋盘,展示雷信息棋盘
效果图:
- 实现流程设计
1.需要打印出9行9列
void DisplayBoard(char board[ROWS][COLS], int row, int col)// 9 9
{
int i = 0;
int j = 0;
for (i = 1;i <= row; i++) 0-10 1-9
{
for (j = 1; j <= col; j++)
{
printf("%c ", board[i][j]);
}
printf("\n");
}
}
2.显示坐标,上下有分