python游戏2-猜数字组合

16 篇文章 2 订阅

游戏名字:猜数字组合

游戏规则:从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}")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
猜数字游戏是一种玩家与电脑进行互动的游戏,在游戏开始时,电脑会随机生成一个1-1000之间的数字作为答案。然后玩家通过键盘输入猜测的数字,电脑会根据玩家的猜测给出相应的提示,提示玩家猜的数字是太大了还是太小了,直到玩家猜中答案或者猜测次数达到上限。如果玩家猜中了答案,游戏结束并给出恭喜的提示,如果猜测次数达到上限,游戏也会结束并给出相应的提示。 以下是一个Python猜数字游戏的示例代码: ```python import random def guess_number(): answer = random.randint(1, 1000) chances = 10 print("游戏规则:") print("1、随机生成一个1-1000之间的数。") print("2、10次猜数字的机会,如果没有猜正确,游戏结束。") print('3、输入字母"q",则退出游戏。') print() for i in range(chances): print(f"第{i + 1}次猜数字") guess = input("请输入[1-1000]之间的数字:") if guess.isdigit(): guess = int(guess) if guess < answer: print(f"您输入的数字太小了,您还有{chances - i - 1}次机会,请重新输入:") elif guess > answer: print(f"您输入的数字太大了,您还有{chances - i - 1}次机会,请重新输入:") else: print(f"你只用了{i + 1}次就猜对啦,好腻害呀~") break elif guess == "q": print("退出游戏!") break else: print("输入的内容必须为整数,请重新输入:") if i + 1 == chances: print("您输入已经超过10次,游戏结束!") guess_number() ``` 这个示例代码中,我们使用了`random`模块来随机生成一个1-1000之间的数字作为答案。在每次循环中,根据玩家的猜测与答案的比较给出相应的提示,同时记录猜测的次数。如果玩家猜中答案,输出恭喜的提示并结束游戏;如果玩家输入"q",则退出游戏;如果猜测次数达到上限,输出游戏结束的提示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的天才女友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值