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

c++實現(xiàn)掃雷小游戲代碼分享

 更新時間:2022年02月22日 11:23:58   作者:LazyEveryday  
這篇文章主要介紹了c++實現(xiàn)掃雷小游戲并附上代碼分享,代碼不能夠?qū)崿F(xiàn)當所查坐標周圍雷的數(shù)量為0時,直接展開周圍坐標,但有一點的知識性參考價值,需要的小伙伴可以參考一下

分成兩個源文件和一個頭文件

注意:這串代碼并不完整,不能夠?qū)崿F(xiàn)當所查坐標周圍雷的數(shù)量為0時,直接展開周圍坐標;

頭文件:game.h

#include <stdio.h>


#define count 10 //雷的數(shù)量

//定義 行-ROW,列-COL
#define ROW 9
#define COL 9
#define ROWS ROW+2 //多加一些,方便代碼
#define COLS COL+2

//初始化棋盤,聲明的函數(shù)均在game.c中實現(xiàn)
void InitBoard(char board[ROWS][COLS],int rows,int cols);

//打印棋盤
void DisplayBoard(char board[ROW][COL],int row.int col);

//布置雷
void SetMine(char board[ROW][COLS],int row,int col);

//找雷
void FindMine(char mine[][COLS],char show[][COLS],int row,int col);

第一個源文件:saolei.c

#include "game.h" ?//需要包含和聲明的東西在game.h中完成

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

void game()
{?
? // ROW and COL 在game.h中定義
? char mine[ROWS][COLS]; ?// 地雷埋藏的棋盤
? char show[ROWS][COLS]; ?// 展示出的棋盤
? //初始化棋盤
? //game()中的函數(shù)在game.h中聲明,在game.c中實現(xiàn)
? InitBoard(mine,ROWS,COLS,'0'); ? //0代表無雷,1代表有雷
? InitBOard(show,ROWS,COLS,'*');
? //打印棋盤
? DisplayBoard(show,ROW,COL);
? //布置雷
? SetMine(mine,ROW,COL);
? //找雷
? FindMine(mine,show,ROW,COL);
??
}


int main()
{
? srand((unsigned int) time(NULL));//生成隨機數(shù)
? int input = 0;
? do ? ? ? ? ? ? ?//do-while循環(huán)
? {
? ? menu(); ? ?//(1--play ? 0--exit)也是do-while循環(huán)的條件
? ? printf("請選擇:");
? ? scanf("%d",&input);
? ? switch(input)
? ? {?
? ? case 1:
? ? ? ? printf("開始游戲\n");
? ? ? ? game();
? ? ? ? break;
? ? ?case 0:
? ? ? ? printf("退出游戲");
? ? ? ? break;
? ? ?default: ??
? ? ? ? printf("選擇錯誤,請重新輸入");
? ? ? ? break;
? ? }
? }while(input)
??
? return 0;
}

第二個源文件:game.c

#include "game.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 <= row;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[ROW][COL],int row,int col)
{
? int x = 0;
? int y = 0;
? while(count) //count-雷的數(shù)量
? {
? ? x = rand()%row + 1;//因為在1-row中布置雷,邊緣一排不用,最后為了記錄
? ? y = rand()%col + 1;//周圍雷的數(shù)量方便,同時代碼方便
? ? if( board[x][y] == '0')
? ? {
? ? ? board[x][y] = '1';
? ? ? count--;
? ? }
? }
}

//算出周圍雷的個數(shù)
int get_mine_count(mine[ROWS][COLS],int row,int col)
{
? int i = 0;
? int j = 0;
? int mine_count = 0;
? for( i = -1;i <= 1; i++ )
? {
? ? for( j = -1;j <= 1; j++ )
? ? {
? ? ? if( mine[i][j] == '1')
? ? ? {
? ? ? ? mine_count++;
? ? ? }
? ? }
? }
? return mine_count;
}

void FindMine(char mine[][COLS],char show[][COLS],int row,int col)
{
? int x = 0;
? int y = 0;
? int ret = 0;//已經(jīng)查找過的位置的數(shù)量
? while(ret < row * col - count)//當還剩下count的數(shù)量時,贏得游戲
? {?
? ? printf("請輸入查找位置下標:");
? ? scanf("%d%d",&x,&y);
? ? if(x >= 1 && x <= row && y >= 1 && y <= col)
? ? {
? ? ? if(mine[x][y] == '0')
? ? ? {
? ? ? ? //當所查坐標的位置不是雷時,將該坐標展示成周圍雷的個數(shù)
? ? ? ? int c = get_mine_count(mine,ROW,COL);
? ? ? ? mine[x][y] = c + '0';//返回值為int型,數(shù)組為char型,因此+'0'
? ? ? ? ret++;
? ? ? ? DisplayBoard(show,ROW,COL);
? ? ? }
? ? ? else
? ? ? {
? ? ? ? printf("YOU LOSE\n");
? ? ? ? break;
? ? ? }
? ? }
? ? else
? ? {
? ? ? printf("輸入非法,請重新輸入\n");
? ? }
? }
? printf("VICTORY\n"); ?//獲得勝利
}

到此這篇關(guān)于c++實現(xiàn)掃雷小游戲代碼分享的文章就介紹到這了,更多相關(guān)c++實現(xiàn)掃雷小游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實現(xiàn)enum枚舉

    C語言實現(xiàn)enum枚舉

    在實際編程中,有些數(shù)據(jù)的取值往往是有限的,只能是非常少量的整數(shù),并且最好為每個值都取一個名字,以方便在后續(xù)代碼中使用,比如一個星期只有七天,一年只有十二個月,一個班每周有六門課程等。 以每周七天為例,我們可以使用#define命令來給每天指定一個名字
    2021-06-06
  • bmp 縮放代碼(BMP位圖任意放大 和縮小)

    bmp 縮放代碼(BMP位圖任意放大 和縮小)

    這篇文章主要介紹了bmp 縮放代碼(BMP位圖任意放大 和縮小),需要的朋友可以參考下
    2016-04-04
  • 詳解設(shè)計模式中的Command命令模式及相關(guān)C++實現(xiàn)

    詳解設(shè)計模式中的Command命令模式及相關(guān)C++實現(xiàn)

    這篇文章主要介紹了詳解設(shè)計模式中的Command命令模式及相關(guān)C++實現(xiàn),命令模式強調(diào)調(diào)用操作的對象和操作的具體實現(xiàn)者之間的解耦,需要的朋友可以參考下
    2016-03-03
  • 深度解析三個常見的C語言內(nèi)存函數(shù)

    深度解析三個常見的C語言內(nèi)存函數(shù)

    這篇文章主要深度解析了三個常見的C語言內(nèi)存函數(shù)memcpy,memmove,memcmp,所以本文將對memcpy,memmove,memcmp 三個函數(shù)進行詳解和模擬實現(xiàn),需要的朋友可以參考下
    2023-07-07
  • 一元多項式加法運算

    一元多項式加法運算

    今天小編就為大家分享一篇關(guān)于一元多項式加法運算,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • LoadLibrary深入案例詳解

    LoadLibrary深入案例詳解

    這篇文章主要介紹了LoadLibrary深入案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語言貪吃蛇經(jīng)典小游戲

    C語言貪吃蛇經(jīng)典小游戲

    這篇文章主要為大家詳細介紹了C語言貪吃蛇經(jīng)典小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C語言將數(shù)組中元素的數(shù)排序輸出的相關(guān)問題解決

    C語言將數(shù)組中元素的數(shù)排序輸出的相關(guān)問題解決

    這篇文章主要介紹了C語言將數(shù)組中元素的數(shù)排序輸出的相關(guān)問題解決,文中的題目是將元素連接起來排成一個數(shù)并要求出這類結(jié)果中數(shù)最小的一個,需要的朋友可以參考下
    2016-03-03
  • C語言實現(xiàn)搶紅包程序代碼精簡版

    C語言實現(xiàn)搶紅包程序代碼精簡版

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)搶紅包程序代碼的精簡版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • C++實現(xiàn)圖像目標區(qū)裁剪ImageCropping

    C++實現(xiàn)圖像目標區(qū)裁剪ImageCropping

    本文主要介紹了C++實現(xiàn)圖像目標區(qū)裁剪ImageCropping,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評論