Jenner schreef:Nice idee om te gaan oplossen

Kun je ook voorbeelden van het script geven ofzo? De manier van oplossen lijkt me mooi om te weten

Ik had eerst geprobeerd om de regels zoals ik ze gebruik te implementeren, maar dat bleek zwaar moeilijk. Dus zeg maar dat je gaat controleren of een getal binnen een hok van 3 rijen al op 2 verschillende rijen zat.
Dit was allemaal erg omslachtig en moest naar mijn idee makkelijker kunnen.
Uiteindelijk heb ik me puur gefocust op het bijhouden van de mogelijkheden van een bepaald hokje.
Als je de mogelijkheden van een hokje weet kan je die mogelijkheden met andere mogelijkheden gaan vergelijken en zodoende ontzettend ver komen.
Beetje bij beetje verschijnen er bij mijn sudoku steeds meer getallen, dus zal er uiteindelijk wel komen.
Moet trouwens zeggen dat ik, tot nu toe, totaal geen last heb van dat het te zwaar is oid.
Als ik refresh krijg ik zo goed als direct de pagina te zien, geen enkele ladingstijd
Zal zo meteen nog wel wat code plaatsen
toevoeging op 30 december 2012, 18:02:25:[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] twinRow[COLOR= #007700](){[/COLOR]
[URL="http://www.php.net/for"]for[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]<=[/COLOR] [COLOR= #0000BB]9[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700]++){[/COLOR]
[COLOR= #0000BB]$array[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
[COLOR= #0000BB]$row[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]getRow[COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$row[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$col[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$waarde[/COLOR][COLOR= #007700]){[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$waarde[/COLOR] [COLOR= #007700]===[/COLOR] false[COLOR= #007700]){[/COLOR]
[COLOR= #0000BB]$poss[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/explode"]explode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]","[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]possible[COLOR= #007700][[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #0000BB]$col[/COLOR][COLOR= #007700]]);[/COLOR]
[URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$poss[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$value[/COLOR][COLOR= #007700]){[/COLOR]
[COLOR= #0000BB]$array[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$value[/COLOR][COLOR= #007700]][] =[/COLOR] [COLOR= #0000BB]$col[/COLOR][COLOR= #007700];
}
}
}[/COLOR]
[COLOR= #0000BB]$check[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
[URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$array[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$integer[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$waarde[/COLOR][COLOR= #007700]){[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/count"]count[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$waarde[/COLOR][COLOR= #007700]) ==[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]){[/COLOR]
[URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$check[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$getal[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$true[/COLOR][COLOR= #007700]){[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$integer[/COLOR] [COLOR= #007700]!=[/COLOR] [COLOR= #0000BB]$getal[/COLOR] [COLOR= #007700]&&[/COLOR] [URL="http://www.php.net/in_array"]in_array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$waarde[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]$array[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$getal[/COLOR][COLOR= #007700]]) &&[/COLOR] [URL="http://www.php.net/in_array"]in_array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$waarde[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]$array[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$getal[/COLOR][COLOR= #007700]])){[/COLOR]
[COLOR= #0000BB]$Poss[/COLOR] [COLOR= #007700]= ([/COLOR][COLOR= #0000BB]$integer[/COLOR] [COLOR= #007700]<[/COLOR] [COLOR= #0000BB]$getal[/COLOR] [COLOR= #007700]?[/COLOR] [COLOR= #0000BB]$integer[/COLOR][COLOR= #007700].[/COLOR][COLOR= #DD0000]","[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$getal[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #0000BB]$getal[/COLOR][COLOR= #007700].[/COLOR][COLOR= #DD0000]","[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$integer[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]possible[COLOR= #007700][[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #0000BB]$waarde[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]]] =[/COLOR] [COLOR= #0000BB]$Poss[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]possible[COLOR= #007700][[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #0000BB]$waarde[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]]] =[/COLOR] [COLOR= #0000BB]$Poss[/COLOR][COLOR= #007700];
}
}[/COLOR]
[COLOR= #0000BB]$check[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$integer[/COLOR][COLOR= #007700]] =[/COLOR] true[COLOR= #007700];
}
}
}
}[/COLOR]
?>
Deze functie controleert op de twin regel binnen een rij, dus als er binnen een rij 2 getallen zijn die allebei alleen op 2 dezelfde hokjes kunnen. Dan worden alle andere mogelijkheden voor die 2 hokjes verwijderd omdat die een van die 2 waardes moet zijn