[Python-es] Problema con listas duplicadas

Francesc Gispert Sanchez francesc_gispert_11.12 en hotmail.com
Jue Ago 4 19:15:24 CEST 2011


Hola, estoy aprendiendo a programar en Python y he intentado hacer una
versión del juego de mesa 'Othello' sólo con texto. Pero mi problema
esque la función que cambia las piezas blancas por negras y viceversa no
funciona, y tras muchas horas probando cosas, me parece que el problema
viene de la función que duplica la matriz (una lista de listas) que
representa el tablero.

Esto se puede observar gracias a lo que imprimen las líneas 164 y 165
del archivo .py; concretamente la 165. Esta línea debería mostrar todo
el rato el mismo tablero (lista) exacto, puesto que no hay nada dentro
de la función 'giraFitxes' (giraFichas) que lo modifique. Pero éste va
adoptando los mismos valores que el tablero provisional que utilizo para
girar las fichas (el que imprime la línea 164). Por eso, deduzco que
cuando creo un tablero provisional con la función
'duplicaTauler' (duplicaTablero) no se crea una lista nueva, sino que la
nueva variable es sólo otra referencia al tablero principal.

Además de ésta forma de duplicar el tablero, lo he probado con la
función descrita en 'http://challenges.qumax.org/?p=351', pero tampoco
ha funcionado. También lo he intentado con un bucle que recorriera las
filas y, dentro de éste, 'duplicado = tablero[fila][:]', pero no hay
forma. Es muy probable que, además de esto, haya algún otro fallo en el
código, pero si es así no me he percatado por culpa de éste que comento.

Entonces, ¿cómo debería hacerlo para crear un tablero provisional con
los mismos valores que el tablero original sin que, al modificarlo, se
modifique también el original?


El programa (las variables, los comentarios, etc.) está en catalán,
espero que no sea una molestia; si lo es, os lo puedo traducir. No sé si
es relevante, pero utilizo Python 2.6.7 en Debian Wheezy (testing).

Muchas gracias por adelantado.


Francesc Gispert
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: othello.py
Type: text/x-python
Size: 13020 bytes
Desc: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20110804/27d02cac/attachment.py>


Más información sobre la lista de distribución Python-es