C语言编程 简单展开扫雷游戏
生活随笔
收集整理的這篇文章主要介紹了
C语言编程 简单展开扫雷游戏
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
源代碼如下
#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)//所選坐標(biāo)周圍的雷數(shù)量 {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[n][m] == '0'){mine[n][m] = '1';sum++;}if (sum == Lshu){return;}}} int judge(char mine[][amu + 2], int n, int m)//判斷是否踩雷 {if (mine[n][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("請輸入要選擇的坐標(biāo)\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[n][m] = sum + '0';if (mine[n-1][m] == '0')//坐標(biāo)周圍展開{show[n-1][m] = '\0';}if (mine[n][m + 1] == '0'){show[n][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("輸入坐標(biāo)不正確\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);//游戲進(jìn)程}else{return 0;}Show(mine);printf("Game Over\n You Lost\n");system("pause");return 0; }轉(zhuǎn)載于:https://blog.51cto.com/14232799/2379804
總結(jié)
以上是生活随笔為你收集整理的C语言编程 简单展开扫雷游戏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eos 源代码学习笔记一
- 下一篇: HTML5 入门详解