Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Invalid Syntax con una variable

Estas en el tema de Invalid Syntax con una variable en el foro de Python en Foros del Web. Hola, soy novato en programación y estoy aprendiendo python, ahora mismo estoy haciendo un pequeño juego de Las tres en raya o tic tac toe ...
  #1 (permalink)  
Antiguo 13/03/2014, 17:01
 
Fecha de Ingreso: marzo-2014
Mensajes: 12
Antigüedad: 4 años, 6 meses
Puntos: 0
Invalid Syntax con una variable

Hola, soy novato en programación y estoy aprendiendo python, ahora mismo estoy haciendo un pequeño juego de Las tres en raya o tic tac toe sin interfaz gráfica compleja, la duda viene aquí:
Código:
def turno_pcC():
    randoms = []
    x_pcC = random.choice(range(0, 3))
    y_pcC = random.choice(range(0, 3))

    while tablero[x_j1 - 1[y_j1 - 1] == "X" or tablero[x_j2 - 1][y_j2 - 1] == "X" or tablero[x_j3 - 1][y_j3 - 1] == "X" or tablero[x_pcB][y_pcB] == "B" or tablero[x_pcA][y_pcA] == "C":
        x_pcC = random.choice(range(0, 3))
        y_pcC = random.choice(range(0, 3))

    tablero[x_pcC][y_pcC] = "C"
Me da error(Invalid Syntax) en esa función, en concreto justo debajo del bucle while. Dejo el código completo por si es de ayuda(no esta terminado):
Código:
import random

tablero = []
ganar = 0

xj_1 = 0
xj_2 = 0
xj_3 = 0

yj_1 = 0
yj_2 = 0
yj_3 = 0

xpc_A = 0
xpc_B = 0
xpc_C = 0

ypc_A = 0
ypc_B = 0
ypc_C = 0

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


def turno_pcA():
    x_pcA = random.choice(range(0, 3))
    y_pcA = random.choice(range(0, 3))

    while tablero[x_j1 - 1][y_j1 - 1] == "X":
        x_pcA = random.choice(range(0, 3))
        y_pcA = random.choice(range(0, 3))
        tablero[x_pcA][y_pcA] = "A"

def turno_pcB():
    x_pcB = random.choice(range(0, 3))
    y_pcB = random.choice(range(0, 3))

    while tablero[x_j1 - 1][y_j1 - 1] == "X" or tablero[x_j2 - 1][y_j2 - 1] == "X" or tablero[x_pcA][y_pcA] == "A" :
        x_pcB = random.choice(range(0, 3))
        y_pcB = random.choice(range(0, 3))

    tablero[x_pcB][y_pcB] = "B"

def turno_pcC():
    randoms = []
    x_pcC = random.choice(range(0, 3))
    y_pcC = random.choice(range(0, 3))

    while tablero[x_j1 - 1[y_j1 - 1] == "X" or tablero[x_j2 - 1][y_j2 - 1] == "X" or tablero[x_j3 - 1][y_j3 - 1] == "X" or tablero[x_pcB][y_pcB] == "B" or tablero[x_pcA][y_pcA] == "C":
        x_pcC = random.choice(range(0, 3))
        y_pcC = random.choice(range(0, 3))

    tablero[x_pcC][y_pcC] = "C"


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

print_tab(tablero)

x_j1 = input(u"T1 Posición x")
y_j1 = input(u"T1 Posición Y")
tablero[x_j1 - 1][y_j1 - 1] = "X"

turno_pcA()
print_tab(tablero)

x_j2 = input(u"Posición x")
y_j2 = input(u"Posición Y")
tablero[x_j2 - 1][y_j2 - 1] = "X"

turno_pcB()
print_tab(tablero)

x_j3 = input(u"Posición x")
y_j3 = input(u"Posición Y")
tablero[x_j3 - 1][y_j3 - 1] = "X"

turno_pcC()
print_tab(tablero)
Gracias.
  #2 (permalink)  
Antiguo 13/03/2014, 18:51
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 13 años, 6 meses
Puntos: 1360
Respuesta: Invalid Syntax con una variable

Protip: Usa un edito decente que te marque errores sencillos de sintaxis.

Código Python:
Ver original
  1. while tablero[x_j1 - 1[y_j1 - 1]
Aquí obviamente no cierras un corchete.

Código Python:
Ver original
  1. while tablero[x_j1 - 1][y_j1 - 1]
  #3 (permalink)  
Antiguo 13/03/2014, 19:07
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 6 años, 8 meses
Puntos: 35
Respuesta: Invalid Syntax con una variable

Y el nombre de tus variables es muuy poco descriptivo, mala practica
  #4 (permalink)  
Antiguo 14/03/2014, 07:27
 
Fecha de Ingreso: marzo-2014
Mensajes: 12
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: Invalid Syntax con una variable

Cita:
Iniciado por razpeitia Ver Mensaje
Protip: Usa un edito decente que te marque errores sencillos de sintaxis.

Código Python:
Ver original
  1. while tablero[x_j1 - 1[y_j1 - 1]
Aquí obviamente no cierras un corchete.

Código Python:
Ver original
  1. while tablero[x_j1 - 1][y_j1 - 1]
Hola, no termino de entender el error, he revisado el código y los corchetes estan todos cerrados.
  #5 (permalink)  
Antiguo 14/03/2014, 15:11
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 6 años, 8 meses
Puntos: 35
Respuesta: Invalid Syntax con una variable

Claro que falta un corchete, fijate nuevamente los dos codigos de razpeitia, al primero le falta un corchete.
  #6 (permalink)  
Antiguo 14/03/2014, 17:01
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 9 años, 11 meses
Puntos: 58
Respuesta: Invalid Syntax con una variable

Hola que tal, no sera mas bien que esta poniendo mal las variables

El lo tiene declarado asi:

Cita:
xj_1 = 0
xj_2 = 0
xj_3 = 0

yj_1 = 0
yj_2 = 0
yj_3 = 0
Pero lo quiere usar asi:

Cita:
while tablero[x_j1 - 1][y_j1 - 1]
Igual y me equivoco, también soy algo novato en Python, pero mas bien creo que es error de declaracion y uso de variables

  #7 (permalink)  
Antiguo 14/03/2014, 17:27
 
Fecha de Ingreso: marzo-2014
Mensajes: 12
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: Invalid Syntax con una variable

Gracias, era lo de los corchetes

Etiquetas: invalid, syntax, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:23.