標籤:
老師分配的項目需要編軟體,剛好最近一直在玩手機上的數獨,所以就想用空餘時間寫一個PC上的單機版的數獨小遊戲,練練自己的編程能力。不能保證每天都有時間花在這個小程式上面,不過會盡量堅持下去,每完成一點東西,都會把核心代碼和查到的相關資料發一下,目前還處在文法都沒學完的階段,想借這個機會記錄一下自己的成長~
一、UI 設計
1. 用 ComboBox 控制項來選擇遊戲難度;
2. 用 Label 控制項顯示本局遊戲累計用時;
3. 九宮格大背景是一個設定了背景色的 Label 控制項;
4. 每個格子都是 Textbox 控制項,將其 “Multiline” 屬性設定為 “True”,這樣就可以調整其高度了(參考連結);開始/暫停/繼續/結束遊戲時,九宮格 UI 的對應變化如下:
4.1 開始遊戲:九宮格顯示題目;
4.2 暫停遊戲:用一個單獨繪製的 Label 蓋住題目(hideLabel.Visible = true;);
4.3 繼續遊戲:隱藏用來覆蓋題目的 Label;
4.4 結束遊戲:九宮格所有 Textbox 清空。
5. 點擊“開始遊戲”按鈕之後,按鈕文字變為“暫停遊戲”,之後每次點擊此按鈕,文字會輪流顯示為“繼續遊戲”和“暫停遊戲”,另外還有“停止遊戲”按鈕。
此處需要根據按鈕文字的不同在 button_Click() 事件中調用對應的代碼,Resharper 提示將 If…Else If…Else 語句替換為 Switch 語句,突然想到了兩種語句哪一個高效的問題,於是在 StackOverflow 上搜到了這麼一個討論帖,根據討論的內容看,對於判斷條件只有三種不同值的情況,不管是用 If 語句還是 Switch 語句都是完全沒問題的啦,哈哈。
參考連結:What is quicker, switch on string or elseif on type? (討論內容非常精彩)
目前的遊戲介面:
C#程式之二 -- 數獨小遊戲(1. UI設計)