freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于c的網(wǎng)絡(luò)軍棋設(shè)計(jì)畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2025-07-02 08:29本頁(yè)面

【導(dǎo)讀】本文詳細(xì)介紹了一個(gè)網(wǎng)絡(luò)對(duì)戰(zhàn)軍棋游戲的設(shè)計(jì)和實(shí)現(xiàn)。對(duì)于軍棋游戲來(lái)說(shuō),規(guī)則非。常簡(jiǎn)單,就是按照先后順序在棋盤(pán)上走棋吃子,直到一方最先將對(duì)方的“軍旗”挖掉為勝。有明確的連接,使用UDP協(xié)議建立對(duì)等通信。游戲開(kāi)始后,創(chuàng)建一個(gè)線程。中傳送的是“輸贏信息”、“下的棋子位置信息”、“重新開(kāi)始”等信息而分別處理。導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致。含我為獲得及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過(guò)的材料。明并表示了謝意。以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉?jī)?nèi)容。

  

【正文】 ]及相應(yīng)的圖片,但 Visible=false 讓其不可見(jiàn)。 “保存布局 ”、 “讀取布局 ”、 “開(kāi)始對(duì)戰(zhàn) ”、 “重新開(kāi)始 ”4 個(gè)按鈕設(shè)為不用。 private void Form1_Load(object sender, e) { Pic_Width = 。 //棋盤(pán)大小 r = (Pic_Width) / 17。 Map = new int[18, 18]。 for (int i = 1。 i 18。 i++) for (int j = 1。 j 18。 j++) Map[i, j] = 101。 //101表示 (i,j)處沒(méi)放置棋子 qi_index()。 //棋子編號(hào)并設(shè)置對(duì)應(yīng)棋子含義 begin_pos(2)。 //加載不可見(jiàn)棋子 = false。 //保存布陣按鈕 = false。 //讀取布陣按鈕 = false。 //開(kāi)始對(duì)戰(zhàn)按鈕 = false。 //重新開(kāi)始按鈕 } private void qi_index() { Q = new int[25]。 Q[0] = 29。 //軍旗 29 Q[1] = 30。 Q[2] = 30。 Q[3] = 30。//地雷 30 沈陽(yáng)理工大學(xué)學(xué)士學(xué)位論文 23 Q[4] = 31。 Q[5] = 31。//炸彈 31 Q[6] = 32。 Q[7] = 32。 Q[8] = 32。//工兵 32 Q[9] = 33。 Q[10] = 33。 Q[11] = 33。//排長(zhǎng) 33 Q[12] = 34。 Q[13] = 34。 Q[14] = 34。//連長(zhǎng) 34 Q[15] = 35。 Q[16] = 35。//營(yíng)長(zhǎng) 35 Q[17] = 36。 Q[18] = 36。//團(tuán)長(zhǎng) 36 Q[19] = 37。 Q[20] = 37。//旅長(zhǎng) 37 Q[21] = 38。 Q[22] = 38。//師長(zhǎng) 38 Q[23] = 39。//軍長(zhǎng) 39 Q[24] = 40。//司令 40 } //添加處理棋子起始位置方法 private void begin_pos(int m) { string filename = 。 path = 。// bin路徑 Qizi_Pic = new PictureBox[25 * m]。 int i。 int n = 1。 for (i = 0。 i 25 * m。 i++)//添加 25*m個(gè)棋子 { Qizi_Pic[i] = new PictureBox()。 (Qizi_Pic[i])。 Qizi_Pic[i].Width = 22。 Qizi_Pic[i].Height = 22。 Qizi_Pic[i].Name = R + ()。 Qizi_Pic[i].Tag = ()。 Qizi_Pic[i].Parent = qi_pan。 if (i 25) { 沈陽(yáng)理工大學(xué)學(xué)士學(xué)位論文 24 filename = path + \\..\\..\\bmp\\ + Q[i].ToString() + .bmp。 } if (i = 25 amp。amp。 i 50) { filename = path + \\..\\..\\bmp\\G + Q[i % 25].ToString() + .bmp。 //暗棋 filename = path + \\..\\..\\bmp\\。 } Qizi_Pic[i].Image = (filename)。 Qizi_Pic[i].Click += new (bt_Click)。 Qizi_Pic[i].MouseDown += new (bt_MouseDown)。 Qizi_Pic[i].MouseMove += new (bt_MouseMove)。 Qizi_Pic[i].MouseUp += new (bt_MouseUp)。 if (i % 5 == 0) n++。 Qizi_Pic[i].Top = 250 + n * 24。 Qizi_Pic[i].Left = 10 + 23 * (i % 5)。 Qizi_Pic[i].Visible = false。 } } 棋子控件的四個(gè)事件 以下是棋子控件的四個(gè)事件: “Click”、 “MouseMove”、 “MouseUp”、 “_MouseDown”?!癈lick”單擊事件主要處理玩家在棋盤(pán)上棋子布局功能。 private void bt_Click(object sender, e) //這里處理單擊事件過(guò)程 { int x1, y1。 PictureBox picBox1 = (PictureBox)sender。 int i = ()。 沈陽(yáng)理工大學(xué)學(xué)士學(xué)位論文 25 //轉(zhuǎn)換成棋盤(pán)坐標(biāo) (x1,y1) x1 = ( 10 + / 2) / r + 1。 y1 = ( 10 + / 2) / r + 1。 if (Layout_Flag == true) //是否布 局 { if (first == true) { tempx = x1。 tempy = y1。 first = false。 return。 } else { old_x = tempx。 old_y = tempy。 first = true。 } if (Layout_Juge(old_x, old_y, x1, y1))//是否可以改變布局 if (Map[x1, y1] == 101)//沒(méi)有棋子 { MoveChess(Map[old_x, old_y], x1, y1)。 Map[old_x, old_y] = 101。 } else //對(duì)調(diào)棋子 { MoveChess(Map[old_x, old_y], x1, y1)。 MoveChess(i, old_x, old_y)。 } else //=不能改變?cè)胁季?。 (第一排不允許放置炸彈,放置地雷在后兩排,軍旗只能在大本營(yíng) , 違反軍旗布局規(guī)則 )。 } } private void MoveChess(int idx, int x, int y)//移動(dòng)棋子 //idx棋子索引號(hào),( x,y)目標(biāo)位置 { Qizi_Pic[idx].Left = (x 1) * r + 10。 Qizi_Pic[idx].Top = (y 1) * r + 10。 Map[x, y] = idx。 } 沈陽(yáng)理工大學(xué)學(xué)士學(xué)位論文 26 private bool Layout_Juge(int old_x, int old_y, int x1, int y1) //判斷布局棋子的位置是否適當(dāng) { //第一排不允許放置炸彈,第 1, 2, 3, 4排不允許放置地雷, //自己的軍旗只能放置在大本營(yíng) //炸彈控件編號(hào) 4, 5,第一排 (y1=12)不允許放置炸彈 if (Q[Map[old_x, old_y] % 25] == 31 amp。amp。 y1 == 12) return false。 if (Q[Map[x1, y1] % 25] == 31 amp。amp。 old_y == 12) return false。//第一排 (y1=12)不允許放置炸彈 31 if (Q[Map[old_x, old_y] % 25] == 29 amp。amp。 !(x1 == 8 amp。amp。 y1 == 17 || x1 == 10 amp。amp。 y1 == 17)) return false。//自己的軍旗 29,只能放置在大本營(yíng) if (Q[Map[x1, y1] % 25] == 29 amp。amp。 !(old_x == 8 amp。amp。 old_y == 17 || old_x == 10 amp。amp。 old_y == 17)) return false。//自己的軍旗 29,只能放置在大本營(yíng) if (Q[Map[x1, y1] % 25] == 30 amp。amp。 !(old_y == 16 || old_y == 17)) return false。//第 1, 2, 3, 4排不允許放置地雷 30, if (Q[Map[old_x, old_y] % 25] == 30 amp。amp。 !(y1 == 16 || y1 == 17)) return false。//第 1, 2, 3, 4排不允許放置地雷, return true。//其余情況均可以 } “MouseMove”事件主要處理玩家在棋盤(pán) 上棋子的移動(dòng)。 private void bt_MouseMove(object sender, e) { if (can_go != true) { = 不能走棋,請(qǐng)等對(duì)方 。 return。 } PictureBox picBox1 = (PictureBox)sender。//將被擊的賦給定義的 picBox1變量 沈陽(yáng)理工大學(xué)學(xué)士學(xué)位論文 27 int i = ()。 if (Q[i % 25] == 30 || Q[i % 25] == 29) return。 //地雷不能動(dòng) if (IsBigHome(old_x, old_y)) return。 //大本營(yíng)中棋子不能動(dòng) if (!IsMyTurn) { = 該對(duì)方走棋,請(qǐng)等對(duì)方 。 return。 } if (_isDr
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1