深圳建设网站的公司哪家好,移动端网站生成器,网络设计报告六千字,wordpress 安装主体我们先设计一个简单的9*9棋盘并有10个雷的扫雷游戏。
1#xff0c;可以用数组存放#xff0c;如果有雷就用1表示#xff0c;没雷就用0表示。 2#xff0c;排查(2,5)这个坐标时#xff0c;我们访问周围的⼀圈8个位置黄色统计周围雷的个数是1。排查(8,6)这个坐标时#xf…我们先设计一个简单的9*9棋盘并有10个雷的扫雷游戏。
1可以用数组存放如果有雷就用1表示没雷就用0表示。 2排查(2,5)这个坐标时我们访问周围的⼀圈8个位置黄色统计周围雷的个数是1。排查(8,6)这个坐标时就会越界。只需要扩大一圈数组即可。 一游戏菜单的打印
利用函数与do while的知识 #define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h void menu() { printf(***********************\n); printf(***** 1. play *********\n); printf(***** 0. exit **********\n); printf(***********************\n); } int main() { int input 0; do { menu(); printf(请选择:); scanf(%d, input); switch (input) { case 1: printf(开始\n); break; case 0: printf(退出游戏\n); break; default: printf(选择错误重新选择\n); break; } } while (input); return 0; } 在下一步可以将printf(开始\n);换为game整个扫雷游戏就是在这里运行的。game就是我们写的函数它的作用是把我们写的代码封装起来。 二正片开始
1棋盘
避免数据太多产生冲突我们可以写两个数组存放信息。一个是雷的信息一个是排查出的雷的信息。 a.雷的信息用char mine[11][11];来表示,1表示雷0表示非雷。
b.排查出的雷的信息用char show[11][11];来表示初始化为*。 void game() { char mine[11][11]; char show[11][11]; } 如果是其他行数的话例如15或者20改起来就比较麻烦了这时候就需要优化一下代码。
在game.h文件中声明 #define ROW 9 #define COL 9 #define ROWS ROW2 #define COLS COL2 然后修改原来代码 void game() { char mine[ROWS][COLS]; char show[ROWS]COLS]; } 2初始化棋盘
game.h void InitBoard(char arr[ROWS][COLS], int rows,int cols,\char set); game.c void InitBoard(char arr[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) { arr[i][j] set; } } } test.c void game() { char mine[ROWS][COLS]; char show[ROWS][COLS]; Initboard(mine, ROWS,COLS, 0); Initboard(show, ROWS,COLS, *); } 3打印棋盘
game.h void Displayboard(char arr[ROWS][COLS], int row, int col); game.c int i 0; for (i 0; i ROW; i) { printf(%d, i); } printf(\n); void Displayboard(char arr[ROWS][COLS], int row, int col) { int i 0; for (i 1; i row; i) { int j 0; printf(%d, i); for (j 1; j col; j) { printf(%c, arr[i][j]); } printf(\n); } test.c Displayboard(show, ROW, COL); Displayboard(mine, ROW, COL);