设计一个猜成语小游戏

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


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

转数组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("谢谢参与,欢迎下次再玩!")

from random import shuffle
def shuffle_str(s):
    # 将字符串转换成列表
    str_list = list(s)
    # 调用random模块的shuffle函数打乱列表
    shuffle(str_list)
    # 将列表转字符串
    return ''.join(str_list)

现在的代码不就是成语四个字乱序,也没有列表切片操作啊

使用random的shuffle函数就可以了,可以参考我的博文
通过游戏编程学Python(番外篇)— 乱序成语、猜单词_请叫我问哥的博客-CSDN博客

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632