設計一個「猜數字」遊戲,並提示:
A「幾個數字是對的,且位置也是對的」;
B「幾個數字是對的,但位置不對」。一直到猜中為止。
1、先建立程式介面:
2、程式執行畫面:
輸入4位數字後,會跳出「對話框」顯示提示,告知幾A幾B!猜對後,出現「你猜對了」訊息。
(因為一直猜不中,所以底下沒有猜中畫面><||b)
3、建立程式拼塊:
宣告變數
主程式置於「確定輸入」按鈕事件 :
第1個函式(程序),將猜測值拆成4個獨立的數字,並放置於清單中,以利比對每1個數字。
第2個函式(程序),比對位置正確且數字正確的數字,利用For迴圈將「答案target」及「猜測值guess」2個清單中,每一個相同位置的數字做比對,當相等時,則將變數「數字對_位置對_A」累加 1 。即可得到A的個數。
第3個函式(程序),比對數字正確,但位置不一定正確的數字,利用For迴圈將每1個「答案target」清單中的數字,於「猜測值guess」清單中,進行逐一比對。當相等時,則將變數「數字對_位置錯_B」累加 1 。
即可知道,「答案target」清單中的每個數字,有沒有存在於「猜測值guess」清單中,但其中會包含位置也正確的數字。
所以,最後需要將變數「數字對_位置錯_B」減去前面比對所得的「數字對_位置對_A」,
才是真正的「數字對_位置錯_B」的值。
第4個函式(程序),輸出提示結果,並重新猜測數字。如果「數字對_位置對_A」等於4則全部猜對。
否則,跳出文字輸入對話框,並同時給予幾A幾B的提示,讓使用者繼續輸入「猜測數字」。
「對話框」輸入完成事件,玩家再次輸入數字時,因原「答案target」未改變,
所以,再次呼叫前面4個函式(函式)進行答案比對。