游戏名字:猜数字组合
游戏规则:从0到9给出一个特定的数字组合,每个数字只能用一次,用户可以在有限的次数内猜测数字组合,系统根据用户的输入,和组合出的数字对比给出提示,玩家在提示后分析数字的可能组合,并进行下一次猜测。如果猜中则成功,如果次数用尽还没有猜对则失败。
生成随机数字组合
使用了random中的shuffles()方法,它可以将列表里面的元素随机排列,随机排列了0到9的数字组合,取出前两位也就生成了特定了2个数字的组合.
# 数字组合的长度
COM_LENG = 2
def generate_com():
nums = list(range(10))
random.shuffle(nums)
com_num = ''
for i in range(COM_LENG):
com_num += str(nums[i])
return com_num
判断用户的输入
首先用户必须2位,且都是数字组合
def is_num(num):
# 判断输入的是否是数字
if num == "":
print("请输入内容")
return False
for j in num:
if j not in '0 1 2 3 4 5 6 7 8 9'.split():
return False
if len(num) != 2:
print("请输入两位数字的组合")
return False
return True
判断数字
根据输入的数字给出不同的提示,如果没有一个数字相同则返回一个提示,比如西瓜,如果数字相同位数不同,则返回香蕉,如果数字值和位置都对则返回苹果,将返回的值随机排列返回
def judge(num):
# 判断数字
print(num + "---" + current_num)
fruits = []
if num == current_num:
return fruits
for i in range(COM_LENG):
if num[i] == current_num[i]:
fruits.append("苹果")
elif num[i] in current_num:
fruits.append("香蕉")
if len(fruits) == 0:
fruits.append("西瓜")
random.shuffle(fruits)
return fruits
主程序
首先给出游戏的提示,判断用户输入的字段,次数用完了之后给出游戏结果
print(f"你好,我想到了一个2个数字的组合,而且两个数字不一样,来猜一猜把!,你只有{GUESS_FRE}机会")
print("你每次猜测都会得到对应的提示")
print("西瓜 没有数字相同")
print("苹果 有一个数字对的,而且位置也是对的")
print("香蕉 有一个数字对的,但是位置错的")
current_num = generate_com();
for i in range(GUESS_FRE):
guess = ''
while not is_num(guess):
guess = input()
fruits = judge(guess)
if len(fruits) == 0:
print("恭喜你猜对了")
gameFlg = False
else:
print(fruits)
if guess != current_num:
print(f"对不起你的机会用完了,正确的答案是{current_num}")
完整程序
import random
# 猜测数字组合
# 数字组合的长度
COM_LENG = 2
# 可猜测的次数
GUESS_FRE = 8
def generate_com():
nums = list(range(10))
random.shuffle(nums)
com_num = ''
for i in range(COM_LENG):
com_num += str(nums[i])
return com_num
def is_num(num):
# 判断输入的是否是数字
if num == "":
print("请输入内容")
return False
for j in num:
if j not in '0 1 2 3 4 5 6 7 8 9'.split():
return False
if len(num) != 2:
print("请输入两位数字的组合")
return False
return True
def judge(num):
# 判断数字
print(num + "---" + current_num)
fruits = []
if num == current_num:
return fruits
for i in range(COM_LENG):
if num[i] == current_num[i]:
fruits.append("苹果")
elif num[i] in current_num:
fruits.append("香蕉")
if len(fruits) == 0:
fruits.append("西瓜")
random.shuffle(fruits)
return fruits
print(f"你好,我想到了一个2个数字的组合,而且两个数字不一样,来猜一猜把!,你只有{GUESS_FRE}机会")
print("你每次猜测都会得到对应的提示")
print("西瓜 没有数字相同")
print("苹果 有一个数字对的,而且位置也是对的")
print("香蕉 有一个数字对的,但是位置错的")
current_num = generate_com();
for i in range(GUESS_FRE):
guess = ''
while not is_num(guess):
guess = input()
fruits = judge(guess)
if len(fruits) == 0:
print("恭喜你猜对了")
gameFlg = False
else:
print(fruits)
if guess != current_num:
print(f"对不起你的机会用完了,正确的答案是{current_num}")