题目5 数字猜猜猜
背景:
益智类小游戏对于同学们放松心情,调整心态,积蓄力量,再潜心学习
需求描述:
启动程序,用户根据提示输入几位不重复数字,系统给出XAXB的结果判断,直到用户选择退出或猜对为止,系统提示猜测次数,并提示用户新开一局。用户选择开始新的游戏或者退出。
import random # 调用函数
list1 = [1234,4567,5678,6789]
result = random.choice(list1) # 随机列表中的一个数字
def count(guess, result): # 计算A,B的数量
guess = str(guess) # 将数字转换成字符串
result = str(result)
numA = 0
numB = 0
for i in range(4):
if guess[i] == result[i]: # 当相同位置上有相同的数字时,A的数量加1
numA += 1
elif guess[i] in result: # 当位置上的数字不相同时,判断在其他位置上是否有该数字,B的数量加1
numB +=1
sum = str(numA)+str(numB)
return sum
def check(guess): # 判断猜测数据是否符合要求
if guess in range(1000, 10000): # 判断数字是否是4位数
guess = str(guess)
for i in range(4):
a = guess[i]
for j in range(i+1, 4):
if a == guess[j]:
print("数字不能有重复的")
return 2
print("数字符合要求")
return 1
else:
print("数字有效位数为4位")
return 3
n = 0
while True:
n = n+1
guess = int(input("请输入猜测的数字(四位有效数字,不能重复):")) # 用户输入
if check(guess) == 1: # 进行判断
num = count(guess, result)
if int(num[0]) == 4:
print("恭喜你,猜中了:", guess, n, '次') # 判断成功,输出次数
print('是否重新开始游戏,或者退出。Y继续N退出')
select = input("请输入你的选择:") # 用户输入是否继续
if select != "N": # 进行判断用户输入是否为N,如果是N则退出游戏,否则重新开始
continue # 重新开始游戏
else:
print('游戏结束')
break
else:
print("错误,请重新输入:", int(num[0]), "A", int(num[1]), "B") # 判断用户输入错误,进行 提醒
else:
print("猜测的数字不符合要求,请重新输入") # 提醒用户输入错误
如有问题或建议欢迎评论或私信。