學到這邊,希望大家對程式語言都有基本的認識了,其實只要學會一種程式語言,要轉換到其他種都不困難,困難的是在一開始建立計算機思維的部分,因為人腦天生處理事情的方法和電腦不同,如何以電腦的邏輯去揣摩問題,解決問題是想要學習程式的人一個很重要的課題,今天我們就利用大家學過的判斷、迴圈來寫一個簡單的 1A2B 小遊戲吧。
1A2B遊戲的規則是一個人設定一組四碼的數字作為謎底,另一方猜。每猜一個數,出數者就要根據這個數字給出提示,提示以 XAYB 形式呈現,直到猜中為止。其中 X 表示位置正確的數的個數,而 Y 表示數字正確而位置不對的數的個數。
例如,當謎底為8123,而猜謎者猜1052時,出題者必須提示0A2B。[Wikipidia]
這邊附上一段遊戲的完整程式碼,這將會你們自己寫出的第一個遊戲啊哈哈哈,雖然裡面用到了一些沒教過的概念,不過沒關係,把這段程式碼複製貼上,玩玩看,然後到處改改看,你就能自己領悟出些心得。程式裡有註解會解釋每一行在做什麼。
import random
targetNum = random.sample('1234567890',4) #創建一個四位數的隨機list
print (targetNum)
#宣告布林 Flag 表示玩家尚未贏得遊戲
IsWin = False
#如果玩家未勝利則持續進行
while(not(IsWin)):
#取得使用者鍵盤輸入
userNum=list(input("輸入4個不同數字:"))
#檢查A 相同數字相同位置
a = 0
for i in range(4):
#如果位置相同且數字相同 A+1
if(targetNum[i] == userNum[i]):
a = a + 1 #A+1
#檢查B 相同數字但不同位置
b = 0
for i in range(4):
#如果數字相同且位置不相同 B+1
if(userNum[i] in targetNum and userNum[i] != targetNum[i]):
b = b + 1 #B+1
#顯示結果
print(a,"A", b, "B")
#如果 4A 遊戲勝利
if (a == 4):
IsWin = True #4A 玩家獲勝
大概就是這樣~到這個段落,我想大家對程式都已經有基本認識了,接下來的教學手法會比較偏向正常的寫法,而不是為了零基礎的人寫的,如果遇到問題隨時可以問我,我會再加進文章,也可以上網搜尋如何解決,上網查多了,看的東西、處理的情況多了,你就會變成一個優秀的程式設計師啦!