Autor
|
Tema: Batalla naval Python!!! [RESUELTO] (Leído 16,512 veces)
|
Joe Fraddy
Desconectado
Mensajes: 277
|
Hola amigos, ahora estoy en un ejercicio de elaborar un juego llamado batalla naval, y no he entendido lo que se me pide hacer (se supone que vamos haciendo el código paso a paso). Las instrucciones son estas: 01. Agregá una sentencia elif que verifique si la ubicación ya tiene una 'X'. 02. Si la tiene, mostrá "Ya dijiste esa." Este es mi código: 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_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) adivina_fila = input("Adivina fila:") adivina_columna = input("Adivina columna:")
print barco_fila print barco_columna
# escribí tu código a continuación. if adivina_fila == barco_fila: print "Felicitaciones, Hundiste mi barco!" else: print "Agua, no tocaste mi barco" if adivina_fila not in range(5) or adivina_columna not in range(5): print "Huy, eso ni siquiera esta en el oceano" else: print "Aquí no ha pasado nada" elif board[adivina_fila][adivina_columna] == 'X': print "Ya dijiste esa" Parece que lo que esta mal es la última parte: elif board[adivina_fila][adivina_columna] == 'X': print "Ya dijiste esa" El error del interprete es: File "python", line 37 elif board[adivina_fila][adivina_columna] == 'X': ^ SyntaxError: invalid syntax
|
|
« Última modificación: 5 Febrero 2015, 16:25 pm por Joe Fraddy »
|
En línea
|
|
|
|
engel lex
|
la sintaxis está mala, primero debe ir elif que else...
es decir... lo tuyo se interpreta algo como
el compilador llega al primer if y lo salta porque no cumple, como hay else ejecuta automáticamente eso... luego se consigue con un elif que no pertenece a nadie porque no hay condiciones if sin resolverse
el doeen siempre debe ser IF -> [ELIF ]-> [ELSE]
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Joe Fraddy
Desconectado
Mensajes: 277
|
Si, ya me había percatado de eso, y he reacomodado el código: 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_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) adivina_fila = input("Adivina fila:") adivina_columna = input("Adivina columna:")
print barco_fila print barco_columna
if adivina_fila == barco_fila: print "Felicitaciones, Hundiste mi barco!"
# Codigo reacomodado elif board[adivina_fila][adivina_columna] == 'X': print "Ya dijiste esa"
else: print "Agua, no tocaste mi barco" if adivina_fila not in range(5) or adivina_columna not in range(5): print "Huy, eso ni siquiera esta en el oceano" else: print "Aquí no ha pasado nada" pero creo que tengo problemas con el módulo, eso es lo que me dice el interprete: Traceback (most recent call last): File "python", line 31, in <module> NameError: name 'board' is not defined
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.822
|
pero creo que tengo problemas con el módulo, eso es lo que me dice el interprete: Traceback (most recent call last): File "python", line 31, in <module> NameError: name 'board' is not defined El error se está explicando por si mismo. No existe ningún miembro deifnido en el código con el nombre ' board', quizás quisiste decir ' tablero', que es como se llama tu lista: import random tablero = [] ...
Saludos.
|
|
« Última modificación: 28 Enero 2015, 21:01 pm por Eleкtro »
|
En línea
|
|
|
|
Joe Fraddy
Desconectado
Mensajes: 277
|
Si, efectivamente tenia que poner tablero, en vez de board, pensé que board era alguna función de random. Pero ahora creo que hay un problema de conversión, que no logro entender, el depurador me saca esto: Traceback (most recent call last): File "python", line 38, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 3: ordinal not in range(128)
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.822
|
Algo relacionado con problemas de codificación y su solución ya se te explicó aquí: Problema en python [alguno me ayuda??vuelve a leer atentamente Pero en esta ocasión el error parece tener que ver con la codificación de la shell (no como en la otra pregunta), prueba así # encoding=utf8 import sys reload(sys) sys.setdefaultencoding('utf8')
saludos
|
|
|
En línea
|
|
|
|
Joe Fraddy
Desconectado
Mensajes: 277
|
No parece que ese no es problema, me manda un error al correrlo: Unknown Error: O O O O O
|
|
|
En línea
|
|
|
|
engel lex
|
aprende a usar un debugger http://www.pythontutor.com/visualize.htmlmás fácil que eso no hay jejeje ahí deberias ver las fallas de codigo mejor que nada
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Joe Fraddy
Desconectado
Mensajes: 277
|
Es que el problema es que este es un interprete html y creo que no va con el código real, lo que hago son ejercicios, que a veces esta bien, pero simplemente no corren porque esta hecho en web
|
|
|
En línea
|
|
|
|
engel lex
|
para tu ejercicio corre bien y hasta ahora los codigos que he probado funcionan intentalo
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Expresiones regulares --->(Python)[Resuelto]
Scripting
|
¨°o.O (ßa¢Kg|姧) O.o°
|
2
|
4,643
|
29 Marzo 2010, 02:21 am
por Novlucker
|
|
|
Colores bash en python (RESUELTO)
Scripting
|
carlos.foroelhaker
|
2
|
2,952
|
4 Mayo 2012, 19:41 pm
por carlos.foroelhaker
|
|
|
[Resuelto] input de Python en C++?
Programación C/C++
|
Br1ant
|
7
|
3,956
|
28 Junio 2015, 19:31 pm
por Br1ant
|
|
|
Problema con comentar bloques en Python 3 (Resuelto)
Scripting
|
lucas25cba
|
4
|
4,161
|
28 Octubre 2015, 14:59 pm
por Pablo Videla
|
|
|
Problema con Python y SSL [RESUELTO]
Scripting
|
NikNitro!
|
3
|
4,863
|
5 Julio 2017, 22:59 pm
por engel lex
|
|