七颜ゎ 2022-10-13 10:15 采纳率: 100%
浏览 57
已结题

设计一个猜成语小游戏

import random
规则
1.词库中有10个成语
2.随机显示被打乱成语
3.用户有三次机会,用户将正确顺序打出来则为成功
idioms = ['无与伦比', '始终如一', '一如既往', '忍辱负重', '一无是处', '心心念念', '水深火热', '人来人往', '成家立业', '古今中外']
print(rule)
print("欢迎参加猜成语游戏!\n请把乱序后的字词组成一个成语\n")
cotinue = "Y" # 第二次进入游戏时默认选择为Y
while cotinue in ("Y", "y"): # 控制循环的按键
idiom = random.choice(idioms) # 在idioms中随机选择一个成语
answer = idiom # 保存成语
jumble = "" # 将选出的成语进行乱序
for i in idiom:
# 随机抽取一个位置的字词放入乱序jumble中,并从原idiom中删除该字
position = random.randrange(len(idiom)) # position 为不大于被选中字词的个数的随机数,len测试字符长度
jumble += idiom[position] # 两个值相加,返回给 符号左侧的变量
print("乱序后的成语:", jumble)
# 接受玩家猜的成语
guess = input("请输入你猜测的结果:")
count = 1
while guess != answer:
guess = input("猜错了,再猜:")
count = count + 1 # 计数累加
if count >= 3:
print("三次机会用完了")
break # 退出
cotinue = input("是否继续?(继续游戏按:Y,退出按任意键)")

print("谢谢参与,欢迎下次再玩!")

img

img

img


修改部分代码,只需要让成语四个字乱序,不需要列表的切片化

  • 写回答

6条回答 默认 最新

  • CSDN专家-showbo 2022-10-13 11:09
    关注

    转数组shuffle打乱不行吗?randrange直选选其中一个,可能会出现重复值,代码有问题。

    不转数组只能是replace从字符串中去掉了

    import random
    idioms = ['无与伦比', '始终如一', '一如既往', '忍辱负重', '一无是处', '心心念念', '水深火热', '人来人往', '成家立业', '古今中外']
    #print(rule)
    print("欢迎参加猜成语游戏!\n请把乱序后的字词组成一个成语\n")
    cotinue = "Y" # 第二次进入游戏时默认选择为Y
    while cotinue in ("Y", "y"): # 控制循环的按键
        idiom = random.choice(idioms) # 在idioms中随机选择一个成语
        answer = idiom # 保存成语
        jumble = "" # 将选出的成语进行乱序
       
        while len(idiom):#还有没随机的字符继续
            position = random.randrange(len(idiom))
            jumble += idiom[position]
            idiom=idiom.replace( idiom[position],'',1)#从字符串移除
        print("乱序后的成语:", jumble)
        # 接受玩家猜的成语
        guess = input("请输入你猜测的结果:")
        count = 1
        while guess != answer:
            guess = input("猜错了,再猜:")
            count = count + 1 # 计数累加
            if count >= 3:
                print("三次机会用完了")
                break # 退出
        cotinue = input("是否继续?(继续游戏按:Y,退出按任意键)")
    
    print("谢谢参与,欢迎下次再玩!")
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 创建了问题 10月13日

悬赏问题

  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥15 QT6颜色选择对话框显示不完整
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥15 DS18B20内部ADC模数转换器