2016-12-04 7 views
-2

私は研究している大学の宿題として単純なゲームを開発しようとしていますが、私のコードの一部に問題があります。ValueError:['A']がリストにありません

p1 = jogador[tn][pn][0] # This is equals to 'A', because both "tn" and "pn" are variables that, in this case, are equals '0'. 
p1 = list(p1) 
ip1 = colunas.index(p1) 

そして、これは私に次のエラーを与える:ここにある

Traceback (most recent call last): 
File "G:/Fatec/1º Semestre/Alg+BD/PycharmProjects/AlgoritmosNaVeia/EP/BatalhaNaval.py", line 77, in <module> 
ip1 = colunas.index(p1) 
ValueError: ['A'] is not in list 

うーん...私はどのように「A」がリストにあることをかなり確信しているので、...私はこれを解決する?

あなたは完全なコードをしたい場合は、ここでは(それがまだ完了していない)である:

J1 = open('jogador1.txt', 'r') 
J2 = open('jogador2.txt', 'r') 

# Lendo as jogadas dos jogadores 
jogador1 = [] 
jogador2 = [] 
count = 0 
while count < 6: 
    variavel = J1.readline() 
    variavel = list(variavel) 
    del variavel[1], variavel[0] 
    if '\n' in variavel: 
     variavel.remove('\n') 
    variavel = ''.join(variavel) 
    variavel = variavel.split('|') 
    jogador1.append(variavel) 

    variavel = J2.readline() 
    variavel = list(variavel) 
    del variavel[1], variavel[0] 
    if '\n' in variavel: 
     variavel.remove('\n') 
    variavel = ''.join(variavel) 
    variavel = variavel.split('|') 
    jogador2.append(variavel) 

    count += 1 
del jogador1[4], jogador2[4] 
linhas = 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'L', 'M', 'N', 'O', 'P' 
colunas = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 
naviospermitidos = 2, 2, 5, 4 

x1 = 0 # Quantidade de navios definidos pelo usuário 
x2 = 0 # Quantidade de navios permitidos (2x1, 2x2, 5x3, 4x4) 
count = 0 # Contador 

while count < 4: # Verificar o tabuleiro dos jogadores. 
    if len(jogador1[x1]) != naviospermitidos[x2]: 
     print("ERROR_VALIDATION teste jogador1") 
    if len(jogador2[x1]) != naviospermitidos[x2]: 
     print("ERROR_VALIDATION teste jogador2") 
    count += 1 

# Validar quantidade de tiros de torpedos 
if len(jogador1[4]) != 20: 
    print("ERROR_VALIDATION teste jogador1") 
if len(jogador2[4]) != 20: 
    print("ERROR_VALIDATION teste jogador2") 
print(jogador1) # REMOVER DEPOIS 
print(jogador2) # REMOVER DEPOIS 

jogador = jogador1 
posicoes = [] 
x3 = 0 
tn = 0 # Tipo do navio 
pn = 0 # Posição do navio 
count = 0 

for tn in range(0, 3): # Começando a colocar as peças no tabuleiro. 
    if tn == 0: 
     x3 = 3 
    elif tn == 1: 
     x3 = 4 
    elif tn == 2: 
     x3 = 0 
    elif tn == 3: 
     x3 = 1 

    p1 = jogador[tn][pn][0] 
    p1 = list(p1) 
    ip1 = colunas.index(p1) 

    for pn in range(0, x3): 
     if len(jogador[tn][pn]) == 3: # Se a linha for menor que 10 
      p2 = jogador[tn][pn][1] 
      ip2 = linhas.index(int(p2)) 

      if jogador[tn][pn][-1] == 'H': 
       for count in range(0, x3): 
        posicoes.append(colunas[ip1] + p2) 
        ip1 += 1 
      print(posicoes) 

      if jogador[tn][pn][-1] == 'V': 
       for count in range(0, x3): 
        posicoes.append(p1 + str(linhas[ip2])) 
        ip2 += 1 
      print(posicoes) 
     break 
+0

'' A ''を渡す必要があるときは、インデックスに '['A']'を渡しています。単に 'p1 = list(p1)'行を削除してください。 –

+0

まさに '' A''がリストにありますが、 '['A']'はリストにありません。 –

+0

私はそれをしましたが、問題は起こり続けています:( –

答えて

1

['A']がリストにありませんが、'A'です。

正しいコードは次のようになります。

あなたのコードで
p1 = jogador[tn][pn][0] # This is equals to 'A', because both "tn" and "pn" are variables that, in this case, are equals '0'. 
ip1 = colunas.index(p1) 
+0

私はやったが問題起こって続ける:( –

0

colunas 1と15 linhas間の整数のリストがP.

ときあなたからの手紙を含むタプルですcolunas.index('A')を実行すると、Pythonはcolunasに 'A'が見つかりませんというエラーをスローします。ただし、linhasにあります。 linhas.index('A')をすることを意味しましたか?

関連する問題