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

正文內(nèi)容

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

2025-07-02 08:29本頁面

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

  

【正文】 ]及相應(yīng)的圖片,但 Visible=false 讓其不可見。 “保存布局 ”、 “讀取布局 ”、 “開始對戰(zhàn) ”、 “重新開始 ”4 個按鈕設(shè)為不用。 private void Form1_Load(object sender, e) { Pic_Width = 。 //棋盤大小 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)處沒放置棋子 qi_index()。 //棋子編號并設(shè)置對應(yīng)棋子含義 begin_pos(2)。 //加載不可見棋子 = false。 //保存布陣按鈕 = false。 //讀取布陣按鈕 = false。 //開始對戰(zhàn)按鈕 = false。 //重新開始按鈕 } private void qi_index() { Q = new int[25]。 Q[0] = 29。 //軍旗 29 Q[1] = 30。 Q[2] = 30。 Q[3] = 30。//地雷 30 沈陽理工大學(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。//排長 33 Q[12] = 34。 Q[13] = 34。 Q[14] = 34。//連長 34 Q[15] = 35。 Q[16] = 35。//營長 35 Q[17] = 36。 Q[18] = 36。//團(tuán)長 36 Q[19] = 37。 Q[20] = 37。//旅長 37 Q[21] = 38。 Q[22] = 38。//師長 38 Q[23] = 39。//軍長 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個棋子 { 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) { 沈陽理工大學(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。 } } 棋子控件的四個事件 以下是棋子控件的四個事件: “Click”、 “MouseMove”、 “MouseUp”、 “_MouseDown”。“Click”單擊事件主要處理玩家在棋盤上棋子布局功能。 private void bt_Click(object sender, e) //這里處理單擊事件過程 { int x1, y1。 PictureBox picBox1 = (PictureBox)sender。 int i = ()。 沈陽理工大學(xué)學(xué)士學(xué)位論文 25 //轉(zhuǎ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)//沒有棋子 { MoveChess(Map[old_x, old_y], x1, y1)。 Map[old_x, old_y] = 101。 } else //對調(diào)棋子 { MoveChess(Map[old_x, old_y], x1, y1)。 MoveChess(i, old_x, old_y)。 } else //=不能改變原有布局 。 (第一排不允許放置炸彈,放置地雷在后兩排,軍旗只能在大本營 , 違反軍旗布局規(guī)則 )。 } } private void MoveChess(int idx, int x, int y)//移動棋子 //idx棋子索引號,( x,y)目標(biāo)位置 { Qizi_Pic[idx].Left = (x 1) * r + 10。 Qizi_Pic[idx].Top = (y 1) * r + 10。 Map[x, y] = idx。 } 沈陽理工大學(xué)學(xué)士學(xué)位論文 26 private bool Layout_Juge(int old_x, int old_y, int x1, int y1) //判斷布局棋子的位置是否適當(dāng) { //第一排不允許放置炸彈,第 1, 2, 3, 4排不允許放置地雷, //自己的軍旗只能放置在大本營 //炸彈控件編號 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,只能放置在大本營 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,只能放置在大本營 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”事件主要處理玩家在棋盤 上棋子的移動。 private void bt_MouseMove(object sender, e) { if (can_go != true) { = 不能走棋,請等對方 。 return。 } PictureBox picBox1 = (PictureBox)sender。//將被擊的賦給定義的 picBox1變量 沈陽理工大學(xué)學(xué)士學(xué)位論文 27 int i = ()。 if (Q[i % 25] == 30 || Q[i % 25] == 29) return。 //地雷不能動 if (IsBigHome(old_x, old_y)) return。 //大本營中棋子不能動 if (!IsMyTurn) { = 該對方走棋,請等對方 。 return。 } if (_isDr
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1