【python----发轫之始】【猜数字小游戏】

import random
import os.path
from datetime import datetime


def guide_page(guide_word):
    print("*"*30, guide_word, "*"*30)


def all_num(n):
    while True:
        if n.isdigit():
            return int(n)
        n = input("您输入的不是数字,请重新输入:")


def check_num_legal(n, a, b):
    if a <= n <= b:
        return True
    return False


if __name__ == '__main__':
    guide_page("欢迎进入数字猜猜猜小游戏")

    begin = all_num(input("请输入数字起始值:"))
    end = all_num(input("请输入数字终止值:"))
    if begin == end:
        print("您输入的数字相同!!请重新启动程序。")
    else:
        v = random.randint(begin, end)
        times = 0
        base_path = os.path.dirname(os.path.abspath(__file__))
        record_path = os.path.join(base_path, 'record')
        with open(record_path, 'w', encoding='utf-8') as f:
            s = all_num(input("请输入您猜测的数字:"))
            f.write("{0} 您第1次猜测的值为:{1}\n".format(str(datetime.now()), s))
            while True:
                times += 1
                if check_num_legal(s, begin, end):
                    if s < v:
                        print("Lower than the answer")
                    elif s > v:
                        print("Higher than the answer")
                    else:
                        print("恭喜您!只用了{0}次就赢得了游戏".format(times))
                        f.write("恭喜您!只用了{0}次就赢得了游戏".format(times))
                        break
                else:
                    print("您输入的数字不在指定区间,请您输入合法数字。")
                print("*"*50)
                s = all_num(input("请继续输入您猜测的数字:"))
                f.write("{0} 您第{2}次猜测的值为:{1}\n".format(str(datetime.now()), s, times+1))

 

posted @ 2020-05-26 22:10  Vincent&  阅读(223)  评论(0编辑  收藏  举报