程式碼:僅列出主要撰寫部分
設計概念為顯示各種顏色混和,勾選欲混和的顏色按下Mix就會出現相對應之顏色
模擬啟始狀態
勾選藍色時顯示藍色
勾選紅色時顯示紅色
勾選黃色時顯示黃色
紅色+藍色 = 紫色
黃色+藍色 = 綠色
紅色+黃色 = 橘色
紅色+藍色+黃色 = 黑色
都無動作且按下Mix時
原本是想寫一個加法計算功能的程式,但苦於不知道如何讓PDA去辨認輸入的值當成一個變數只好作罷,後來改寫這個顏色混合的程式,原本是在主程式宣告兩個變數a、b並且設定當有勾選或無勾選時a=1~6,而b=1~5設計為當a同時為一個以上變數所代表的可能性(例如同時勾選藍以及黃),模擬出來的結果是可以顯示單獨以及混合出來的顏色,但是卻有一個BUG,當顏色呈現為混合的顏色時,而後再去單獨勾選顯示紅黃藍一種顏色圖形卻無法顯示,至今我還想不出為什麼,最後我改用最原始的方法,不宣告變數,僅在Button列的程式碼列出各種情況並針對每一種情況去讓程式作反應,果然這種方法就能把所有的情況都顯示出來。
辨認輸入的值好像有一個readline()的用法。
回覆刪除GOOGLE一下 "c# readline()" 就會有一些說明
你一開始的想法b應該只有1~4吧(紫、綠、橙、黑),你如果只用2個變數控制迴圈可能要改成用for,這樣程式才會一直去判斷你現在a、b的值,還是要看一下你原始程式碼我才知道。
你現在的作法也可以改良一下,用if、elseif跟else,讓程式先判斷藍色勾選沒,假如有再看看有沒有勾其他的,如果沒有再判斷紅色,紅色有就看看有沒有黃,假如也沒紅再判斷有無黃;這樣做的好處是你的程式不用每次執行都把所以情況都跑一遍,可以提昇執行速度,當然一定還有更好的辦法,這就是寫程式的經驗跟技巧。
b1~4(紫、綠、橙、黑)以外,我還預設一種都不勾選按下MIX的label會顯示"Nothing"情況,所以才設為5。
回覆刪除另外我會研究一下 for迴圈還有 if、else if的寫法,如你所說程式當然是越精簡越好(前提是同樣效能),每失敗一次就越往目標前進一次。
感謝指導。