做网站需要公司,如何做国际网站首页,织梦cms怎么打不开网站,旅游电商网站开发预备知识#xff1a;
第13篇 一维数组 第13.5篇 二维数组
第28篇 库函数 第29篇 自定义函数 第30篇 函数补充
0x1游戏的运行#xff1a;
1.随机布置雷
2.排雷
基本规则#xff1a;
点开一个格子后#xff0c;显示1#xff0c;对于9*9#xff0c;代表以1为中心的去…预备知识
第13篇 一维数组 第13.5篇 二维数组
第28篇 库函数 第29篇 自定义函数 第30篇 函数补充
0x1游戏的运行
1.随机布置雷
2.排雷
基本规则
点开一个格子后显示1对于9*9代表以1为中心的去心九宫格内有一个雷找到后标记
直到标完所有的雷游戏结束如果中途点中雷游戏结束 0x2.编写过程
现创建9*9的雷区编写代码
但这样会程出现问题边缘的雷需要另外写代码否则九宫格越界--为了方便扩大一圈11*11
定义二维数组char board[11][11]
两个二维数组一个布雷一个显示玩家排雷的状态
game.h
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#define ROW 9
#define COL 9
#define ROWS ROW2
#define COLS COL2
#define COUNT 10
#include stdio.h
#include stdlib.h
#include windows.h
#include time.h
void menu();
void game();
void InitBoard(char board[ROWS][COLS], int row, int col, char set);
void SetMine(char board[ROWS][COLS], int row, int col);
void DisplayBoard(char board[ROWS][COLS], int row, int col);
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col);
int GetMineCount(char mine[ROWS][COLS], int x, int y);DisplayBoard.c
#include game.h
void DisplayBoard(char board[ROWS][COLS],int row,int col)
{printf(-------99扫雷-------\n);printf(0 );for (int i 1; i row; i){printf(%d , i);//打印行}printf(y);printf(\n);for (int i 1; i row; i){printf(%d , i);//打印列for (int j 1; j col; j){printf(%c , board[i][j]);}printf(\n);}printf(x);printf(\n--------------------\n);
} FineMine.c
#include game.h
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{int x 0;int y 0;int win 0;while (winrow*col-COUNT){//DisplayBoard(mine, ROW, COL);//作弊模式)printf(输入排查雷的坐标 x y :);scanf(%d %d, x, y);if (x 1 x row y 1 y col){if (mine[x][y] 1){printf(这是雷很遗憾游戏结束\n);DisplayBoard(mine, ROW, COL);Sleep(3000);system(cls);break;}else{win;system(cls);int sum GetMineCount(mine, x, y);//t统计去心九宫格雷的个数show[x][y] sum 0;DisplayBoard(show, ROW, COL);}}else{printf(输入有误重新输入\n);}}if (win row * col - COUNT)printf(赢了\n);
}
game.c
#include game.h
void game()
{char mine[ROWS][COLS] { 0 };//定义布雷数组char show[ROWS][COLS] { 0 };//定义显示玩家排雷的状态的数组InitBoard(mine, ROWS, COLS, 0);//初始化布雷数组InitBoard(show, ROWS, COLS, ?);//初始化显示玩家排雷的状态的数组SetMine(mine, ROW,COL);//布雷DisplayBoard(show, ROW, COL);//打印显示玩家排雷的状态的数组FindMine(mine,show,ROW,COL);//玩家找雷
}GetMineCount.c
#include game.h
int GetMineCount(char mine[ROWS][COLS],int x,int y)
{return mine[x][y 1] mine[x][y - 1] mine[x - 1][y] mine[x 1][y] mine[x 1][y 1] mine[x - 1][y - 1] mine[x - 1][y 1] mine[x 1][y - 1] - 8 * 0;
}
InitBoard.c
#include game.h
//初始化雷区
void InitBoard(char board[ROWS][COLS], int row, int col, char set)
{for (int i 0; i row; i){for (int j 0; j col; j){board[i][j] set;}}
}
main.c #include game.h
int main()
{int tmp 0;srand((unsigned int)time(NULL));do{menu();//调用菜单函数scanf(%d, tmp);switch (tmp){case 2:break;default:{printf(输入错误重新选择\n);Sleep(1000);system(cls);break;}case 1:{system(cls);game();break;}}} while (tmp ! 2);return 0;
}
menu.c
#include game.h
void menu()//主菜单函数
{printf(**********************************************\n);printf(*******************1.PLAY********************\n);printf(*******************2.EXIT*********************\n);printf(**********************************************\n);printf(请选择\n);
}SetMine.c
#include game.h
void SetMine(char board[ROWS][COLS], int row, int col)
{int count 10;while (count){int x rand() % row 1;//x:1~9int y rand() % col 1;//y:1~9if (board[x][y] ! 1){board[x][y] 1;count--;}}}
有兴趣可以看看 CE实现扫雷作弊