Python - Problema creación matriz para tablero de damas

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Problema creación matriz para tablero de damas

Publicado por Juan (1 intervención) el 04/01/2021 11:48:10
Estoy intentando crear un tablero de damas y me da un error al hacerlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def crearTablero():
    T = [][]
    for i in range(8):
        for j in range(8):
            if i == 3 or i == 4:
                T [i][j] = '-'
            elif i < 3:
                if (i + j)% 2 == 0:
                    T [i][j] = '-'
                else:
                    T [i][j] = 'o'
            elif i > 4:
                if (i + j)% 2 == 0:
                    T [i][j] = '-'
                else:
                    T [i][j] = 'x'
    return T


El resultado tendría que ser algo como esto:

[['-', 'x', '-', 'x', '-', 'x', '-', 'x'],
['x', '-', 'x', '-', 'x', '-', 'x', '-'],
['-', 'x', '-', 'x', '-', 'x', '-', 'x'],
['-', '-', '-', '-', '-', '-', '-', '-'],
['-', '-', '-', '-', '-', '-', '-', '-'],
['o', '-', 'o', '-', 'o', '-', 'o', '-'],
['-', 'o', '-', 'o', '-', 'o', '-', 'o'],
['o', '-', 'o', '-', 'o', '-', 'o', '-']]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Problema creación matriz para tablero de damas

Publicado por tincopasan (1082 intervenciones) el 04/01/2021 14:51:29
hay muchas cosas mal, lo voy a hacer de la forma más simple para que entiendas como lo hago:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def crearTablero():
    # para definir la matriz, eso es el tablero, o sea una lista de listas
    T = [] #se crea el objeto de esta forma, no así: T = [][]
 
    # lo mejor sería crearla vacía y luego rellenar o cambiar lo necesario
    for i in range(8):
        T.append(['-'] * 8) #esto representaría el tablero vacío
 
    #ahora con el tablero definido agregamos las fichas
 
    for x in range(len(T)):
        if x == 0 or x == 2: # en que fila
            for j in range(8):
                if j %2 == 1 :
                    T[x][j] = 'X'
 
        elif x == 1 :
            for j in range(8):
                if j %2 == 0 :
                    T[x][j] = 'X'
 
        elif x == 5 or x == 7 :
            for j in range(8):
                if j %2 == 0 :
                    T[x][j] = 'O'
        elif x == 6  :
            for j in range(8):
                if j %2 == 1 :
                    T[x][j] = 'O'
    return T
 
tablero = crearTablero()
 
for linea in tablero:
    print(linea)

hay una forma con menos código pero no la haré para no alargar innecesariamente la respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Problema creación matriz para tablero de damas

Publicado por joel (901 intervenciones) el 07/01/2021 19:43:34
Hola Juan, haber si te sirve de esta manera:

1
2
3
4
5
6
7
8
9
10
11
def crearTablero():
    tablero=[['-' for j in range(8)] for i in range(8)]
    for fila in range(len(tablero)):
        if fila>2 and fila<5:
            continue
        for columna in range(len(tablero[fila])):
            if (columna+fila)%2!=0:
                tablero[fila][columna]="X" if fila<4 else "O"
    return tablero
 
print(crearTablero())
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar