найти стратегии, чтобы играть в игру - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь создать цикл для игры.

Я хочу сопоставить, если кортеж возвращает значение, как указано, результатом должно быть признание или не признание.Давайте назовем их выплатой.Но в следующем тестовом коде он возвращает (0, 0), так как признание, которого не было в исходном списке, возвращает признание.

Dont confess: (-1, -1) 
Confess : (-10, 0)
Confess : (0, -10)
Dont Confess: (-10, -10)


dntCon=(-1, -1) 
conf=(-10, 0)
confess=(0, -10)
DntConff=(-5, -5)

import random 
from random import shuffle
from random import sample


x = [-1, -10, 0, -5]
y = [-1, 0, -10, -5]

#print(sample(list, len(list)))

for m in range(0, 3): 
    x=random.sample(x, len(x))
    y=random.sample(y, len(y))
    #print(x, y)

    for i in x:
        #print(i)
        for j in y:
            #print(i, j)
            if(i ==-1 & j==-1 ):
                print(i, j, "ncoo")
                #print( i, j,'')
            elif (i==-10 & j==0): 
                print(i, j, 'Confess')
            elif (i==0 & j==-10):
                print(i, j, 'Confess')
            elif (i==-10 & j==-10):
                print(i, j, 'ncoo')
            else:
                "not met"

Результаты

(0, 0, 'Confess')
    (-10, -10, 'ncoo')
    (-10, -1, 'ncoo')
    (-1, -1, 'ncoo')
    (0, 0, 'Confess')
    (-10, -10, 'ncoo')
    (-10, -1, 'ncoo')
    (-1, -1, 'ncoo')
    (-10, -1, 'ncoo')
    (-10, -10, 'ncoo')
    (-1, -1, 'ncoo')
    (0, 0, 'Confess')

Почему этот цикл возвращает (0, 0) как признание, что не соответствует моим критериям

1 Ответ

0 голосов
/ 15 февраля 2019

В питоне есть небольшая разница между '&' и 'и'.Перейдите по этой ссылке, чтобы проверить Разница между 'и' (логическим) и '&' (поразрядной) в python.Почему разница в поведении со списками и массивами? Попробуйте этот код:

Dont_confess: (-1, -1)
Confess : (-10, 0)
Confess : (0, -10)
DontConfess: (-10, -10)


dntCon=(-1, -1) 
conf=(-10, 0)
confess=(0, -10)
DntConff=(-5, -5)

import random 
from random import shuffle
from random import sample


x = [-1, -10, 0, -5]
y = [-1, 0, -10, -5]

#print(sample(list, len(list)))

for m in range(0, 3): 
    x=random.sample(x, len(x))
    y=random.sample(y, len(y))
    #print(x, y)

    for i in x:
        #print(i)
        for j in y:
            #print(i, j)
            if(i ==-1 and j==-1 ):
                print(i, j, "ncoo")
                #print( i, j,'')
            elif (i==-10 and j==0):
                print(i, j, 'Confess')
            elif (i==0 and j==-10):
                print(i, j, 'Confess')
            elif (i==-10 and j==-10):
                print(i, j, 'ncoo')
            else:
                "not met"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...