guess.py 1.2 KB
Newer Older
骆昊的技术专栏's avatar
骆昊的技术专栏 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
"""
面向对象版本的猜数字游戏

Version: 0.1
Author: 骆昊
Date: 2018-03-08
"""

from random import randint


class GuessMachine(object):

J
jackfrued 已提交
14 15 16 17
    def __init__(self):
        self._answer = None
        self._counter = None
        self._hint = None
骆昊的技术专栏's avatar
骆昊的技术专栏 已提交
18

J
jackfrued 已提交
19 20 21 22
    def reset(self):
        self._answer = randint(1, 100)
        self._counter = 0
        self._hint = None
骆昊的技术专栏's avatar
骆昊的技术专栏 已提交
23

J
jackfrued 已提交
24 25 26 27 28 29 30 31 32 33
    def guess(self, your_answer):
        self._counter += 1
        if your_answer > self._answer:
            self._hint = '小一点'
        elif your_answer < self._answer:
            self._hint = '大一点'
        else:
            self._hint = '恭喜你猜对了'
            return True
        return False
骆昊的技术专栏's avatar
骆昊的技术专栏 已提交
34

J
jackfrued 已提交
35 36 37
    @property
    def counter(self):
        return self._counter
骆昊的技术专栏's avatar
骆昊的技术专栏 已提交
38

J
jackfrued 已提交
39 40 41
    @property
    def hint(self):
        return self._hint
骆昊的技术专栏's avatar
骆昊的技术专栏 已提交
42 43 44


if __name__ == '__main__':
J
jackfrued 已提交
45 46 47 48 49 50 51 52 53 54 55 56
    gm = GuessMachine()
    play_again = True
    while play_again:
        game_over = False
        gm.reset()
        while not game_over:
            your_answer = int(input('请输入: '))
            game_over = gm.guess(your_answer)
            print(gm.hint)
        if gm.counter > 7:
            print('智商余额不足!')
        play_again = input('再玩一次?(yes|no)') == 'yes'