Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
android_sudoku [2022/10/16 21:29] enrique_mieza_sanchez [Creant un model per a la partida de Sudoku] |
android_sudoku [2022/10/24 13:19] (actual) enrique_mieza_sanchez [Final de partida] |
||
---|---|---|---|
Línia 1: | Línia 1: | ||
====== Sudoku en Android ====== | ====== Sudoku en Android ====== | ||
- | Guia per fer un joc de Sudoku en Android. | + | Guia per desenvolupar |
+ | |||
+ | {{ https:// | ||
Els principals objectius son: | Els principals objectius son: | ||
- | * Conèixer la creació d' | + | * Conèixer la creació d' |
- | * Manipular els elements gràfics. | + | |
* Conèixer l' | * Conèixer l' | ||
+ | * Manipular els elements gràfics. | ||
+ | * Aplicar el patró MVC (Model-Vista-Controlador) | ||
+ | * Conèixer l' | ||
Línia 46: | Línia 51: | ||
===== Connectant les callback dels Spinner ===== | ===== Connectant les callback dels Spinner ===== | ||
- | Per poder respondre a les accions de l' | ||
- | Tindrem 2 estratègies bàsiques per a implementar les //callback// d'un '' | + | Llegeix bé l' |
- | - Crear un objecte tipus '' | + | |
- | - Heretar la interfície '' | + | |
- | Ens resultarà un codi més llegible si fem servir la opció 2, al menys en aquest cas. | + | Al final caldrà que d'una manera o altra, connectis els spinner |
- | + | ||
- | Segueix la [[https:// | + | |
* '' | * '' | ||
* '' | * '' | ||
Línia 105: | Línia 105: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | |||
+ | <WRAP todo> | ||
+ | Implementa el model per al Sudoku com s'ha descrit. | ||
+ | </ | ||
+ | |||
+ | ==== Millora de la implementació del model com a llibreria ==== | ||
+ | <WRAP info> | ||
+ | Pot ser interessant implementar el model en un //Java package// independent, | ||
+ | |||
+ | Seguint en aquesta línia, **pots treballar el model de Sudoku en un altre IDE com Eclipse o IntelliJ**, i quan tinguis el //package// funcionant, l' | ||
+ | </ | ||
\\ | \\ | ||
Línia 112: | Línia 123: | ||
* '' | * '' | ||
+ | |||
+ | En aquesta funció caldrà agafar totes les dades del Model i refrescar la Vista (els Spinners). Per tant, ara necessitarem tenir tots els '' | ||
<WRAP todo> | <WRAP todo> | ||
Línia 139: | Línia 152: | ||
- | ===== Creant un model per a la partida | + | |
- | Sovint esmentem el [[https://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlador|patró de disseny Model-Vista-Controlador (MVC)]]. Un aspecte | + | ===== Jugar la partida |
+ | Per poder oferir una partida al jugador caldrà que omplim algunes cel·les i les fem fixes. Això vol dir que en aquelles cel·les fixes no haurem de poder entrar valors al '' | ||
+ | |||
+ | És important | ||
<WRAP todo> | <WRAP todo> | ||
- | Implementa | + | Implementa |
- | | + | |
- | | + | |
- | | + | |
- | Assegura' | + | Quan totes les cel·les |
</ | </ | ||
\\ | \\ | ||
- | ===== Final de partida | + | ===== Solver |
- | És important | + | |
+ | < | ||
+ | Secció només per a les més agosarades! | ||
+ | </ | ||
+ | |||
+ | {{ https:// | ||
+ | |||
+ | Si has resolt fins aquí i ets dels més agosarats, voldràs provar de trobar solució a la partida | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | {{ https:// | ||
+ | |||
+ | <WRAP info> | ||
+ | Hi ha moltes tècniques de resolució de sudokus com joc (X-wing, Y-wing, etc). Aquestes són " | ||
+ | |||
+ | En canvi, el // | ||
+ | |||
+ | Una optimització senzilla del // | ||
+ | </ | ||
+ | |||
+ | <WRAP todo> | ||
+ | - Implementar el // | ||
+ | - Posar un botó " | ||
+ | </ | ||
\\ | \\ | ||
+ | |||
+ | ===== Check partida resoluble ===== | ||
+ | |||
+ | Quan inicialitzem una partida aleatòriament, | ||
+ | |||
+ | Per assegurar-nos de que una partida és resoluble, quan la creem i abans de passar-la a l' | ||
+ | |||
+ | A més, les regles del Sudoku inclouen un altre requisit: que la partida no tingui vàries solucions, sinó només una de sola. Per tant, haurem de modificar el nostre solver perquè també ens determini si té més d'una solució. Si ens dona una 2a solució, tornarem a descartar la partida. | ||
+ | |||
+ | <WRAP todo> | ||
+ | Crea una partida i, abans de passar-la a l' | ||
+ | </ | ||