Batalla naval 16. Fin del juego


#1



https://www.codecademy.com/es/courses/python-beginner-en-7s5jh/2/2?curriculum_id=53a32847fed2a88075000001

No se cual es el problema.

¡Uy! Probá otra vez. Asegurate que adivina_fila, adivina_columna, barco_fila, barco_columna y turn estén todos definidos adecuadamente


import random

tablero = []

for x in range(0,5):
  tablero.append(["O"] * 5)

def print_tablero(tablero):
  for fila in tablero:
    print " ".join(fila)

print "Juguemos as la batalla naval!"
print_tablero(tablero)

def fila_aleatoria(tablero):
  return random.randint(0,len(tablero)-1)

def columna_aleatoria(tablero):
  return random.randint(0,len(tablero[0])-1)

barco_fila = fila_aleatoria(tablero)
barco_columna = columna_aleatoria(tablero)
print barco_fila
print barco_columna

#¡De acá en adelante todo debería ir en tu ciclo for!
#¡Asegurate de indentar!
turn = 0
for turn in range(4):
    adivina_fila = raw_input("Adivina fila: ")
    adivina_columna = raw_input("Adivina columna: ")
    
    if adivina_fila == barco_fila and \
       adivina_columna == barco_columna:
      print "Felicitaciones! Hundiste mi barco!"
      
    else:
      if adivina_fila not in range(5) or\
         adivina_columna not in range(5):
        print "Huy, eso ni siquiera esta en el oceano."
        
      elif(tablero[adivina_fila][adivina_columna] == "X"):
        print "Ya dijiste esa."
        
      else:
      	print "No tocaste mi barco!"
      	tablero[adivina_fila-1][adivina_columna-1] = "X"
      
      print_tablero(tablero)
      print "Turno", turn + 1
      print
      
    if turn == 3:
        print"Fin del juego"


#2

Yo tengo el mismo problema, aunque tambien tengo una pregunta ¿por que print_tablero(tablero) aparece 2 veces en el codigo?, una vez en la linea 13 y otra en la linea 49


#3

Ya lo solucione resulta que en la fila 6, 9, 10,16 y 19 la tabulacion es de 2 espacios y en el resto es de 4, al hacer esa correcion el error se soluciona.