<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
分成兩個原始檔和一個標頭檔案
注意:這串程式碼並不完整,不能夠實現當所查座標周圍雷的數量為0時,直接展開周圍座標;
標頭檔案:game.h
#include <stdio.h> #define count 10 //雷的數量 //定義 行-ROW,列-COL #define ROW 9 #define COL 9 #define ROWS ROW+2 //多加一些,方便程式碼 #define COLS COL+2 //初始化棋盤,宣告的函數均在game.c中實現 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()中的函數在game.h中宣告,在game.c中實現 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));//生成亂數 int input = 0; do //do-while迴圈 { menu(); //(1--play 0--exit)也是do-while迴圈的條件 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-雷的數量 { x = rand()%row + 1;//因為在1-row中佈置雷,邊緣一排不用,最後為了記錄 y = rand()%col + 1;//周圍雷的數量方便,同時程式碼方便 if( board[x][y] == '0') { board[x][y] = '1'; count--; } } } //算出周圍雷的個數 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;//已經查詢過的位置的數量 while(ret < row * col - count)//當還剩下count的數量時,贏得遊戲 { printf("請輸入查詢位置下標:"); scanf("%d%d",&x,&y); if(x >= 1 && x <= row && y >= 1 && y <= col) { if(mine[x][y] == '0') { //當所查座標的位置不是雷時,將該座標展示成周圍雷的個數 int c = get_mine_count(mine,ROW,COL); mine[x][y] = c + '0';//返回值為int型,陣列為char型,因此+'0' ret++; DisplayBoard(show,ROW,COL); } else { printf("YOU LOSEn"); break; } } else { printf("輸入非法,請重新輸入n"); } } printf("VICTORYn"); //獲得勝利 }
到此這篇關於c++實現掃雷小遊戲程式碼分享的文章就介紹到這了,更多相關c++實現掃雷小遊戲內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45