Differences

This shows you the differences between two versions of the page.

Link to this comparison view

tre_i_rad [2017-09-01 14:54]
tre_i_rad [2022-07-18 13:20] (current)
Line 1: Line 1:
 +====== 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: 
 +  - **“Nytt spel”** 
 +  - **“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.  [[http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm|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: [[ttt_code_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...
 +
 +
 +