欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語言掃雷遞歸展開函數(shù) 掃雷數(shù)組c語言最簡單代碼

C語言編一個9*9的掃雷游戲程序,跟網(wǎng)上那些不一樣,求大神給個正確的答案

太復(fù)雜,我分成幾部分試著做一下

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、做網(wǎng)站服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)合陽免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

首先是畫棋盤,定義兩個二維數(shù)組來表示每個棋子的狀態(tài)和棋子周圍的雷數(shù),用于顯示。

//畫棋盤 a表示棋子是否已被翻開,b表示附近的雷數(shù)

bool MakeMap(bool a[9][9],int b[9][9])

{

int i=0,j=0;

for(i=0;i9;i++)

{

for(j=0;j9;j++)

{

if(a[i][j]) printf("%d ",b[i][j]);

else printf("# ");

}

printf("\n");

}

return true;

}

C語言掃雷點到空白地方一次打開一大片的算法求解

能把代碼再多給點嗎?

那8個遞歸其實可以用兩個for來做的

void?ClickBlank(int?x,?int?y)?{

int?i,?j;

if?(isBlank(x,?y))?{

ShowAroundBlock(x,?y);

for?(i?=?-1;?i?=?1;?i++)?{

for?(j?=?-1;?j?=?1;?j++)?{

if?(i?==?0??j?==?0)?continue;

ClickBlank(x?+?i,?y?+?j);

}

}

}

}

而且你應(yīng)該設(shè)訪問標(biāo)記,已經(jīng)ClickBlank的格子不應(yīng)再調(diào)用ClickBlank

c++ 掃雷 點一個開一片的遞歸函數(shù)

//俺學(xué)數(shù)據(jù)結(jié)構(gòu)寫的..

#include iostream.h

#include stdlib.h

#include time.h

#include iomanip.h

#define m 12 //范圍為[m-2][n-2]

#define n 12

int a[m][n]={0},count=15;

int mark[m][n]={0};//標(biāo)記矩陣

int flag=0;//游戲失敗時flag 標(biāo)記為一

void init(){

int k1,k2,count1=0,sum,i,j;

srand(time(0));

while(count1count){// 安放count個炸藥

k1=rand()%(m-2)+1;

k2=rand()%(m-2)+1;

if(a[k1][k2]==0){

a[k1][k2]=-15;

count1++;

}

}

for(i=1;im-1;i++){//尋找每個點周圍的雷數(shù)

for(j=1;jn-1;j++){

sum=0;

if(a[i][j]==0){

for(int i1=-1;i12;i1++)

for(int j1=-1;j12;j1++){

if(a[i+i1][j+j1]==-15)//周圍八個格子如果有雷就 加

sum++;

}

a[i][j]=sum;

}

}

}

for(i=0;im;i++)//初始化外圍

a[0][i]=-i;

for(i=0;in;i++)

a[i][0]=-i;

}

void show(int row,int col){//顯示矩陣

int i,j;

if(flag==0){

for(i=0;icol-1;i++)

coutsetw(4)i;

coutendl;

for(i=1;irow-1;i++){

coutsetw(4)a[0][i];

for(j=1;jcol-1;j++){

if(mark[i][j]==0)

coutsetw(4)'X';

else

coutsetw(4)a[i][j];

}

coutendl;

}

}

if(flag==1){

for(i=0;irow-1;i++){

for(j=0;jcol-1;j++){

if(a[i][j]==-15)

coutsetw(4)'';

else

coutsetw(4)a[i][j];

}

coutendl;

}

}

}

void search(int row,int col){//利用遞歸求0的位置

if(row0col0rowm-1coln-1){

if(a[row][col]==0mark[row][col]==0){

mark[row][col]=1;

for(int i=-1;i2;i++)

for(int j=-1;j2;j++)

search(row+i,col+j);

}

else

if(a[row][col]0mark[row][col]==0)

mark[row][col]=1;

else

if(a[row][col]==-15)

return;

}

}

int win(){

for(int i=1;im-1;i++)

for(int j=1;jm-1;j++){

if(a[i][j]!=-15mark[i][j]==0)

return 0;

}

return 1;

}

void playsweep(){

init();

cout"ok1"endl;

show(m,n);

int row,col;

cout"請輸入橫,縱坐標(biāo)"endl;

cinrowcol;

while(1){

if(a[row][col]==-15){

system("cls");

flag=1;

show(m,n);

cout"game over"endl;

break;

}

search(row,col);

system("cls");

show(m,n);

if(flag==1){

cout"zhongdan"endl;

break;

}

if(win()){

cout"youwin"endl;

break;

}

cout"請輸入橫,縱坐標(biāo)"endl;

while(1){

cinrowcol;

if(mark[row][col]==0)

break;

cout"坐標(biāo)錯誤,請從新輸入"endl;

}

if(a[row][col]==-15){

system("cls");

flag=1;

show(m,n);

cout"game over"endl;

break;

}

}

}

void main(){

playsweep();

}

網(wǎng)站標(biāo)題:c語言掃雷遞歸展開函數(shù) 掃雷數(shù)組c語言最簡單代碼
文章源于:http://www.chinadenli.net/article14/ddoicde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷靜態(tài)網(wǎng)站做網(wǎng)站企業(yè)網(wǎng)站制作標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站