看一本python书,猜数字游戏是入门,然后就自己写了下

水平不高,就想写一写,功能实现了,但不完善,如果乱输入就会出现问题,后续再把代码完善下,今天没时间了,贴上代码,共同学习。兼容版本3和2均可以直接拿代码测试。

#coding:utf-8

# 这是一个猜数字游戏
import random
import sys 

class GuessNum(object):
    def __init__(self):
        print("欢迎来到猜数字游戏:你可以在1到20之间选一个数字,通过我给的提示,在6次中猜到,你就赢了")                                                                                     
        self.times = 0
        self.answer = random.randint(1,20)
        self.sucess = 2

    def guess(self, num):
        if not self.check_times():
            print("你失败了")
            return False
        if num == self.answer:
            print("good 你赢了")
            return self.sucess
        elif num < self.answer:
            print("你输入的数值小了")
            self.times += 1
            return True
        elif num > self.answer:
            print("你输入的数值大了")
            self.times += 1
            return True

    def check_times(self):
        if self.times < 6:
            return True
        else:
            return False

def deal_str(_str):
    sstr = _str.lower()
    if sstr == 'n':
        return False
    elif sstr == 'y':
        return True
    else:
        print("error")
        return False
def play_again():
    if sys.version_info.major > 2: #兼容版本2和3
        y_n = input("游戏结束了, 还想玩吗:Y/N")                                                                                                                                          
    else:
        y_n = raw_input("游戏结束了, 还想玩吗:Y/N")
    #y_n = input("游戏结束了, 还想玩吗:Y/N")
    again = deal_str(y_n)
    if again:
        start()
    else:
        return False

def start():
    game = GuessNum()
    num = int(input("输入你给的数吧:"))
    result = game.guess(num)
    while True:
        if result == game.sucess:
            play = play_again() 
            if not play:
                break
        elif result:
            num = int(input("请再尝试:"))
            result = game.guess(num)
        else:
            play = play_again()
            if not play:
                break
            
if __name__ == '__main__':
    start()

共同学习

猜你喜欢

转载自blog.csdn.net/qq_37347705/article/details/81985681