看板 C_Sharp 關於我們 聯絡資訊
因為需要寫一個井字遊戲 物件UI都已經拉好了,老師也教了會重複X,O的方法。 UI http://ppt.cc/857k 程式碼如下 ---------------------- namespace 井字 { public partial class Form1 : Form { public Form1() { InitializeComponent(); foreach (Control G in this.Controls) { G.BackColor = Color.BlueViolet; G.ForeColor = Color.Cyan; G.Click += G_Click; } } bool flag = true; void G_Click(object sender, EventArgs e) { if (flag == true) { ((Button)sender).Text = "X"; } else { ((Button)sender).Text = "O"; } flag = !flag; } private void button12_Click(object sender, EventArgs e) { this.Close(); } private void button11_Click(object sender, EventArgs e) { // this.G_Click } } } ------------------------ button 11 預計是放 重啟遊戲 我的問題在於 現在運用 foreach 把9個 button打包成一起 然後變成一個G_Click bool的判斷我還懂因為是針對整塊下去寫的 哪假設今天我要做到如下的要求的話 1格子不能重複點擊 2判斷輸贏 3和局 4 X|O 為贏家 ------------------------------- 請問我該怎麼把她一個個作判別呢? 我覺得我個觀念還是有點不懂 有勞各位前輩M(_ _)M -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.255.79 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1412069076.A.257.html ※ 編輯: neo5277 (125.227.255.79), 09/30/2014 17:27:47
stu87616: 自己另外紀錄一個bool陣列 把哪幾個按鈕的狀態存著 09/30 17:58
stu87616: 按下時就去看那格的資料 然後做反應 09/30 17:59
指定不能用陣列~~所以這個辦法可能不行~~~ ※ 編輯: neo5277 (125.227.255.79), 09/30/2014 18:14:59
sosokill: 1.enable/disable 或判斷text是否為空 2.click的時候去 09/30 18:23
sosokill: 判斷是其他btn的狀態(同1) 3.同2 or 紀錄以點擊次數 09/30 18:25
sosokill: 4.同2的時候判斷 09/30 18:25
stu87616: 怎麼會不能用陣列? 還是你不知如何判斷是按到哪個button 09/30 22:27
stu87616: 兩招簡單的 一個是一開始就做一個9格button陣列 09/30 22:28
stu87616: 把1~9button填進去 這樣在G_Click就可以用==找是哪個 09/30 22:28
stu87616: 或是在button上動手腳,例如用Tag來存這個button的編號 09/30 22:29
可以用但是老師條件是 不能用陣列 不然這個模式用陣列比較方便 ※ 編輯: neo5277 (1.162.69.11), 09/30/2014 23:04:34
sosokill: btn上不是有btnID 照順序排好 取得btn ID就可以判斷啦 10/01 09:57
rocson: BUTTON ID 由左而右由上而下 設為: 10/01 16:11
rocson: bn11 bn12 bn13 10/01 16:11
rocson: bn21 bn22 bn23 10/01 16:11
rocson: bn31 bn32 bn33 10/01 16:12
rocson: 然後 去判斷 11-22-33 31-22-13 11-12-13 -21-22-23 等 10/01 16:14
rocson: 看 有哪個 的 按鈕 FLAG 都是相同 的勝(最簡單,最笨的方法 10/01 16:15
pkmu8426: 禁陣列 那用一堆變數 或list記狀態也一樣可行XDDDDD 10/03 11:40