changed 3 years ago
Linked with GitHub

Python實作課程

第一堂課 : 猜數字遊戲

2022 / 3 / 24

Tony


硬體設備


學校可以寫python的編輯器是Spyder
左方為撰寫程式的地方,右下方為終端機


猜數字遊戲


猜數字遊戲(Guess the number) a.k.a 終極密碼
是一個在特定數字範圍內
猜到出題者所指定數字的遊戲
每次的猜測都會讓範圍縮小,直到答案被猜到


遊戲規則

(即程式要實現的東西)


  • 由兩個一大一小的數字劃出範圍
  • 有唯一的答案
  • 依照每次猜的數字來縮減範圍
    • 若猜的數字小於答案,則下界變成該數字
    • 若猜的數字大於答案,則上界變成該數字
  • 如果猜到上下界重疊,則玩家自動獲勝
  • 若下屆的數字大於上界(意外),則出題者輸掉遊戲

開始寫程式


你可以下載模板:點我

主要要寫的三個函式:

  1. 主程式 (幫你寫好了)
  2. 猜數字函式 I (電腦出題使用者猜)
  3. 猜數字函式 II (使用者出題電腦猜)

課堂上會寫猜數字函式I,猜數字函式II的部份各位有興趣可以自己寫寫看
參考答案下禮拜會公布

def guess(x) #電腦出題 def computer_guess(x) # 使用者出題 if __name__ == '__main__':

主函式

Python沒有強迫要有像C++int main()的函式,通常就是直接運行你打出的程式碼(函式除外)
但也可以自己創造出主函式,利用if __name__ == '__main__':
可以幫助整理程式碼,看起來比較整齊,也會知道哪些程式會跑哪些不會

if __name__ == '__main__': # 裡面塞主要運行的部分

猜數字函式 I

(電腦出題使用者猜)


程式執行程序:

  1. 選擇範圍(1 ~ 一個數字x)
  2. 使用者輸入猜測的數字(不包括1跟x)
  3. 電腦給出回覆:
    • 高於答案
    • 低於答案
    • 等於答案
  4. 重複 2 跟 3 直到猜中答案

使用工具:random
我們模擬電腦在選答案,或是在猜測答案的時候,都是讓它在一個範圍內隨機選一個數字
故我們要利用random資料包裡面的random.randint()函式,隨機挑出一個數字

import random # 輸入這個就可以把random資料包引入這個函式 # 類似 C++ 的 include 的概念

f string
我們需要在輸出的字串中放入程式中某些變數的內容,
此時就可以使用f string,把變數內容用大括號包起來

high = 100 low = 10 print(f'Guess a number bgetween {low} and {high}') # 輸出 : Guess a number between 10 and 100

下一頁是完整的code內容
想挑戰自己寫的先不要往下看


import random def guess(x): answer = random.randint(1+1, x-1) guess = 0 low = 1 high = x while guess != answer: guess = int(input(f'Guess a number between {low} and {high} :')) if guess < answer: print('Sorry, guess again. Too low.') low = guess elif guess > answer: print('Sorry, guess agin. Too high.') high = guess print(f'Congratulation! You got the right number : {answer}.')
Select a repo