Per il momento sto parlando in senso stretto in Pseudocode. Mi piacerebbe solo vedere se sono sulla strada giusta. Il gioco di cui sto parlando è simile a un'applicazione chiamata FLOW.
In questo gioco, ti viene assegnata una scheda nxn (sempre un quadrato) e devi compilare ogni slot nel tabellone. Allo stesso modo, quando un gioco da tavolo viene inizializzato, avrà oggetti come l'impostazione sotto ...
Board - 1 2 3 1
0 0 0 0
0 2 3 0
0 0 0 0
In questo esempio: gli oggetti sono 1 2 e 3.
Una soluzione sarebbe la seguente ...
Board - 1 2 3 1
1 2 3 1
1 2 3 1
1 1 1 1
L'intero scopo è compilare il gioco da tavolo collegando l'oggetto iniziale all'oggetto finale. Quello che ho in mente è il seguente ...
CheckSolution(1d representation of the boards state, int totalcolors) {
// I would loop through the colors, a 0 is not a color - empty.
// If the board has a 0 in the array, I would automatically return a false solution.
// Then, I would call DepthFirstSearch on the color.
// -- I would set a counter on this to count the # of colors, if this isn't equal to the total # of that particular color, I would return false.
// Else, the solution is valid.
}
Suona ragionevole? O è il modo migliore per implementare un correttore di soluzione.