简易小游戏扫雷——C语言编程实现
来源:互联网 发布:开放教育与网络教育 编辑:程序博客网 时间:2024/05/19 14:54
<span style="font-size:24px;">#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<time.h>#include<stdlib.h>#include<string.h>#define ROWS 10#define COLS 10#define MINE 30void menu(){printf("*********************************\n");printf("*********** 1.play **************\n");printf("*********** 0.exit **************\n");printf("*********************************\n");}void Init(char mine[ROWS+2][COLS+2],char show[ROWS+2][COLS+2],int x,int y){x = ROWS+2;y = COLS+2;memset(mine,'+',x*y*sizeof(char));memset(show,'*',x*y*sizeof(char));}void Desplay(char arr[ROWS+2][COLS+2],int x,int y){int i = 0;int j = 0;printf(" 1 2 3 4 5 6 7 8 9 10 11 12\n");for(i = 0;i < ROWS+2;i++){printf("%3d ",i+1);for(j = 0;j < COLS+2;j++){printf("%c ",arr[i][j]);}printf("\n");}}void Mine_deg(char arr[ROWS+2][COLS+2],int x,int y){int mine_deg = 0;for(mine_deg = 0;mine_deg < MINE;mine_deg++){A:x = rand()%(ROWS)+1;y = rand()%(COLS)+1;if(arr[x][y] == '+'){arr[x][y] = '@';}else{goto A;}}}int Player(char mine[ROWS+2][COLS+2],char show[ROWS+2][COLS+2],int x,int y){int count = 0;while(1){if(x > 0 && x <= ROWS+2 && y > 0 && y <= COLS+2){if(mine[x-1][y-1] == '@'){show[x-1][y-1] = '@';return 1;}else{if(mine[x-2][y-2] == '@')count++;if(mine[x-2][y-1] == '@')count++;if(mine[x-2][y] == '@')count++;if(mine[x-1][y-2] == '@')count++;if(mine[x-1][y] == '@')count++;if(mine[x][y] == '@')count++;if(mine[x][y-1] == '@')count++;if(mine[x][y-2] == '@')count++;show[x-1][y-1] = count+'0';return -1;}}else{printf("Error input!\n");return 0;}}}void Game(){char mine[ROWS+2][COLS+2] = {'0'};char show[ROWS+2][COLS+2] = {'0'};int x = 0;int y = 0;int row = 0;int col = 0;int play_deg = (ROWS+2)*(COLS+2)-MINE;int count = 0;srand((unsigned int)time(NULL));Init(mine,show,x,y);Mine_deg(mine,x,y);//Desplay(mine,x,y);Desplay(show,x,y);while(play_deg){input:printf("Please input (x y):>>");scanf("%d %d",&x,&y);if(count == 0 ){if((Player(mine,show,x,y) == 1)){RAND:row = rand()%(ROWS)+1;col = rand()%(COLS)+1;if(mine[row][col] != '@'){mine[row][col] = mine[x-1][y-1];mine[x-1][y-1] = '+';Player(mine,show,x,y);//Desplay(mine,x,y);}else{goto RAND;}}}else{if((Player(mine,show,x,y) == 1)){printf("What a pity!It is a mine.\n");Desplay(mine,x,y);break;}else if(Player(mine,show,x,y) == 0){goto input;}else if(play_deg == 1){printf("Congratulations,you are winner!\n");Desplay(mine,x,y);break;}}Desplay(show,x,y);play_deg--;count++;}}int main(){int input = 0;do{menu();printf("Please choose (0 or 1):\n");scanf("%d",&input);switch(input){case 1:Game();break;case 0:break;default:printf("error input!\n");break;}}while(input);return 0;}</span>
如有错误,欢迎指出!
0 0
- 简易小游戏扫雷——C语言编程实现
- C语言 — 实现扫雷小游戏
- 【C语言】简易扫雷游戏——C语言实现
- C语言实现小游戏--扫雷
- C语言小游戏—扫雷大作战
- C语言实现扫雷小游戏(设定游戏简易程度,实现空白,实现跳过第一次选中雷)
- C语言简单实现扫雷小游戏~~~
- Pace 8 (C语言实现扫雷小游戏)
- C语言小游戏“扫雷”
- 扫雷小游戏【C语言】
- c语言小游戏---扫雷
- c语言小游戏扫雷
- C语言小游戏---扫雷
- 【扫雷】编写一个小游戏--扫雷的c语言实现
- 小游戏:扫雷 (C语言实现扫雷的基本功能)
- C语言实现简易版扫雷游戏
- C语言实现简易版扫雷
- c语言模拟扫雷小游戏
- 【软考】--软件开发模型
- 石子合并
- LeetCode-----53. Maximum Subarray(最大子集合)
- lower_bound和upper_bound的区别
- 如何为VPN选择合适的动态密码双因素认证方案
- 简易小游戏扫雷——C语言编程实现
- JavaScript事件 DOMNodeInserted DOMNodeRemoved
- 数据库操作日志并通过日志进行不同数据库的备份
- shellcode转换
- javaWeb实现裁剪图片上传整套方案
- 一心多用多线程-线程创建的三种方式
- JSPatch 源码解读 及使用
- android项目中values中ids.xml的作用
- linux初学