Я пытаюсь создать простую карточную игру для школы, я нахожусь на этапе программирования того, как игровой процесс работает в игре, и получаю ошибку ValueError при попытке удалить значение из списка
Я уже пытался изменить свой синтаксис list.remove(x)
, поэтому я пробовал list.remove(list[x])
, list.remove([x])
и list.remove(x)
, но все они вернули ValueError.
import random, time #imports required modules for the code
cardDeck = []
player1 = []
player1CardsWon = []
player2 = []
player2CardsWon = [] #all these lists/arrays are needed later on in the code
def deckCreator(): #creates all the needed embedded lists inside the cardDeck 2D Array
for color in ["yellow", "red", "black"]:
for number in [1,2,3,4,5,6,7,8,9,10]:
cardDeck.append([color, number])
'''test 1 - to check if deckCreator function is working
deckCreator()
print(cardDeck)
'''
def deckShuffle(): #shuffles the cardDeck 2D Array
random.shuffle(cardDeck)
'''test 2 - to check if the deckShuffle function is working
deckCreator()
print(cardDeck)
deckShuffle()
print(cardDeck)
'''
def gamePlay(): #plays a round of the game
while len(cardDeck) > 0:
time.sleep(2)
player1 = cardDeck.pop(0)
player2 = cardDeck.pop(0)
print("Player 1 holds card", player1[0], player1[1], "for this round")
print("Player 2 holds card", player2[0], player2[1], "for this round")
if player1[0] == "yellow":
if player2[0] == "red": #Yellow beats red
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 1 wins!")
elif player2[0] == "black": #Black beats yellow
player2CardsWon.append(player1)
player2CardsWon.append(player2)
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 2 wins!")
elif player2[0] == "yellow":
if player1[1] > player2[1]:
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 1 wins!")
else:
player2CardsWon.append(player1)
player2CardsWon.append(player2)
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 2 wins!")
if player1[0] == "red":
if player2[0] == "red":
if player1[1] > player2[1]:
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 1 wins!")
else:
player2CardsWon.append(player1)
player2CardsWon.append(player2)
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 2 wins!")
elif player2[0] == "black": #Red beats black
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 1 wins!")
elif player2[0] == "yellow": #Yellow beats black
player2CardsWon.append(player1)
player2CardsWon.append(player2)
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 2 wins!")
if player1[0]== "black":
if player2[0] == "red": #Red beats black
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 2 wins!")
elif player2[0] == "black":
if player1[1] > player2[1]:
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 1 wins!")
else:
player2CardsWon.append(player1)
player2CardsWon.append(player2)
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 2 wins!")
elif player2[0] == "yellow": #Black beats yellow
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.remove(0)
player1.remove(1)
player2.remove(0)
player2.remove(1)
print("Player 1 wins!")
'''test 3 - to check if the gamePlay function is working
deckCreator()
print(cardDeck)
deckShuffle()
print(cardDeck)
tempHold1 = cardDeck.pop(0)
tempHold2 = cardDeck.pop(0)
player1.append(tempHold1)
player2.append(tempHold2)
gamePlay()
'''
deckCreator()
deckShuffle()
gamePlay()
Я ожидаю, что консоль выведет:
Player 1 holds card red 9 for this round
Player 2 holds card black 8 for this round
Player 1 wins!
Но в данный момент выводится:
Player 1 holds card red 9 for this round
Player 2 holds card black 8 for this round
Traceback (most recent call last):
File "/tmp/sessions/99a7da0a0b9fd10f/main.py", line 152, in <module>
gamePlay()
File "/tmp/sessions/99a7da0a0b9fd10f/main.py", line 92, in gamePlay
player1.remove(0)
ValueError: list.remove(x): x not in list
(редактировать - это сообщение отправлено от друга, у меня нет учетной записи)