1. 程式人生 > >看一本python書,猜數字遊戲是入門,然後就自己寫了下

看一本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()

共同學習