<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial,helvetica,sans-serif;font-size:10pt"><div style="font-family:arial, helvetica, sans-serif;font-size:10pt"><br><div style="font-family:arial, helvetica, sans-serif;font-size:10pt"><font size="2" face="Tahoma"><b><span style="font-weight: bold;">&gt;De:</span></b> Francesc Gispert Sanchez &lt;francesc_gispert_11.12@hotmail.com&gt;<br><b><span style="font-weight: bold;">&gt;Para:</span></b> python-es@python.org<br><b><span style="font-weight: bold;">&gt;Enviado:</span></b> jue,4 agosto, 2011 19:15<br><b><span style="font-weight: bold;">&gt;Asunto:</span></b> [Python-es] Problema con listas duplicadas<br></font>&gt;<br>&gt;Hola, estoy aprendiendo a programar en Python y he intentado hacer una<br>&gt;versión del juego de mesa 'Othello' sólo con texto. Pero mi problema<br>&gt;esque la función que cambia las piezas blancas por negras y viceversa
 no<br>&gt;funciona, y tras muchas horas probando cosas, me parece que el problema<br>&gt;viene de la función que duplica la matriz (una lista de listas) que<br>&gt;representa el tablero.<br>&gt;<br>&gt;Esto se puede observar gracias a lo que imprimen las líneas 164 y 165<br>&gt;del archivo .py; concretamente la 165. Esta línea debería mostrar todo<br>&gt;el rato el mismo tablero (lista) exacto, puesto que no hay nada dentro<br>&gt;de la función 'giraFitxes' (giraFichas) que lo modifique. Pero éste va<br>&gt;adoptando los mismos valores que el tablero provisional que utilizo para<br>&gt;girar las fichas (el que imprime la línea 164). Por eso, deduzco que<br>&gt;cuando creo un tablero provisional con la función<br>&gt;'duplicaTauler' (duplicaTablero) no se crea una lista nueva, sino que la<br>&gt;nueva variable es sólo otra referencia al tablero principal.<br>&gt;<br>&gt;Además de ésta forma de duplicar el tablero, lo he probado con
 la<br>&gt;función descrita en '<a href="http://challenges.qumax.org/?p=351%27" target="_blank">http://challenges.qumax.org/?p=351'</a>, pero tampoco<br>&gt;ha funcionado. También lo he intentado con un bucle que recorriera las<br>&gt;filas y, dentro de éste, 'duplicado = tablero[fila][:]', pero no hay<br>&gt;forma. Es muy probable que, además de esto, haya algún otro fallo en el<br>&gt;código, pero si es así no me he percatado por culpa de éste que comento.<br>&gt;<br>&gt;Entonces, ¿cómo debería hacerlo para crear un tablero provisional con<br>&gt;los mismos valores que el tablero original sin que, al modificarlo, se<br>&gt;modifique también el original?<br>&gt;<br>&gt;<br>&gt;El programa (las variables, los comentarios, etc.) está en catalán,<br>&gt;espero que no sea una molestia; si lo es, os lo puedo traducir. No sé si<br>&gt;es relevante, pero utilizo Python 2.6.7 en Debian Wheezy (testing).<br>&gt;<br>&gt;Muchas gracias por
 adelantado.<br>&gt;<br>&gt;<br>&gt;Francesc Gispert<br><br><br>Buenos días,<br>para duplicar el tablero original puedes utilizar deepcopy del módulo copy:<br><br><span><a target="_blank" href="http://www.python.org/doc//current/library/copy.html">http://www.python.org/doc//current/library/copy.html</a></span><br><br>Un saludo,<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Luis<br></div></div>



</div></body></html>