编程语言爱好者大数据 爬虫Python AI SqlPython高效编程

Python 实现猜数游戏(基础版)

2019-01-20  本文已影响2人  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()
上一篇下一篇

猜你喜欢

热点阅读