中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

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

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

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

文章目錄

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

一、游戲規(guī)則

1. 在9*9的小格子中,任意選取一個坐標(biāo)(格子),選擇后發(fā)現(xiàn),如果沒點中雷的坐標(biāo),會顯示數(shù)字(表示周圍有幾個雷),如果點中雷,游戲結(jié)束

排查雷

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

掃雷01

2.選擇后如圖

掃雷02

3.點中雷的情況

掃雷03

二、 代碼邏輯

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

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

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

//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("請選擇>:");scanf("%d",&input);switch (input){case 1:game();break;case 0:printf("退出游戲\n");break;default:printf("選擇錯誤,請重新選擇\n");break;}} while (input);return 0;
}

menu

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

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

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

04

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

因為掃雷 是掃周圍的8個區(qū)域,會遇到掃越界問題

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

//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) 布置雷

在這里隨機生成雷
字符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')	//避免在同一個地方布置雷{mine[x][y] = '1';count--;}		}
}

06

3.排查雷

輸入排查雷的坐標(biāo),如果是雷則GAME OVER !,則如果不是雷,則顯示該坐標(biāo)周圍有多少個雷

//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ū)域個數(shù){printf("請輸入要排查的坐標(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)計周圍有多少雷int c = GetCountMine(mine,x,y);show[x][y] = c + '0';DisplayBoard(show,ROW,COL);win++;}}else {printf("坐標(biāo)輸入錯誤,重新輸入\n");}}if (win == ((row * col)- Easy_count)) //需要排的區(qū)域數(shù){printf("恭喜您,排雷成功!\n");}
}

排雷的周圍坐標(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個雷(用于測試排雷成功),所以只有一個安全)
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è)置隨機數(shù)種子do {menu();printf("請選擇>:");scanf("%d",&input);switch (input){case 1:game();break;case 0:printf("退出游戲\n");break;default:printf("選擇錯誤,請重新選擇\n");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;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')	//避免在同一個地方布置雷{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ū)域個數(shù){printf("請輸入要排查的坐標(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)計周圍有多少雷int c = GetCountMine(mine,x,y);show[x][y] = c + '0';DisplayBoard(show,ROW,COL);win++;}}else {printf("坐標(biāo)輸入錯誤,重新輸入\n");}}if (win == ((row * col)- Easy_count)) //需要排的區(qū)域數(shù){printf("恭喜您,排雷成功!\n");}
}
http://www.risenshineclean.com/news/37552.html

相關(guān)文章:

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