国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

免費(fèi)推廣做產(chǎn)品的網(wǎng)站廣州新聞24小時(shí)爆料熱線

免費(fèi)推廣做產(chǎn)品的網(wǎng)站,廣州新聞24小時(shí)爆料熱線,自己做個(gè)網(wǎng)頁(yè)多少錢(qián),免費(fèi)發(fā)布產(chǎn)品信息網(wǎng)站文章目錄 一、游戲規(guī)則二、 代碼邏輯三、游戲?qū)崿F(xiàn)1. 游戲菜單設(shè)計(jì)2.設(shè)計(jì)雷區(qū)并隨機(jī)布置雷(1) 設(shè)置雷區(qū)(2) 布置雷 3.排查雷 四、源碼 一、游戲規(guī)則 1. 在9*9的小格子中,任意選取一個(gè)坐標(biāo)(格子),選擇后發(fā)現(xiàn),如果沒(méi)點(diǎn)中雷…

文章目錄

  • 一、游戲規(guī)則
  • 二、 代碼邏輯
  • 三、游戲?qū)崿F(xiàn)
    • 1. 游戲菜單設(shè)計(jì)
    • 2.設(shè)計(jì)雷區(qū)并隨機(jī)布置雷
      • (1) 設(shè)置雷區(qū)
      • (2) 布置雷
    • 3.排查雷
  • 四、源碼

一、游戲規(guī)則

1. 在9*9的小格子中,任意選取一個(gè)坐標(biāo)(格子),選擇后發(fā)現(xiàn),如果沒(méi)點(diǎn)中雷的坐標(biāo),會(huì)顯示數(shù)字(表示周?chē)袔讉€(gè)雷),如果點(diǎn)中雷,游戲結(jié)束

排查雷

  • 如果這個(gè)位置不是雷,就計(jì)算這個(gè)位置的周?chē)?個(gè)坐標(biāo)有幾個(gè)雷,并顯示雷的個(gè)數(shù)
  • 如果是 雷 ,就炸死了,游戲結(jié)束
  • 如果把雷都找出來(lái)了,勝利,游戲結(jié)束
  • 鏈 接:網(wǎng)頁(yè)版掃雷

掃雷01

2.選擇后如圖

掃雷02

3.點(diǎn)中雷的情況

掃雷03

二、 代碼邏輯

  1. 游戲菜單設(shè)計(jì)
  2. 設(shè)計(jì)雷區(qū)并隨機(jī)布置雷
  3. 排查雷

三、游戲?qū)崿F(xiàn)

1. 游戲菜單設(shè)計(jì)

//test.c
#include "game.h"
void game() 
{printf("掃雷\n");
}
void menu() 
{printf("************************\n");printf("******    掃雷   *******\n");printf("******  1. play  *******\n");printf("******  0. exit  *******\n");printf("************************\n");
}
int main() 
{int input = 0;do {menu();printf("請(qǐng)選擇>:");scanf("%d",&input);switch (input){case 1:game();break;case 0:printf("退出游戲\n");break;default:printf("選擇錯(cuò)誤,請(qǐng)重新選擇\n");break;}} while (input);return 0;
}

menu

2.設(shè)計(jì)雷區(qū)并隨機(jī)布置雷

(1) 設(shè)置雷區(qū)

設(shè)置一個(gè)9*9的二維數(shù)組,0表示沒(méi)有雷,1表示雷

04

但是為了避免顯示給玩家看的數(shù)字 1(雷的個(gè)數(shù))與設(shè)置雷的 1 重合,所以選用 * 進(jìn)行埋雷

因?yàn)閽呃?是掃周?chē)?個(gè)區(qū)域,會(huì)遇到掃越界問(wèn)題

05
故變成11*11的二維數(shù)組
在這里插入圖片描述
設(shè)置棋盤(pán)

//test.c 中的 game()
void game() 
{char mine[ROWS][COLS] = {0};//放置雷的數(shù)組char show[ROWS][COLS] = {0};//顯示的數(shù)組InitBoard(mine,ROWS,COLS,'0');DisplayBoard(mine, ROW, COL);InitBoard(show,ROWS,COLS,'*');DisplayBoard(show, ROW, COL);}
//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;printf("--------掃雷---------\n");for (i = 0; i <= col;i++) {printf("%d ",i);//打印列標(biāo)}printf("\n");for (i = 1; i <= row; i++) {printf("%d ",i);//打印行標(biāo)for (j = 1; j <= col;j++){printf("%c ",board[i][j]);}printf("\n");}printf("--------掃雷---------\n");}
//game.h
#include <stdio.h>#define ROW 9
#define COL 9#define ROWS ROW+2
#define COLS COL+2void InitBoard(char board[ROWS][COLS],int rows,int cols,char set);
void DisplayBoard(char board[ROWS][COLS], int row, int col);

在這里插入圖片描述

(2) 布置雷

在這里隨機(jī)生成雷
字符0表示不是雷。字符1表示是雷

//game.c
void SetMine(char mine[ROWS][COLS], int row, int col) 
{int count = Easy_count;while (count) {int x = rand() % row + 1;//生成坐標(biāo)1-9int y = rand() % col + 1;if (mine[x][y] =='0')	//避免在同一個(gè)地方布置雷{mine[x][y] = '1';count--;}		}
}

06

3.排查雷

輸入排查雷的坐標(biāo),如果是雷則GAME OVER !,則如果不是雷,則顯示該坐標(biāo)周?chē)卸嗌賯€(gè)雷

//game.c
//排查雷
int GetCountMine(char mine[ROWS][COLS],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');
}
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))//要排不是雷的區(qū)域個(gè)數(shù){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("GAME OVER!!!,被炸死了\n");DisplayBoard(mine,ROW,COL);break;}else {//不是雷,統(tǒng)計(jì)周?chē)卸嗌倮?/span>int c = GetCountMine(mine,x,y);show[x][y] = c + '0';DisplayBoard(show,ROW,COL);win++;}}else {printf("坐標(biāo)輸入錯(cuò)誤,重新輸入\n");}}if (win == ((row * col)- Easy_count)) //需要排的區(qū)域數(shù){printf("恭喜您,排雷成功!\n");}
}

排雷的周?chē)鴺?biāo)

x-1, y - 1x-1,yx-1,y+1
x, y - 1x,yx,y+1
x+1,y-1x+1,yx+1,y+1

排完的情況(這里設(shè)置80個(gè)雷(用于測(cè)試排雷成功),所以只有一個(gè)安全)
07

排到雷,游戲結(jié)束
在這里插入圖片描述

四、源碼

game.h

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define ROW 9
#define COL 9#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 mine[ROWS][COLS],int row,int col);
//排查雷
void FindMine(char mine[ROWS][COLS],char show[ROWS][COLS],int row,int col);

test.c

#include "game.h"
void game() 
{char mine[ROWS][COLS] = {0};//放置雷的數(shù)組char show[ROWS][COLS] = {0};//顯示的數(shù)組InitBoard(mine,ROWS,COLS,'0');InitBoard(show,ROWS,COLS,'*');	DisplayBoard(show, ROW, COL);//布置雷SetMine(mine,ROW,COL);//排查雷FindMine(mine,show,ROW,COL);}
void menu() 
{printf("************************\n");printf("******    掃雷   *******\n");printf("******  1. play  *******\n");printf("******  0. exit  *******\n");printf("************************\n");
}
int main() 
{int input = 0;srand((unsigned int )time(NULL));//設(shè)置隨機(jī)數(shù)種子do {menu();printf("請(qǐng)選擇>:");scanf("%d",&input);switch (input){case 1:game();break;case 0:printf("退出游戲\n");break;default:printf("選擇錯(cuò)誤,請(qǐng)重新選擇\n");break;		}} while (input);return 0;
}

game.c


#include "game.h"
//初始化棋盤(pán)
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;}}
}
//打印棋盤(pán)
void DisplayBoard(char board[ROWS][COLS], int row, int col) 
{int i = 0;int j = 0;printf("--------掃雷---------\n");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");}printf("--------掃雷---------\n");}
//布置雷
void SetMine(char mine[ROWS][COLS], int row, int col) 
{int count = Easy_count;while (count) {int x = rand() % row + 1;//生成坐標(biāo)1-9int y = rand() % col + 1;if (mine[x][y] =='0')	//避免在同一個(gè)地方布置雷{mine[x][y] = '1';count--;}}
}
//排查雷
int GetCountMine(char mine[ROWS][COLS],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');
}
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))//要排不是雷的區(qū)域個(gè)數(shù){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("GAME OVER!!!,被炸死了\n");DisplayBoard(mine,ROW,COL);break;}else {//不是雷,統(tǒng)計(jì)周?chē)卸嗌倮?/span>int c = GetCountMine(mine,x,y);show[x][y] = c + '0';DisplayBoard(show,ROW,COL);win++;}}else {printf("坐標(biāo)輸入錯(cuò)誤,重新輸入\n");}}if (win == ((row * col)- Easy_count)) //需要排的區(qū)域數(shù){printf("恭喜您,排雷成功!\n");}
}
http://m.aloenet.com.cn/news/37552.html

相關(guān)文章:

  • 福建咨詢(xún)網(wǎng)站建設(shè)商家站長(zhǎng)之家端口掃描
  • 什么是網(wǎng)絡(luò)營(yíng)銷(xiāo)行為分析滎陽(yáng)seo推廣
  • 電腦如何創(chuàng)建網(wǎng)頁(yè)優(yōu)化落實(shí)疫情防控新十條
  • 網(wǎng)站管理建設(shè)的總結(jié)中層管理者培訓(xùn)課程有哪些
  • 廣州市網(wǎng)站開(kāi)發(fā)搜索引擎有哪些分類(lèi)
  • 企業(yè)網(wǎng)站實(shí)驗(yàn)報(bào)告網(wǎng)站優(yōu)化排名易下拉軟件
  • 企業(yè)官方網(wǎng)站認(rèn)證友情鏈接有哪些作用
  • 湖北網(wǎng)站設(shè)計(jì)制作開(kāi)發(fā)廈門(mén)網(wǎng)站到首頁(yè)排名
  • 網(wǎng)站注冊(cè)時(shí)間網(wǎng)站點(diǎn)擊量 哪里查詢(xún)
  • 深圳網(wǎng)站seo 樂(lè)云踐新常用的網(wǎng)絡(luò)營(yíng)銷(xiāo)工具
  • 靜態(tài)網(wǎng)站如何做自適應(yīng)移動(dòng)端aso優(yōu)化工具
  • it外包人員有多慘涇縣網(wǎng)站seo優(yōu)化排名
  • 高質(zhì)量的合肥網(wǎng)站建設(shè)百度高級(jí)搜索頁(yè)面
  • 局域網(wǎng)內(nèi)做網(wǎng)站優(yōu)化seo廠家
  • 濰坊制作網(wǎng)站的公司搜索引擎調(diào)詞軟件
  • 中企動(dòng)力做網(wǎng)站怎么樣國(guó)家高新技術(shù)企業(yè)查詢(xún)
  • 高唐建筑公司網(wǎng)站seo關(guān)鍵詞優(yōu)化要多少錢(qián)
  • 紹興做網(wǎng)站哪家好在線營(yíng)銷(xiāo)推廣
  • 風(fēng)機(jī)網(wǎng)站怎么做南寧seo推廣服務(wù)
  • 企業(yè)門(mén)戶(hù)網(wǎng)站開(kāi)發(fā)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)櫻桃電視劇西瓜視頻在線觀看
  • django做的網(wǎng)站源碼百度網(wǎng)站怎么優(yōu)化排名
  • 網(wǎng)站建設(shè) 順德河南網(wǎng)站建設(shè)公司哪家好
  • 眉山政府網(wǎng)站建設(shè)seo網(wǎng)站推廣優(yōu)化
  • 如何查詢(xún)網(wǎng)站的建站工具seo門(mén)戶(hù)網(wǎng)站
  • 溫州網(wǎng)站建設(shè)成功案例山西seo基礎(chǔ)教程
  • 學(xué)院網(wǎng)站的作用中國(guó)疫情最新數(shù)據(jù)
  • 觸屏版網(wǎng)站開(kāi)發(fā)樣式互聯(lián)網(wǎng)推廣與營(yíng)銷(xiāo)
  • 沒(méi)有網(wǎng)站可以做淘寶客嗎搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)
  • 做招商類(lèi)型的網(wǎng)站怎么制作網(wǎng)站二維碼
  • 江西省住房和城鄉(xiāng)建設(shè)部網(wǎng)站市場(chǎng)營(yíng)銷(xiāo)推廣方案