C语言简单实现扫雷
2017-11-05 00:00
573 查看
C语言简单实现扫雷
Game.h 文件
#define _CRT_SECURE_NO_WARNINGS #ifndef __GAME_H__ #define __GAME_H__ #define COLS 11 #define ROWS 11 #define MAX 10 #define ABC 1 #include <stdlib.h> #include <stdio.h> #include <string.h> #include <time.h> void set_mine(char arr1[COLS][ROWS]); void print(char arr1[COLS][ROWS],int col,int row); int get_mine(char arr1[COLS][ROWS],int x, int y); #endif
Game.c 文件
#include "game.h" void set_mine(char arr1[COLS][ROWS]) { char a = 0; char b = 0; int count=0; srand((unsigned)time(NULL)); while(count<MAX) { a = rand()%9 + 1; b = rand()%9 + 1; if(arr1[a][b]!= 1+'0') { arr1[a][b]=1+'0'; count++; } } } void print(char arr1[COLS][ROWS],int col,int row) { int i = 0; int j = 0; printf(" "); for(i=1;i<col-1;i++) { printf(" %d ",i); } printf("\n"); for(i=1;i<col-1;i++) { printf(" %d ",i); for(j=1;j<row-1;j++) { printf(" %c ",arr1[i][j]); } printf("\n"); } } int get_mine(char arr1[COLS][ROWS],int x, int y) { return arr1[x-1][y-1] +arr1[x-1][y] +arr1[x-1][y+1] +arr1[x][y-1] +arr1[x][y+1] +arr1[x+1][y-1] +arr1[x+1][y] +arr1[x+1][y+1] -8*'0'; }
test.c 文件
#include "game.h" void mnue() { printf("**************************************\n"); printf("** **\n"); printf("** 1.开始 0.退出 **\n"); printf("** **\n"); printf("**************************************\n"); } void game() { char arr[COLS][ROWS] = {0}; char show[COLS][ROWS] = {0}; int x = 0; int y = 0; int i = 0; int j = 0; int temp = 0; int ret = 0; int count = 1; memset(arr,'0',sizeof(arr[0][0])*COLS*ROWS); memset(show,'*',sizeof(show[0][0])*COLS*ROWS); set_mine(arr); print(show,COLS,ROWS); while(ret<(COLS-2)*(ROWS-2)-MAX) { printf("请输入你想查找的坐标:>"); scanf("%d%d",&x,&y); if((x>=1)&&(x<=9)&&(y>=1)&&(y<=9)) { if((count==1)&&(arr[x][y]=='1')) { set_mine(arr); print(arr,COLS,ROWS); count++; } else { if((count!=1)&&(arr[x][y]=='1')) { printf("你被炸死了!\n"); } else { ret++; for(i=x-ABC;i<x+ABC;i++) { for(j=y-ABC;j<y+ABC;j++) { temp = get_mine(arr,i,j); show[i][j] = temp+'0'; } } print( show,COLS,ROWS); } } } else { printf("输入错误!请重新输入:>"); } } if(ret == (COLS-2)*(ROWS-2)-MAX) { printf("恭喜您!排雷成功。\n"); } } void main() { int input = 0; do { mnue(); printf("请输入你的选择:>"); scanf("%d",&input); switch(input) { case 1: game(); break; case 0: break; default: printf("输入错误!请重新输入:>"); break; } }while(input); }
相关文章推荐
- C语言简单实现扫雷
- 使用C语言实现简单的扫雷程序
- c语言小程序之扫雷简单实现
- C语言实现简单扫雷
- c语言编程 :模拟实现简单扫雷游戏
- 一个简单的HTTP代理服务器c语言实现
- 学生信息系统简单实现C语言
- 简单的C语言赫夫曼树实现代码
- 转载的标准文档:C语言实现一个简单的单向链表list
- c语言简单链表实现
- C语言用函数指针的数组简单实现计算器功能
- C语言实现简易版扫雷游戏
- C语言实现简单的万年历
- C语言求最大公约数(两种最简单的算法实现)
- C语言实现一个最简单的队列
- C语言实现简单打字游戏
- 使用C语言实现二维,三维绘图算法(3)-简单的二维分形
- 简单代码实现LCD菜单(C语言的实现方法---加强版 有视频教程)
- C语言简单实现sizeof功能代码
- C语言实现简单的Web服务端