Een vriend van me heeft een bordspel gemaakt en ik wil de computer gebruiken om de hoogst mogelijke score te berekenen.
Het bordspel bestaat uit 3 bij 6 vlakken en op elk vlak kan je een kaart neerleggen.
Er zijn 31 soorten kaarten.
regel: elke kaart mag maar 1 keer voorkomen op het speelbord
Het aantal punten dat je krijgt is afhankelijk van de kaart en z'n buren (alle 8 zijn buren).
Ik heb een mooi stukje code dat vrij vlot het aantal punten van een ingevuld bord kan berekenen, dat is het probleem niet en dat gaat ook vrij snel.
Het probleem zit um in het aantal mogelijke bord combinaties.
als ik geen rekening hou met dat elke kaart maar 1 keer mag voorkomen heb ik 40^18 = +/- 7 * 10 ^ 26 mogelijkheden. M'n laptop is redelijk modern, maar ik ben bang dat de aarde eerder vergaat dan dat ik alle opties heb doorgerekent.
(Nu na 1 nacht brute-force rekenen ben ik bij vlak 7 van de 18, schiet niet op)
De vraag is dus hoe dat ik dit slimmer kan aanpakken om de maximum score te vinden zonder een leven lang te hoeven rekenen met m'n laptop.
Het bordspel bestaat uit 3 bij 6 vlakken en op elk vlak kan je een kaart neerleggen.
Er zijn 31 soorten kaarten.
regel: elke kaart mag maar 1 keer voorkomen op het speelbord
Het aantal punten dat je krijgt is afhankelijk van de kaart en z'n buren (alle 8 zijn buren).
Ik heb een mooi stukje code dat vrij vlot het aantal punten van een ingevuld bord kan berekenen, dat is het probleem niet en dat gaat ook vrij snel.
Het probleem zit um in het aantal mogelijke bord combinaties.
als ik geen rekening hou met dat elke kaart maar 1 keer mag voorkomen heb ik 40^18 = +/- 7 * 10 ^ 26 mogelijkheden. M'n laptop is redelijk modern, maar ik ben bang dat de aarde eerder vergaat dan dat ik alle opties heb doorgerekent.
(Nu na 1 nacht brute-force rekenen ben ik bij vlak 7 van de 18, schiet niet op)
De vraag is dus hoe dat ik dit slimmer kan aanpakken om de maximum score te vinden zonder een leven lang te hoeven rekenen met m'n laptop.
Klus page: http://klusthuis.blogspot.com