Darts leg uitgooien
- 04/01/2009
Voorbeeldbestanden bij dit artikel: | |
Inleiding
Wie speelt er als eens graag een spelletje darts? Ondergetekende doet dat wel eens af en toe, al ben ik er echt geen held in. Er worden dan zoals in het echt meerdere legs gespeeld. Bij een leg vertrekken alle spelers van 301 of 501 punten, en moet je proberen om als eerste 0 punten te bereiken. De puntentelling is heel simpel. 1 beurt bestaat uit 3 pijltjes en het puntentotaal van die beurt wordt gewoon afgetrokken van het nog uitstaande aantal punten. Niet elk vakje op het dartsbord zijn evenveel waard: soms gelden dubbele punten, soms zelfs driedubbele punten. Zie hier op Wikipedia.
VBA-code
De onderstaande VBA-code bevat een zelf geschreven routine om:
- te kijken of een bepaald aantal punten kan uitgegooid worden (afhankelijk van het aantal pijltjes)
- als het kan uitgegooid worden, dan alle combinaties weer te geven waarop je dit kunt doen
Het puntenaantal geef je op in cel B1, het aantal pijltjes waarover je nog beschikt zet je in D1. Probeer maar eens uit! Volg ook mijn topic op Helpmij en deze topic op Ozgrid.
UPDATE VAN DE CODE: Naar aanleiding van de gestelde vraag op Ozgrid ging ik vandaag nog even verder met de code. Er zijn nu 2 opties als je de code uitvoert: ofwel vraag je de meest voor de handliggende uitgooi op (dit is optie 1), ofwel vraag je zoals in de eerste code alle mogelijke uitgooien op (optie 2). Het wijst zichzelf zeker uit. Deze lijst dient als leidraad. Opmerkingen zijn zoals altijd welkom!