elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Batalla naval Python!!! [RESUELTO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Batalla naval Python!!! [RESUELTO]  (Leído 16,463 veces)
Joe Fraddy

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Re: Batalla naval Python!!!
« Respuesta #10 en: 29 Enero 2015, 16:36 pm »

Ya, creo que el error 38 era por un acento que tenia, pero ahora en la linea 31 tengo un error y no se que esta mal, este es el código:

Código:
elif  tablero[adivina_fila][adivina_columna] == "X":

tablero es una lista bacía y los dos argumentos son dos variables de entrada que almacenan dos strings.


« Última modificación: 29 Enero 2015, 16:41 pm por Joe Fraddy » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: Batalla naval Python!!!
« Respuesta #11 en: 29 Enero 2015, 17:10 pm »

en la linea 31 tengo un error y no se que esta mal

¿Y cual es el mensaje de error?, no somos adivinos.



Código:
elif  tablero[adivina_fila][adivina_columna] == "X":
tablero es una lista bacía

Creo que tú mismo lo has resuelto sin darte cuenta: Estás intentando acceder a un elemento inexistente, por que la lista está vacía, así pues dará un error de índice fuera de rango.

Solo debes inicializar la lista antes de intentar usarla en la condicional que has mostrado.

Ejemplo funcional:
Código
  1. matrix = [
  2.           ["A0","B0"],
  3.           ["A1","B1"]
  4.         ]
  5.  
  6. if matrix[1][1] == 'A1':
  7.    pass; # Do Nothing.
  8.  
  9. elif matrix[1][1] == 'B1':
  10.    print "Felicitaciones, Hundiste mi barco!"

Si tienes otro tipo de error, especifíca el mensaje de error.

Saludos!


« Última modificación: 29 Enero 2015, 19:29 pm por Eleкtro » En línea

Joe Fraddy

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Re: Batalla naval Python!!!
« Respuesta #12 en: 29 Enero 2015, 18:03 pm »

Saben cual era el error???

el mensaje:

había escrito:

Código:
print 'Ya dijiste esa'

y era:

Código:
print 'Ya dijiste esa.'

Era el (.) Punto lo que no me dejaba concluir el ejercicio y como no detectaba el error del interprete ps no sabía, pero de todos modos aprendí!!! eso es lo importante xD
En línea

Joe Fraddy

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Re: Batalla naval Python!!! [Ejercicio terminado]
« Respuesta #13 en: 29 Enero 2015, 19:23 pm »

Bueno, gracias por su ayuda, les dejo el ejercicio terminado, quizá mas adelante le pueda servir a alguien:

Código
  1. import random
  2.  
  3. tablero = []
  4.  
  5. for x in range(0,5):
  6.  tablero.append(["O"] * 5)
  7.  
  8. def print_tablero(tablero):
  9.  for fila in tablero:
  10.    print " ".join(fila)
  11.  
  12. print "Juguemos as la batalla naval!"
  13. print_tablero(tablero)
  14.  
  15. def fila_aleatoria(tablero):
  16.  return random.randint(0,len(tablero)-1)
  17.  
  18. def columna_aleatoria(tablero):
  19.  return random.randint(0,len(tablero[0])-1)
  20.  
  21. barco_fila = fila_aleatoria(tablero)
  22. barco_columna = columna_aleatoria(tablero)
  23. print barco_fila
  24. print barco_columna
  25.  
  26. for turn in range(4):
  27.    adivina_fila = input("Adivina fila: ")
  28.    adivina_columna = input("Adivina columna: ")
  29.  
  30.    if adivina_fila == barco_fila and adivina_columna == barco_columna:
  31.      print "Felicitaciones! Hundiste mi barco!"
  32.    else:
  33.      if (adivina_fila < 0 or adivina_fila > 4) or (adivina_columna < 0 or adivina_columna > 4):
  34.        print "Huy, eso ni siquiera esta en el oceano."
  35.      elif(tablero[adivina_fila][adivina_columna] == "X"):
  36.        print "Ya dijiste esa."
  37.      else:
  38.       print "No tocaste mi barco!"
  39.       tablero[adivina_fila][adivina_columna] = "X"
  40.  
  41.    if turn == 3:
  42.        print 'Fin del juego'
  43.        break
  44.    print_tablero(tablero)
  45.    print 'Turno', turn+1
  46.  
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Expresiones regulares --->(Python)[Resuelto]
Scripting
¨°o.O (ßa¢Kg|姧) O.o° 2 4,636 Último mensaje 29 Marzo 2010, 02:21 am
por Novlucker
Colores bash en python (RESUELTO)
Scripting
carlos.foroelhaker 2 2,936 Último mensaje 4 Mayo 2012, 19:41 pm
por carlos.foroelhaker
[Resuelto] input de Python en C++?
Programación C/C++
Br1ant 7 3,932 Último mensaje 28 Junio 2015, 19:31 pm
por Br1ant
Problema con comentar bloques en Python 3 (Resuelto)
Scripting
lucas25cba 4 4,137 Último mensaje 28 Octubre 2015, 14:59 pm
por Pablo Videla
Problema con Python y SSL [RESUELTO]
Scripting
NikNitro! 3 4,844 Último mensaje 5 Julio 2017, 22:59 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines