ROCK = 0 # именно целые числа, именно подряд, и именно начиная с нуля
PAPER = 1
SCISSORS = 2
VICTORY = [
# номер строки - ход игрока 1,
# номер столбца - ход игрока 2
# значение - какой игрок победил
#к, н, б
[0, 1, 2], # камень
[2, 0, 1], # ножницы
[1, 2, 0], # бумага
]
# задаём ходы игроков - у тебя эти значения придут из бота, я так понимаю
player1 = random.choice([ROCK, PAPER, SCISSORS])
player2 = random.choice([ROCK, PAPER, SCISSORS])
# определяем результаты
outcome = VICTORY[player1][player2]
if outcome == 0:
print("Ничья")
elif outcome == 1:
print("Победил игрок 1")
elif outcome == 2:
print("Победил игрок 2")
Можно, конечно, сократить при желании. Но так понятно.
А у тебя не работает, потому что ты с какого-то перепугу решил, что запись
win1 = (v1 > v2), (v2 > v3), (v3 > v1)
даст тебе одно логическое значение, а не кортеж из трёх. Сюрприз, непустой кортеж всегда истинный.