Python 實現猜數遊戲(基礎版)

··· Python高效編程
這一節,我們介紹如何使用 Python 實現簡單的猜數遊戲。
首先是打印菜單的功能:1.開始遊戲 2.結束遊戲。
其次,生成隨機邊界(右邊界爲:100~2000)的隨機數。
其次是提示猜數範圍,比較用戶輸入的數值與猜測的數值,縮小提示範圍。
猜錯數字,程序會一直執行。猜對數字,程序將回到主界面。

import random
import math

# Python高效編程
def menu():
    print('-' * 30)
    print('Python高效編程\n')
    print('歡迎來到猜數遊戲')
    print('1.開始遊戲')
    print('2.結束遊戲')
    print('-' * 30)


class GuessNum:
    random_choice = [i * 100 for i in range(1, 20)]

    def __init__(self):
        self.guess_range = None
        self.guess_num = None
        self.left = None
        self.right = None
        self.random_num()

    def init_range(self):
        self.left = 1
        self.right = self.guess_range

    @property
    def _random_range(self):
        return random.choice(self.random_choice)

    def random_num(self):
        self.guess_range = self._random_range
        self.guess_num = random.randint(1, self.guess_range)
        self.init_range()

    def user_choice(self, choice):
        if choice == '1':
            print('數值的範圍是:{}-{}'.format(self.left, self.right))
            user_num = input('請輸入你猜測的數值:')
            flag = self.guess(user_num)
            return flag

        elif choice == '2':
            exit()

    def guess(self, num):
        flag = 0
        num = math.floor(float(num))
        if self.guess_num == num:
            print('恭喜你猜中了:{}'.format(self.guess_num))
            flag = 1
        elif self.guess_num > num:
            if num > self.left:
                self.left = num
            print('猜小了')
        elif self.guess_num < num:
            if num < self.right:
                self.right = num
            print('猜大了')
        return flag

# Python高效編程
def main():
    menu()
    game = GuessNum()
    choice = input('請輸入你的選擇:')
    while True:
        flag = game.user_choice(choice)
        if flag:
            main()


if __name__ == '__main__':
    main()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章