Diferencia entre revisiones de «Usuario:Lmorillas/modulo programacion/python/juego tres en raya/ayudas 3 raya»
De WikiEducator
(Página creada con '{{MiTitulo| Ayudas juego 3 en raya}} ==Un diagrama== http://inventwithpython.com/images/10-1.png ==¿Cómo representamos las posiciones del tablero? == http://inventwithpython…') |
(→¿Cómo sé que un jugador ha ganado?) |
||
(4 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 6: | Línea 6: | ||
==¿Cómo representamos las posiciones del tablero? == | ==¿Cómo representamos las posiciones del tablero? == | ||
http://inventwithpython.com/images/10-2.png | http://inventwithpython.com/images/10-2.png | ||
+ | |||
+ | ¿Una lista de 10 elementos, despreciando el primero (índice 0)? | ||
+ | |||
+ | == Ejemplo: un estado del tablero y su representación == | ||
+ | |||
+ | ----------- | ||
+ | X | | | ||
+ | ----------- | ||
+ | | X | | ||
+ | ----------- | ||
+ | O | O | O | ||
+ | ----------- | ||
+ | |||
+ | # la posición 0 no se usa para facilitar el proceso | ||
+ | tablero = [' ', 'O', 'O', 'O', ' ', 'X', ' ', 'X', ' ', ' '] | ||
+ | |||
+ | == ¿Cómo sé si una casilla está libre? == | ||
+ | No tiene ni '''O''', ni '''X''' en esa posición. Los movimientos legales son siempre a casillas libres. | ||
+ | |||
+ | == ¿Cómo sé que un jugador ha ganado? == | ||
+ | Sabemos cuáles son las posiciones ganadoras. Las podemos guardar en una lista. Si tenemos en cuenta la representación de datos anterior: | ||
+ | <source lang="python"> | ||
+ | posiciones_ganadoras = [ | ||
+ | [1, 2, 3], | ||
+ | [4, 5, 6], | ||
+ | # completa la lista ... | ||
+ | ] | ||
+ | </source> | ||
+ | |||
+ | == ¿Cuándo hay tablas? == | ||
+ | No ha ganado ningún jugador y no quedan casillas libres: | ||
+ | ' ' not in tablero | ||
+ | == Enseñando a jugar al ordenador ... == | ||
+ | El ordenador tiene que: | ||
+ | * Ganar, si puede hacer 3 en raya | ||
+ | * Evitar que el contrincante haga 3 en raya | ||
+ | * Elegir la mejor posición: centro, esquinas y resto |
Última revisión de 23:39 4 nov 2011
Contenido
Un diagrama
http://inventwithpython.com/images/10-1.png
¿Cómo representamos las posiciones del tablero?
http://inventwithpython.com/images/10-2.png
¿Una lista de 10 elementos, despreciando el primero (índice 0)?
Ejemplo: un estado del tablero y su representación
----------- X | | ----------- | X | ----------- O | O | O -----------
# la posición 0 no se usa para facilitar el proceso tablero = [' ', 'O', 'O', 'O', ' ', 'X', ' ', 'X', ' ', ' ']
¿Cómo sé si una casilla está libre?
No tiene ni O, ni X en esa posición. Los movimientos legales son siempre a casillas libres.
¿Cómo sé que un jugador ha ganado?
Sabemos cuáles son las posiciones ganadoras. Las podemos guardar en una lista. Si tenemos en cuenta la representación de datos anterior:
posiciones_ganadoras = [ [1, 2, 3], [4, 5, 6], # completa la lista ... ]
¿Cuándo hay tablas?
No ha ganado ningún jugador y no quedan casillas libres:
' ' not in tablero
Enseñando a jugar al ordenador ...
El ordenador tiene que:
- Ganar, si puede hacer 3 en raya
- Evitar que el contrincante haga 3 en raya
- Elegir la mejor posición: centro, esquinas y resto