Michel Vuijlsteke's weblog

Tales of Drudgery & Boredom.

Spelletje (i)

Vanalles gedaan vandaag, en pas vanavond aan mijn spelletje begonnen. Het is Python geworden, de programmeertaal. Omdat ik er veel goed van gehoord heb, en omdat ik zin had om eens een taal te leren waar ik nog nooit in gewerkt had.

Het is een beetje objectgeoriënteerd, mijn spelletje, omdat dat nu eenmaal kan in Python. Het had ook niet-OO gekund, maar hey, zo is het nu eenmaal.

Het spelbord zit in een class, met een paar methodes eraan vast: eentje om het bord te tekenen, eentje om een zet te doen, en eentje om te kijken of er een winnaar is. En het bord zelf, de vakjes, zitten allemaal in één string van 25 karakters, haha.

Ik heb voorlopig enkel de hoofdloop van het spel staan: een nieuw bord maken, en zolang er geen winnaar is, de speler doen spelen. Uiteindelijk komen daar twee spelers in, nu heb ik alleen nog maar een functie voor menselijke speler (teken bord, vraag zet en zorg ervoor dat hij geldig is, doe zet).

En dit is wat het tot nog toe doet:

Turn 1

     a b c d e
   +===========+
 1 |           |
 2 |           |
 3 |           |
 4 |           |
 5 |           |
   +===========+
Player O, enter your move (a-e or 1-5):

Er zijn twee spelers, O en M. Het speelbord is 5×5, en spelers kunnen om beurten een zet doen aan de linkerkant of langs boven. Nu is speler O aan zet. Stel dat hij een pion op B binnenschuift, dan wordt dit de situatie:

     a b c d e
   +===========+
 1 |   O       |
 2 |           |
 3 |           |
 4 |           |
 5 |           |
   +===========+
Player M, enter your move (a-e or 1-5):

M zet een pion op 1, en daarmee verschuift de pion van O naar rechts:

Turn 2

     a b c d e
   +===========+
 1 | M   O     |
 2 |           |
 3 |           |
 4 |           |
 5 |           |
   +===========+
Player O, enter your move (a-e or 1-5):

…en zo dus verder. Het is niet compleet evident spelen, omdat het spelbord voortdurend verschuift, maar het is ook geen schaken natuurlijk. En na de negende zet kan het er bijvoorbeeld zo uitzien:

Turn 10

     a b c d e
   +===========+
 1 | M O M M   |
 2 | M O O     |
 3 | M M O O M |
 4 | O M O   M |
 5 |     O O   |
   +===========+
Player O, enter your move (a-e or 1-5):

Zo. Next up: de computer doen bewegen. Ik denk eerst eens random om te zien wat het doet, en dan eens brute kracht, drie ply of zo. En dan pas slimmer werken.

En dáárna: grafisch verzorgen.

4 Reacties

  1. Spelbord class die zichzelf tekent, moet dat geen MVC zijn? 😉

  2. Help! De programmeerpolitie!

    Ik heb daar dus niet voor gestudeerd hé, voor programmeren. Ik doe ook maar aan. 🙂

  3. M’n comment was een beetje cynisch. Ik heb daar wel voor gestudeerd (alle, een beetje), en daar moest alles MVC of ’t was niet goed. Ook op plaatsen waar het compleet niet nodig was.

    Bij iets als dit is MVC niet meer dan overkill, net als in alle projecten die je dan aan den unief mag maken ook. Fun gegarandeerd.

  4. Puh, de programmeerpolitie zou beter eerst over unit tests beginnen ipv over MVC. *rolt ogen*

    :p

Zeg uw gedacht

© 2016 Michel Vuijlsteke's weblog

Thema gemaakt door Anders NorenBoven ↑