Opdracht voor programmeren

Moderators: ArcherBarry, Fuzzwood

Reageer
Berichten: 202

Opdracht voor programmeren

Voor programmeren 2 moet ik een quarto spel maken. En hiervoor moet ik een goede strategie maken om te winnen.

Ik zal eens wat regels geven voor quarto:

- het spel bestaat uit 16 vakjes

- je kunt winnen door een verticale, horizontale, diagonale rij of vierkant te maken

- je kunt een winnen door 4 stenen op één van die rijen te zetten die allemaal eenzelfde eigenschap hebben.

- er bestaan 16 verschillende stenen, deze hebben allemaal de eigenschap: groot/klein, licht/donker, rond/vierkant, met/zonder gat.

- De eerste zet is verpicht een grote lichte ronde zonder gat.

- Je kiest als eerst een steen voor de tegenstander. De tegenstander kiest hiervoor een plek

Afbeelding

De strategie houdt dus een beetje in dat je voor de tegenstander een zet probeert uit te zoeken waar hij weinig mee kan.

Het spel moet gemaakt worden in java (ik heb hem af met een random strategie) Strategie.java is bij mij een Interface die twee methodes heeft suggestToken(Game game) en suggestSpot(Game game, Token token)

Game is een klasse die die functies heeft om te kijken of iets een winnende rij heeft, een keuze menu en het speelbord zelf, etc.

Misschien is een strategie om bijvoorbeeld 1.000.000 iteraties te doen en hieruit kijken welke eerste zet het vaakst wint? (door telkens het spel uit te spelen). De rekentijd moet je zo beperkt mogelijk houden. Of misschien kan je iets met de strategie als deze weet welke mogelijke winnende situaties er zijn? Zijn er volgens mij maar ongeveer 78.

Het gaat om 1.0 bonuspunt bij op het cijfer als jou strategie wint van die van andere in je groep.

alvast bedankt

Gebruikersavatar
Lorentziaan
Berichten: 99

Re: Opdracht voor programmeren

ben je bekend met game trees?

[wiki=en]game tree[/wiki]?
Raga

Berichten: 202

Re: Opdracht voor programmeren

Ah dat minimax algoritme hebben we laatst gebruikt voor tic-tac-to.. zonder het te weten.. ik denk dat ik er wel uitkom.. Ik zal alleen dat alpha-beta pruning door moeten lezen.. en dat ik niet elk spel tot het eind kan doorspelen...

bedankt voor de link!

Gebruikersavatar
Lorentziaan
Berichten: 99

Re: Opdracht voor programmeren

alpha-beta pruning is geen vereiste, maar het scheelt wel wat rekenwerk :D

en als je inderdaad niet tot het einde doorrekent, zul je de leafs (eindstanden) moeten evalueren;

daar zit vaak de grootste uitdaging is mijn ervaring
Raga

Reageer