import random
tablero = []
for fila in range(0, 3):
tablero.append(["O"] * 3)
def print_tab(tablero):
for fila in tablero:
print " ".join(fila)
print_tab(tablero)
#TURNO JUGADOR
tj = input("PRIMERA JUGADA")#turno jugador
if tj == 1: tablero[0][0] = "X"
elif tj == 2: tablero[0][1] = "X"
elif tj == 3: tablero[0][2] = "X"
elif tj == 4: tablero[1][0] = "X"
elif tj == 5: tablero[1][1] = "X"
elif tj == 6: tablero[1][2] = "X"
elif tj == 7: tablero[2][0] = "X"
elif tj == 8: tablero[2][1] = "X"
elif tj == 9: tablero[2][2] = "X"
else : print u"Introduce un número entre 1 y 9"
#TURNO ORDENADOR
randoms = []
t_pc = random.choice(randoms)#EL ERROR ESTA AQUÍ
if tablero[0][0] != "X": randoms.append(1)
elif tablero[0][1] != "X": randoms.append(2)
elif tablero[0][2] != "X": randoms.append(3)
elif tablero[1][0] != "X": randoms.append(4)
elif tablero[1][1] != "X": randoms.append(5)
elif tablero[1][2] != "X": randoms.append(6)
elif tablero[2][0] != "X": randoms.append(7)
elif tablero[2][1] != "X": randoms.append(8)
elif tablero[2][2] != "X": randoms.append(9)
print t_pc
print_tab(tablero)
Ai7or21 escribió:Hola, soy bastante novato en python por esos estoy tratando de hacer el juego de Tic, tac, toe para mejorar. Por supuesto todavía no esta terminado, pero obtengo un error al tratar de añadir elementos a una lista y despues escogerlos aleatoria mente con la función choice() El código:import random
tablero = []
for fila in range(0, 3):
tablero.append(["O"] * 3)
def print_tab(tablero):
for fila in tablero:
print " ".join(fila)
print_tab(tablero)
#TURNO JUGADOR
tj = input("PRIMERA JUGADA")#turno jugador
if tj == 1: tablero[0][0] = "X"
elif tj == 2: tablero[0][1] = "X"
elif tj == 3: tablero[0][2] = "X"
elif tj == 4: tablero[1][0] = "X"
elif tj == 5: tablero[1][1] = "X"
elif tj == 6: tablero[1][2] = "X"
elif tj == 7: tablero[2][0] = "X"
elif tj == 8: tablero[2][1] = "X"
elif tj == 9: tablero[2][2] = "X"
else : print u"Introduce un número entre 1 y 9"
#TURNO ORDENADOR
randoms = []
t_pc = random.choice(randoms)#EL ERROR ESTA AQUÍ
if tablero[0][0] != "X": randoms.append(1)
elif tablero[0][1] != "X": randoms.append(2)
elif tablero[0][2] != "X": randoms.append(3)
elif tablero[1][0] != "X": randoms.append(4)
elif tablero[1][1] != "X": randoms.append(5)
elif tablero[1][2] != "X": randoms.append(6)
elif tablero[2][0] != "X": randoms.append(7)
elif tablero[2][1] != "X": randoms.append(8)
elif tablero[2][2] != "X": randoms.append(9)
print t_pc
print_tab(tablero)
tom_deluxe escribió:Obtienes un error...¿cual?
tablero = []
for fila in range(0, 3):
tablero.append(["O"] * 3)
def print_tab(tablero):
for fila in tablero:
print " ".join(fila)
print_tab(tablero)
tj = input("PRIMERA JUGADA")#turno jugador
if tj == 1: tablero[0][0] = "X"
elif tj == 2: tablero[0][1] = "X"
elif tj == 3: tablero[0][2] = "X"
elif tj == 4: tablero[1][0] = "X"
elif tj == 5: tablero[1][1] = "X"
elif tj == 6: tablero[1][2] = "X"
elif tj == 7: tablero[2][0] = "X"
elif tj == 8: tablero[2][1] = "X"
elif tj == 9: tablero[2][2] = "X"
else : print u"Introduce un número entre 1 y 9"
x = input("POSICIONX")#turno jugador
y = input("POSICIONY")
tablero[x][y] = "X"
x = random.choice(range(0,3))
y = random.choice(range(0,3))
while tablero[x][y] == "X":
x = random.choice(range(0,3))
y = random.choice(range(0,3))
tablero[x][y] = "X"
random.choice(seq)¶
Return a random element from the non-empty sequence seq. If seq is empty, raises IndexError.
tom_deluxe escribió:http://docs.python.org/2/library/random.htmlrandom.choice(seq)¶
Return a random element from the non-empty sequence seq. If seq is empty, raises IndexError.
amchacon escribió:tom_deluxe escribió:http://docs.python.org/2/library/random.htmlrandom.choice(seq)¶
Return a random element from the non-empty sequence seq. If seq is empty, raises IndexError.
Pues si, era porque intentaba sacar un número aleatorio de una lista vacia.
randoms = []
t_pc = random.choice(randoms)#EL ERROR ESTA AQUÍ
if tablero[0][0] != "X": randoms.append(1)
elif tablero[0][1] != "X": randoms.append(2)
elif tablero[0][2] != "X": randoms.append(3)
elif tablero[1][0] != "X": randoms.append(4)
elif tablero[1][1] != "X": randoms.append(5)
elif tablero[1][2] != "X": randoms.append(6)
elif tablero[2][0] != "X": randoms.append(7)
elif tablero[2][1] != "X": randoms.append(8)
elif tablero[2][2] != "X": randoms.append(9)
randoms = []
t_pc = random.choice(randoms)#EL ERROR ESTA AQUÍ
amchacon escribió:Olvidate de los ifs, tan solo fijate en las dos primeras lineas:randoms = []
t_pc = random.choice(randoms)#EL ERROR ESTA AQUÍ
Creas una lista vacía y despues llamas a random.choice con ella.
Ahí está el error. Si la vas a llenar hazlo antes de llamar a la función random.choice, no después.