# 猜數字 ## 需求擷取 一個你一定玩過的猜數字遊戲。 ## 需求分析 1.輸入一個不重複的三位數 2.告知數字正確且位置正確數(A)數字正確但位置錯誤數(B) ### 使用案例 ```plantuml skinparam actorStyle awesome :User: --> (輸入3個不重複的數字) :App: --> (計算幾A幾B) :User: --> (得到幾A幾B) :App: --> (給出幾A幾B) ``` ### 使用者故事 以前上課無聊常常跟同學玩的遊戲,突然想要回味跟以不同的方式呈現,以前都是人對人,現在變成人對電腦,而且還要記得你前面輸入過甚麼才可以猜出數字,**這是一個挑戰**。 ## 流程圖 ```flow st=>start: 開始 e=>end: 結束 op=>operation: 計算數字是否正確 op2=>operation: 0A0B op3=>operation: 0A1B op4=>operation: 0A2B op5=>operation: 0A3B op6=>operation: 1A0B op7=>operation: 1A1B op8=>operation: 1A2B op9=>operation: 2A0B op10=>operation: 3A0B cond=>condition: 3個全錯 cond2=>condition: 1個數字正確但位置錯誤 cond3=>condition: 2個數字正確但位置錯誤 cond4=>condition: 3個數字正確但位置錯誤 cond5=>condition: 1個數字位置正確 cond6=>condition: 1個數字位置正確1個數字正確位置錯誤 cond7=>condition: 1個數字位置正確2個數字正確位置錯誤 cond8=>condition: 2個數字位置正確 cond9=>condition: 3個數字位置正確 AB=>inputoutput: 輸入數字 st->AB->op->cond9 cond9(yes)->op10->e cond9(no)->cond8 cond8(yes)->op9->e cond8(no)->cond7 cond7(yes)->op8->e cond7(no)->cond6 cond6(yes)->op7->e cond6(no)->cond5 cond5(yes)->op6->e cond5(no)->cond4 cond4(yes)->op5->e cond4(no)->cond3 cond3(yes)->op4->e cond3(no)->cond2 cond2(yes)->op3->e cond2(no)->cond1 cond(yes)->op2->e ``` ## UI元件說明 ### UI使用者界面  ### 元件說明 - 標籤 幾A幾B:標題猜數字 - 標籤 標籤1:標題請輸入不重複的三位數 - 文字輸入盒:輸入數字 - 開始:開始執行 - 標籤 數字:顯示你所輸入的數字並表示幾A幾B ## 程式截圖      ## 結論心得 這次的報告對我來說是一大挑戰,因為我本身寫程式的邏輯能力不是很好,所以很多部分都會卡住,但跟我高一時相比,已經進步了非常多。判斷幾個A跟幾個B的地方會用到沒有學過的東西,所以有上網找了一下每個人的解法跟想法,再用我的方式把它做出來,這部分花費了我很多時間。 ### 1.程式說明 打開遊戲時隨機生成一個不重複的三個數字,接著可以在文字輸入盒輸入一個3位數,如果輸入一個有重複數字或是非3位的數字,他會清空並告知需要重新輸入一個不重複的3位數。輸入一個正確的數字之後,程式就會判斷是幾A幾B,並說明你輸入的數字是幾A幾B,最後結果正確會顯示出答案正確。 ### 2.遇到的問題 1. 這個需要用上許多變數去編輯,所以有時候會亂掉。 2. 要判斷幾個A跟幾個B那部分耗了我已大半的時間,這裡我有上網找資料去了結要如何判斷以及流程該走,最後還是有順利做出來,但是要判斷B的那個部分一開始一直顯示錯誤,花了幾節課才找到問題。 ## 遊戲說明 https://youtu.be/wBUe7mydDO0
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up