Python 如何确保在同一范围内但针对不同变量列出的两个随机整数不相同?

Python 如何确保在同一范围内但针对不同变量列出的两个随机整数不相同?,python,Python,我的任务是修改一个龙王国文字冒险游戏,让它有四个不同的洞穴。如何确保玩家不会同时进入两个洞穴 我已经尝试了几个不同的函数,包括“if”、“while”和随机库中的几个函数,虽然有时我看起来好像有进展,但在游戏中的后续重试将看到一个洞穴的代码与另一个被选中的洞穴的代码纠结在一起;例如,将显示cave1的文本,后跟cave2的文本,就好像玩家选择了cave2一样 cave1 = random.randint(1, 4) cave2 = random.randint(1, 4) cave3 = ran

我的任务是修改一个龙王国文字冒险游戏,让它有四个不同的洞穴。如何确保玩家不会同时进入两个洞穴

我已经尝试了几个不同的函数,包括“if”、“while”和随机库中的几个函数,虽然有时我看起来好像有进展,但在游戏中的后续重试将看到一个洞穴的代码与另一个被选中的洞穴的代码纠结在一起;例如,将显示cave1的文本,后跟cave2的文本,就好像玩家选择了cave2一样

cave1 = random.randint(1, 4)
cave2 = random.randint(1, 4)
cave3 = random.randint(1, 4)

if chosenCave == str(cave1):
        print('Gives you his treasure!')
if chosenCave == str(cave2):
        print('Does nothing, just exhales. He barely pays you any mind.')
        time.sleep(2)
        print('''You see he has no treasure. You decide it's not worth
        the risk to be eaten for treasure, and head home sadly.''')
if chosenCave == str(cave3):
        print('''Says, "I have no treasure. I was in the middle of a
        nice nap. Just get out of here.''')
        time.sleep(2)
        print('''You say, "Sorry...?" and leave the cave for home, confused.''')
else:
     print('Gobbles you down in one bite!')

我所要做的就是确保玩家只进入一个洞穴,其他洞穴没有显示任何文字。看到“给你他的宝藏!”之后紧接着“一口吞下你!”是不正确的。我希望看到的只是一个山洞的文字,而其他山洞则呆在原地,而不是彼此纠缠在一起,以确保在以后的尝试中不再重复这些文字。

借助
set
s,你可以做你想做的事,例如:

>>> import random
>>> choices = set()
while len(choices) < 3:
    choices.add(random.randint(1,4))

>>> cave1, cave2, cave3 = choices
>>> cave1, cave2, cave3
(2, 3, 4)
>>> 
>>随机导入
>>>选项=集合()
而len(选项)<3:
选择.add(random.randint(1,4))
>>>cave1、cave2、cave3=选项
>>>第1、2、3条
(2, 3, 4)
>>> 

希望有帮助。

使用
随机
模块中的
示例
功能

>>> cave1, cave2, cave3 = random.sample(range(1, 5), 3)

另外,修改代码,使第一条语句后面的每条
if
语句都是
elif
,否则最后一条
if
语句的
else
将在大部分时间运行(只要
chosenCave!=str(cave3)
).

将第一次
if
之后的所有
if
更改为
elif
a.k.a,否则如果。用你的代码,
一口就把你吞下chosenCave
不等于
str(cave3)
的所有情况,都会打印code>。