C语言编程 简单展开扫雷游戏
2019-04-16 23:11
681 查看
源代码如下
#include<stdio.h> #include<stdlib.h> #include<windows.h> #include<time.h> #define amu 10 #define Lshu 10 void menu()//菜单 { printf("*************************************\n"); printf("****** 欢 迎 来 到 扫 雷 游 戏 ******\n"); printf("****** 1.开始游戏 0.退出 *******\n"); printf("*************************************\n"); printf("请输入选择\n"); } void Show( char show[][amu + 2])//打印图像 { int i, s; system("cls"); printf(" 0 1 2 3 4 5 6 7 8 9 \n"); for (i = 0; i <= 9; i++) { printf("\n"); printf("%d", i); for (s = 1; s <= 10; s++) { printf("%3c", show[i+1][s]); } printf("\n"); } } int getnum(char mine[][amu+2], int i, int j)//所选坐标周围的雷数量 { return mine[i - 1][j - 1] + mine[i - 1][j] + \ mine[i - 1][j + 1] + mine[i][j - 1] + \ mine[i][j + 1] + mine[i + 1][j - 1] + \ mine[i + 1][j] + mine[i + 1][j + 1] - 8 * '0'; } void fullmine(char mine[][amu + 2], int sta, int end)//埋雷 { int sum = 0, n, m; srand((unsigned int)time(NULL)); while (1) { n = rand() % (end - sta + 1) + sta; m = rand() % (end - sta + 1) + sta; if (mine [m] == '0') { mine [m] = '1'; sum++; } if (sum == Lshu) { return; } } } int judge(char mine[][amu + 2], int n, int m)//判断是否踩雷 { if (mine [m] != '1') { return 1; } return 0; } void game(char show[][amu + 2], char mine[][amu + 2], int sta, int end) { int sum = 0, n, m,p; Show(show); fullmine(mine, sta, end); while (1) { printf("请输入要选择的坐标\n"); scanf("%d%d", &n, &m); n++; m++; if (n >=1 && n <= amu && m >= 1 && m <= amu) { p = judge(mine, n, m); if (p == 1) { sum = getnum(mine, n, m); show [m] = sum + '0'; if (mine[n-1][m] == '0')//坐标周围展开 { show[n-1][m] = '\0'; } if (mine [m + 1] == '0') { show [m + 1] = '\0'; } if (mine[n + 1][m] == '0') { show[n + 1][m] = '\0'; } if (mine[n + 1][m+1] == '0') { show[n + 1][m+1] = '\0'; } if (mine[n - 1][m+1] == '0') { show[n - 1][m+1] = '\0'; } if (mine[n + 1][m-1] == '0') { show[n + 1][m-1] = '\0'; } if (mine[n-1][m-1] == '0') { show[n-1][m-1] = '\0'; } if (mine[n ][m-1] == '0') { show[n ][m-1] = '\0'; } } else { break; } Show(show); } else { printf("输入坐标不正确\n"); } } } int main() { int input, sta = 1, end = 10; char mine[amu + 2][amu + 2]; char show[amu + 2][amu + 2]; memset(show, '#', sizeof(show)); memset(mine, '0', sizeof(mine)); menu(); scanf("%d", &input); if (input == 1) { game(show, mine, sta, end);//游戏进程 } else { return 0; } Show(mine); printf("Game Over\n You Lost\n"); system("pause"); return 0; }
相关文章推荐
- c语言编程 :模拟实现简单扫雷游戏
- 简易小游戏扫雷——C语言编程实现
- C语言:简单的无界面化操作扫雷游戏
- 最简单C语言的扫雷地图(不是游戏)
- 简单扫雷游戏中的编程方法学 - python实现
- c语言编程实现简单三子棋游戏
- C语言编程实现扫雷游戏
- C语言三字棋游戏先简单介绍一下三子棋的规则,方便我们接下来的编程和理解。规则如下: 在九宫格棋盘上,只要将自己的三个棋子走成一条线(横、竖、对角线),对方就算输了。
- MySQL和关于C语言编程与MySQL数据库的简单连接代码
- C语言实现简单的记忆力测试游戏
- C编程之旅:猜数字游戏的简单实现
- 基于51系列单片机的简单c语言编程
- 一步一步实现扫雷游戏(C语言实现)(四)
- 【贪吃蛇,C++实现】,由简单游戏开始学习OOP,的编程新手
- 扫雷游戏(C语言实现)
- 基于C语言实现简单的走迷宫游戏
- 游戏编程之十七 生成简单的动画
- 一些简单问题的c语言编程6
- Java GUI编程之贪吃蛇游戏简单实现方法【附demo源码下载】
- 用C语言实现(扫雷游戏)