猜数字XAXB类型

题目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("猜测的数字不符合要求,请重新输入")  # 提醒用户输入错误

如有问题或建议欢迎评论或私信。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值