欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言代碼實(shí)現(xiàn)簡(jiǎn)單掃雷游戲

 更新時(shí)間:2021年02月07日 08:42:04   作者:菜菜是真菜  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言代碼實(shí)現(xiàn)簡(jiǎn)單掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

C語(yǔ)言實(shí)現(xiàn)掃雷游戲,供大家參考,具體內(nèi)容如下

game1.h中的代碼如下:

里邊放置的是相關(guān)的函數(shù)聲明

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define ROWS ROW+2
#define COLS COL+2

#define EASY_COUNT 10

void InitBoard(char board[ROWS][COLS],int rows,int cols,char set);
void DisplayBoard(char board[ROWS][COLS],int row,int col);
void SetMine(char board[ROWS][COLS],int row,int col);
void FindMine(char mine[ROWS][COLS],char show[ROWS][COLS],int row,int col);

saolei.c中的代碼如下:

這里主要是實(shí)現(xiàn)菜單的打印以及棋盤的打印

#define _CRT_SECURE_NO_WARNINGS 1
#include"game1.h"

void menu()
{
 printf("**************************\n");
 printf("******* 1.play *********\n");
 printf("******* 0.exit *********\n");
 printf("**************************\n");
}

void game1()
{
 //雷的信息存儲(chǔ)
 //布置好雷的信息
 char mine[ROWS][COLS]={0};
 //排查出雷的信息
 char show[ROWS][COLS]={0};
 //初始化
 InitBoard(mine,ROWS,COLS,'0');
 InitBoard(show,ROWS,COLS,'*');
 DisplayBoard(show,ROW,COL);
 //布置雷
 SetMine(mine,ROW,COL);
 //掃雷
 FindMine(mine,show,ROW,COL);
}

void saolei()
{
 int input=0;
 srand((unsigned int)time(NULL));
 do
 {
 menu();
 printf("請(qǐng)選擇:");
 scanf("%d",&input);
 switch(input)
 {
 case 1:
 game1();
 break;
 case 0:
 printf("退出游戲\n");
 break;
 default:
 printf("選擇錯(cuò)誤,請(qǐng)重新選擇!\n");
 break;
 }
 }while(input);
}

int main()
{
 saolei();
 return 0;
}

game1.c中的代碼如下:

主要是玩家玩游戲排雷的整個(gè)游戲過(guò)程的相關(guān)函數(shù)操作。

#define _CRT_SECURE_NO_WARNINGS 1
#include"game1.h"
#include<stdio.h>

void InitBoard(char board[ROWS][COLS],int rows,int cols,char set)
{
 int i=0;
 int j=0;
 for(i=0;i<rows;i++)
 {
 for(j=0;j<cols;j++)
 {
 board[i][j]=set;
 }
 }
}

void DisplayBoard(char board[ROWS][COLS],int row,int col)
{
 int i=0;
 int j=0;
 for(i=0;i<=col;i++)
 {
 printf("%d ",i);
 }
 printf("\n");
 for(i=1;i<=row;i++)
 {
 printf("%d ",i);
 for(j=1;j<col;j++)
 {
 printf("%c ",board[i][j]);
 }
 printf("\n");
 }
}

void SetMine(char board[ROWS][COLS],int row,int col)
{
 int count=EASY_COUNT;
 while(count)
 {
 int x=rand()%row+1;
 int y=rand()%col+1;
 if(board[x][y]=='0')
 {
 board[x][y]='1';
 count--;
 }
 }
}

int get_mine_count(char mine[ROWS][COLS],int x,int y)
{
  return mine[x-1][y]+
 mine[x-1][y-1]+
 mine[x][y-1]+
 mine[x+1][y-1]+
 mine[x+1][y]+
 mine[x+1][y+1]+
 mine[x][y+1]+
 mine[x-1][y+1]-8*'0';
}

void FindMine(char mine[ROWS][COLS],char show[ROWS][COLS],int row,int col)
{
 int x=0;
 int y=0;
 int win=0;
 while(win<row*col-EASY_COUNT)
 {
 printf("請(qǐng)輸入排查雷的坐標(biāo):");
  scanf("%d%d",&x,&y);
 if(x>=1&&x<=row&&y>=1&&y<=col)
  {
 if(mine[x][y]=='1')
 {
 printf("很遺憾,你被炸死了\n");
 DisplayBoard(mine,row,col);
 break;
 }
 else
 {
 int count=get_mine_count(mine,x,y);
 show[x][y]=count+'0';
 DisplayBoard(show,row,col);
 win++;
 }
  }
 else
 {
  printf("輸入坐標(biāo)非法,請(qǐng)重新輸入!");
  }
 }
 if(win==win<row*col-EASY_COUNT)
 {
 printf("恭喜你,排雷成功!\n");
 DisplayBoard(mine,row,col);
 }
}

代碼運(yùn)行結(jié)果如圖所示:

相關(guān)文章

最新評(píng)論