Tre i rad

Uppgift i Programmering 2 och Webbserverprogrammering 1

Denna uppgift är ett samarbete mellan kurserna Programmering 2 och Webbserverprogrammering 1. Uppgiften är enkel, ni ska som minimikrav programmera spelet “tre i rad”.

Programmering 2

I kursen Programmering 2 ska ni göra gränssnittet mot användarna (klienten) och den ska via ett REST-anrop kontakta ett backend. Klientsidan ska visa hur spelbrädet ser ut utifrån det svar den får från sitt backend. Från klienten kan man göra något av följande 2 anrop:

  1. “Nytt spel”
  2. “Nytt drag”

Ni ska dessutom rita ett UML-diagram över era Java-klasser samt generera JavaDoc.

Ladda hem zip-filen med JSON-klasserna, packa upp och lägg java-json.jar i lämplig mapp. java-json.jar.zip
Skapa ditt projekt i Eclipse.
Sedan: Project→Properties→Java Build Path→ Add External JARs→Leta rätt på din fil

Webbserverprogrammering 1

I kursen Webbserverprogrammering ska ni programmera ett backend som sköter och håller reda på hur spelbrädet ser ut. Ni ska gör en AI som lägger godkända drag.
Ni ska bygga ett enkelt REST-api med två end-points.

  • 1. Nytt spel:

Till svar får man en game_token (id för spelet som spelas) och hur spelbrädet ser ut.

  • 2. Nytt drag:
    • game_token
    • var man lägger

Till svar får man status på det drag som gjordes (om någon vunnit, fel i dragen m.m.) och hur spelbrädet ser ut.

Tips

  • Försök att få igång en prototyp först, tex kan ni börja med att API:et bara slumpar fram olika uppställningar med olika status för att se att man kan rita upp de svar man får.
  • Fundera på vad man måste göra från början och vad man kan vänta med.
  • Tidsbrist gör att det finns lite mer hjälp här: Kod mm

Extra

När ni är klara med miniminivå kan ni jobba vidare med följande, välj ordning själv:

  • Kunna välja om man ska ha X eller O + om man ska börja eller inte.
  • Servern ska ha minst två nivåer på AI, en mer av typen slump och en annan som man inte ska kunna vinna mot.
  • Spela “tre i rad” mot någon annan än mot AI.
  • Ny typ av spel, fyra i rad, luffarschack, othello, mastermind…