扫雷

来源:互联网 发布:linux系统api有哪些 编辑:程序博客网 时间:2024/06/07 13:09

       我相信很多人应该玩过这游戏吧,但我这里还没有设计成专业游戏那样,我的这个版本还是很菜的那种,但我还是会不断去改进的,接下来先看以这个程序吧!类似于上一个游戏 三子棋同样分为三个模块:

1.测试模块:

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include"game.h"void menu(){printf("**************************\n");printf("**********1.play.*********\n");printf("**********2.exit.*********\n");printf("**************************\n");}enum Option{EXIT,PLAY};void game(){char show[ROW][COL]={0};char mine[ROW][COL]={0};init_board(mine,'0',ROW,COL);init_board(show,'*',ROW,COL);set_mine(mine);display(show,ROW,COL);while(1){int x = 0,y = 0;printf("请输入你排雷的坐标>:\n");scanf("%d%d",&x,&y);if(((x>=1)&&(x<=9))&&((y>=1)&&(y<=9))){if(mine[x][y]=='1'){printf("恭喜你,中弹了!\n");    break;}else{int count=get_mine(mine,x,y);show[x][y]=count+'0';display(show,ROW,COL);}}else{printf("你输入错误,请重新输入!");}}}void test(){int i = 0;srand((unsigned int)time(NULL));menu();printf("请选择>:\n");scanf("%d",&i);switch(i){case PLAY:game();break;case EXIT:break;default:printf("请重新选择!\n");break;}}int main(){test();}

2.游戏实现模块:

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include"game.h"void init_board(char mine[ROW][COL],char set,int row,int col){memset(mine,set,ROW*COL*sizeof(mine[0][0]));}void set_mine(char mine[ROW][COL]){int count=MAX;while(count>0){int x=rand()%9+1;int y=rand()%9+1;if(mine[x][y]=='0'){mine[x][y]='1';count--;}}}void display(char mine[ROW][COL],int row,int col){int i = 0,j = 0;printf("  ");for(i=1;i<row-1;i++){printf("%d ",i);}printf("\n");for(i=1;i<row-1;i++){printf("%d ",i);for(j=1;j<col-1;j++){printf("%c ",mine[i][j]);}printf("\n");}}int get_mine(char mine[ROW][COL],int x,int y){return mine[x-1][y-1]+mine[x-1][y]+mine[x-1][y+1]+mine[x][y-1]+mine[x][y+1]+mine[x+1][y-1]+mine[x+1][y]+mine[x+1][y+1]+8*'0';}

3.头文件:
#ifndef __GAME_H_#define __GAME_H_#define ROW 11#define COL 11#define MAX 10#include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>void init_board(char mine[ROW][COL],char set,int row,int col);void set_mine(char mine[ROW][COL]);void display(char mine[ROW][COL],int row,int col);int get_mine(char mine[ROW][COL],int x,int y);#endif//__GAME_H_


0 0
原创粉丝点击