Programmer friends, I need your help. I was trying to make a Uno using Python but to my despair, an error appeared that I don't know how to fix it.
"This code is unreachable:138"
I would be very grateful, if anyone can help me fix this.
Here is my code:
#UNO!
import random
cards = []
cards_number = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
cards_special = ["+2", "+4", "Block", "Reverse"]
cards_color = ["Azul", "Verde", "Vermelho", "Amarelo"]
your_cards = []
bot_cards = []
ultima_carta_jogada = []
def Organizar_Cards():
print()
print("UNO!")
for index_organizar_cards_number in cards_number:
for index_organizar_cards_colors in cards_color:
juncao_number_with_color = index_organizar_cards_number, index_organizar_cards_colors
cards.append(juncao_number_with_color)
cards.append(juncao_number_with_color)
for index_organizar_cards_special in cards_special:
for index_organizar_cards_colors in cards_color:
juncao_special_with_color = index_organizar_cards_special, index_organizar_cards_colors
cards.append(juncao_special_with_color)
cards.append(juncao_special_with_color)
index = 0
while index < len(cards):
print(f"{cards[index][0]} {cards[index][1]}")
index += 1
def Iniciar():
iniciar_aleatorio = random.randint(1, 72)
ultima_carta_jogada.append(cards[iniciar_aleatorio])
cards.remove(ultima_carta_jogada[0])
print()
print(f"Iniciou: {ultima_carta_jogada[0][0]} {ultima_carta_jogada[0][1]}")
#Receber Cartas Jogador:
index_receber_cards_player = 0
while index_receber_cards_player < 7:
your_cards.append(list(cards[random.randint(1, len(cards) - 1)]))
index_receber_cards_player += 1
#Receber Cartas Bot:
index_receber_cards_bot = 0
while index_receber_cards_bot < 7:
bot_cards.append(list(cards[random.randint(1, len(cards) - 1)]))
index_receber_cards_bot += 1
print(bot_cards)
sua_jogada = ""
lance_valido = False
def Jogar():
qtd_cards = 7
while qtd_cards > 0:
print()
print("Suas cartas:")
index_receber_cards = 0
while index_receber_cards < len(your_cards):
print(f"{your_cards[index_receber_cards][0]} {your_cards[index_receber_cards][1]}")
index_receber_cards += 1
print()
sua_jogada = input("Qual carta você vai jogar? ").split()
#Verificador de Lance Válido:
if sua_jogada not in your_cards:
print("Você não possui esta carta, porfavor jogue novamente.")
continue
elif ultima_carta_jogada[0][0] == "+2" or ultima_carta_jogada[0][0] == "+4" and sua_jogada[0] == "+2" or sua_jogada[0] == "+4":
lance_valido = True
elif ultima_carta_jogada[0][0] == "Block" and sua_jogada[0] == "Block":
lance_valido = True
elif ultima_carta_jogada[0][0] == "Reverse" and sua_jogada[0] == "Reverse":
lance_valido = True
elif ultima_carta_jogada[0][0] == sua_jogada[0] or ultima_carta_jogada[0][1] == sua_jogada[1]:
lance_valido = True
else:
lance_valido = False
if lance_valido == True:
your_cards.remove(sua_jogada)
ultima_carta_jogada.pop()
ultima_carta_jogada.append(sua_jogada)
print()
print(f"Ultima carta Jogada: {ultima_carta_jogada[0][0]} {ultima_carta_jogada[0][1]}")
qtd_cards -= 1
BotUno()
continue
else:
print("Lance inválido, porfavor jogue novamente.")
continue
def BotUno():
lance_valido_bot = False
index_receber_cards = 0
qtd_cards_bot = 7
lance_bot = []
global bot_cards
index_card_bot = 0
while index_card_bot < len(bot_cards):
lance_bot = bot_cards[index_card_bot]
if lance_bot in bot_cards:
if ultima_carta_jogada[0][0] == "+2" or ultima_carta_jogada[0][0] == "+4" or ultima_carta_jogada[0][0] == "Block" or ultima_carta_jogada[0][0] == "Reverse":
if ultima_carta_jogada[0][0] == "+2" and lance_bot[0] == "+2" or lance_bot[0] == "+4":
lance_valido_bot = True
elif ultima_carta_jogada[0][0] == "+4" and lance_bot[0] == "+2" or lance_bot[0] == "+4":
lance_valido_bot = True
elif ultima_carta_jogada[0][0] == "Block" and lance_bot[0] == "Block":
lance_valido_bot = True
elif ultima_carta_jogada[0][0] == "Reverse" and lance_bot[0] == "Reverse":
lance_valido_bot = True
else:
lance_valido_bot = False
continue
index_card_bot += 1
if ultima_carta_jogada[0][0] == lance_bot[0] or ultima_carta_jogada[0][1] == lance_bot[1]:
lance_valido_bot = True
else:
lance_valido_bot = False
continue
else:
continue
if lance_valido_bot == True:
bot_cards.remove(lance_bot)
ultima_carta_jogada.pop()
ultima_carta_jogada.append(lance_bot)
print()
print(f"Ultima carta Jogada: {ultima_carta_jogada[0][0]} {ultima_carta_jogada[0][1]}")
qtd_cards_bot -= 1
else:
continue
Organizar_Cards()
Iniciar()
Jogar()
I tried to set the variable "index_card_bot" to global but it still didn't work
The IDE is just right you use
continuein line 138 and a line after try increment a value. It won't happen EVER, cause thecontinuemakes the code "go" to next iteration of the loop.Side notes:
using globals is hardly ever a good idea, 9/10 cases it's bad actually
in general the code is written in English no matter what nationality you are
method and function names should be in snake case (in your code they start with capitals)
if your program is "one file" it should have a entry point defined if you will