有没有一种方法可以检查另一个对象中是否设置了某个对象?

2024-09-29 17:16:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想测试我的一套中的第一个数字是否和两套中的任何一套中的数字相同,然后对第二套、第三套等做同样的测试。如果第一个数字和玩家的第一套数字相同,我想让玩家能够做一个动作,但如果是敌人的那套,我希望他们去。有没有办法做到这一点

Pm1 = input("What is your knight's name?")
Pm2 = input("What is your theif's name?")
Pm3 = input("What is your doctor's name?")
Pm4 = input("What is your priest's name?")
import random
Pm1Order = random.randint(1,8) 
Pm2Order = random.randint(1,8)
if Pm2Order == Pm1Order: 
    Pm2Order = Pm1Order - 1
    if Pm2Order == 0:
        Pm2Order = Pm1Order + 1
Pm3Order = random.randint(1,8) 
if Pm3Order == Pm2Order:
    Pm3Order = Pm1Order - 2
    if Pm3Order == 0:
        Pm3Order = Pm1Order + 2
Pm4Order = random.randint(1,8)
if Pm4Order == Pm3Order:
    Pm4Order = Pm1Order - 3
    if Pm4Order == 0:
        Pm4Order = Pm1Order + 3
print("The turn orders for your party is " +str(Pm1Order)+ " for the knight, " +str(Pm2Order)+ " for the theif, " +str(Pm3Order)+ " for the doctor, and " +str(Pm4Order)+ " for the priest.")
PlayerOrder = set([Pm1Order , Pm2Order , Pm3Order , Pm4Order])
print(str(PlayerOrder))
FullOrder = set([1, 2, 3, 4, 5, 6, 7, 8])
EnemyOrder = FullOrder.difference(PlayerOrder)
EnemyOrder2 = FullOrder.difference(PlayerOrder)
print(str(EnemyOrder))
Enemy1Order = random.sample(EnemyOrder, 1)
Enemy2Order = random.sample(EnemyOrder, 1)
Enemy3Order = random.sample(EnemyOrder, 1)
Enemy4Order = random.sample(EnemyOrder, 1)
print(Enemy1Order)
AllOrder = set([Pm1Order, Pm2Order, Pm3Order, Pm4Order, Enemy1Order, Enemy2Order, Enemy3Order, Enemy4Order])
AllOrder.sort(key = int)
print(AllOrder)
####Test for first element if its player then they go if its enemey they go and 

Tags: forinputyourifis数字randomwhat
1条回答
网友
1楼 · 发布于 2024-09-29 17:16:39

使用min而不是set.sort。因为set没有任何内部排序,所以不能对它们进行适当的排序。您可以使用sorted(your_set),但是如果您所关心的只是最小的元素,那么这就是您所需要的

first_turn = min(AllOrder)

if first_turn in EnemyOrder:
    ...
elif first_turn in PlayerOrder:
    ...

相关问题 更多 >

    热门问题