c 掃雷遊戲

2022-08-29 11:45:09 字數 3096 閱讀 8632

一、c#實現掃雷

1、在form中

bombclass bombclass = new bombclass();

/*布雷按鈕事件*/

private void initbombbtn_click(object sender, eventargs e)

/*雷盤的滑鼠點選事件:方法一 */

private void bombpanel_mouseclick(object sender, mouseeventargs e)

else if (bombclass.bombdata[row, column] == bombclass.bombint)

else if (bombclass.bombdata[row, column] == 0)

if (bombclass.checkfinishfirst())

else

bombclass.bombdraw();

}

/*掃雷panel重繪事件*/

private void bombpanel_paint(object sender, painteventargs e)

}

2、掃雷類 

public class bombclass

;/*雷數*/

public int bombcount;

/*雷陣列*/

public int[,] bombdata;

/*是否點選的標誌*/

public int[,] bombdataflag;

/*棋子大小*/

public int cellsize = 30;

/*表示地雷的數字*/

public const int bombint = -2;

public system.intptr winhandle;

public int width;

public int height;

#endregion

/*初始化雷陣列(點選布雷按鈕之後才用)*/

public void initbombdata()

/*隨機數生成雷的位置*/

protected listradombomb(int bombcount)

}if (checkflag)

else

;bombs.add(newpoint);}}

return bombs;

}/*布雷(以雷為中心訪問四周)*/

protected void setbomb(listbombs)}}

/*獲取四周合法的座標並返回*/

public int getroundlocation(int row, int column)

int i = 0;

//左上

if (row - 1 >= 0 && column - 1 >= 0)

//上if (row - 1 >= 0)

//右上

if (row - 1 >= 0 && column + 1 < bombcount)

//左if (column - 1 >= 0)

//右if (column + 1 < bombcount)

//左下

if (row + 1 < bombcount && column - 1 >= 0)

//下if (row + 1 < bombcount)

//右下

if (row + 1 < bombcount && column + 1 < bombcount)

return locationround;

}/*使用畫圖方法:畫雷盤一 */

public void bombdraw()

//畫方格及數字

for (int i = 0; i < bombcount; i++)

//如果點選到的是空

else if (bombdata[i, j] == 0 || bombdata[i, j] == -1)

//如果點選到的是地雷

else if (bombdata[i, j] == -2)

}g.fillrectangle(brush, (cellsize + 1) * j + 1

, (cellsize + 1) * i + 1, cellsize, cellsize);

g.drawstring(strtemp, font, new solidbrush(color.black),

(cellsize + 1) * j + 8, (cellsize + 1) * i + 8);}}

graphics gg = graphics.fromhwnd(winhandle);

//graphics gg = bombpanel.creategraphics();

gg.drawimage(myimage, 0, 0);

}/*踩到空時處理方法(深度優先搜尋):方法一*/

public void nulldepthfindfirst(int row, int column)}}

}/*踩到空時處理方法(廣度優先搜尋):方法一*/

public void nullwidthfindfirst(int row, int column)

waitcheck[0] = row;

waitcheck[1] = column;

int frontcount = 0; //隊頭

int backcount = frontcount + 2; //隊尾

//隊頭不等於隊尾

while (frontcount != backcount)}}

frontcount += 2; //佇列指標移動}}

/*檢查掃雷是否完成:方法一*/

public bool checkfinishfirst()}}

if (flag)

break;

}if (leftcount == bombcount)

else

return false;

}/*踩到雷時顯示所有:方法一*/

public void showallbomb()

}bombdraw();

}}

C 掃雷遊戲程式設計

一 概述 最近買了心機nokia6300,上面有一款掃雷遊戲,閒暇時光總是在玩,玩難度的級別還挺難過的。呵呵 後來就想使用c 寫個掃雷程式玩玩,遊戲玩多了,遊戲的思想就不知不覺的有了,下面所有的 是沒有任何參考的情況下,自己寫出來的,有許多瑕疵,程式也沒經過什麼優化,主要的演算法思想其實就那麼幾行。...

掃雷遊戲。。c 編寫。。

我知道很簡單,就這樣吧。掃雷 2012 11 20 include include include include include include using namespace std struct node queueq int map 1010 1010 already 1010 1010 i...

C語言 掃雷遊戲

標頭檔案 ifndef mine h define mine h define line 10 define list 10 define rows 6 define cows 6 int game char userboard line 2 list 2 char playerboard line...