C语言简单实现扫雷
2017-10-11 20:04
561 查看
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; 9f5f 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语言实现简单的扫雷程序
- C语言-------实现一个简单的单向链表
- <C语言>如何一步一步根据简单的代码联想到更多的功能?(实现输入一个整数,输出比它小包括它本身的所有素数。)
- C语言实现扫雷游戏
- 【数据结构】数据结构C语言的实现(简单二叉树)
- C语言实现简单的内存管理机制
- Linux下使用socket传输文件的C语言简单实现
- 使用C语言实现最小生成树求解的简单方法
- Linux下用C语言来实现简单的进度条
- C语言实现简单的电子通讯录2
- C语言实现简单三子棋程序
- C语言域名解析的简单实现
- c语言实现简单的web服务器
- c语言实现--------简单打印图形
- c语言对简单单链表的实现
- 魔方简单实现(c语言,tc2.0编译通过)不含解魔方的算法