先放代码:
import sys
import random
from datetime import datetime
l1 = []
def guide_page(guide_word):
"""
提示玩家进入游戏
:param guide_word:
:return: None
"""
print("**************{}************".format(guide_word))
def all_num(n):
"""
判断指定的值是否为数字
:param n:
:return: True or False
"""
if n.isdigit() == True:
return True
else:
print("您所输入的为非数字字符,请重新启动!")
sys.exit()
def num_legal(ls):
"""
判断指定序列中的数值是否相等
记录数字区间起始位置的值是否大于记录数字区间终止位置的值
:param ls: 数字区间列表
:return: 满足条件返回1,不满足退出程序
"""
if ls[0] == ls[1]:
print("您输入的区间数字相同!!请重新启动程序")
sys.exit()
elif ls[0] > ls[1]:
print("您输入的区间数字大小有误!!请重新启动程序")
sys.exit()
else:
return 1
def set_final_num(num1, num2):
"""
产生一个位于区间内的随机数
:param num1: 区间左端点
:param num2: 区间右端点
:return: 随机数的值
"""
global l1
l = []
l.append(num1)
l.append(num2)
l1 = list(filter(all_num, l))
l1[0] = int(l1[0])
l1[1] = int(l1[1])
if num_legal(l1) == 2:
print("所产生的随机数字区间为:" + "[" + str(l1[0]) + "," + str(l1[1]) + "]")
right_number = random.randint(l1[0], l1[1])
return right_number
else:
print("您所输入的为非数字字符,请重新启动!")
sys.exit()
def check_num_legal(num):
"""
判断所输入的数值是否在指定的区间
:param num: 输入数值
:return: 是返回1 否返回0
"""
global l1
# print(l1)
if num < l1[0] or num > l1[1]:
return 0
else:
return 1
def write_record(times, value):
"""
写入日志
:param times: 猜测次数
:param value: 猜测的数字
:return: None
"""
now_time = datetime.now()
str1 = now_time.strftime("%Y-%m-%d %H:%M:%S")
with open("record.txt", 'a') as f:
f.write(str1 + ": 第" + str(times) + "次您猜测的数字为:" + str(value) + "\n")
def main(rand1):
"""
主函数
:param rand1: 产生的随机数
:return: None
"""
cnt = 1 # 猜测数字的次数
temp = rand1
# print(temp)
while True:
num = int(input("请继续输入您猜测的数字:"))
print("*************")
if check_num_legal(num) == 0:
print("对不起您输入的数字未在指定区间!!!")
continue
if num > temp:
print("Higher than the answer")
write_record(cnt, num)
cnt += 1
elif num < temp:
print("Lower than the answer")
write_record(cnt, num)
cnt += 1
else:
print("恭喜您! 只用了{}次就赢得了游戏".format(cnt))
write_record(cnt, num)
sys.exit()
if __name__ == '__main__':
word = "欢迎进入数字猜猜猜小游戏"
guide_page(word)
i = input("数字区间起始值:")
j = input("数字区间终止值:")
right_number = set_final_num(i, j)
main(right_number)
未完待续。。。