Göm menyn

TDDD49 Programmering C# och .NET

HT2


Följande labbar ska redovisas separat eller i klump, personlingen av samtliga (1 eller 2) studenter som lämnar in labben. Labbarna ska även lämnas in electroniskt.

Tema är brädspel. En lämplig storlek på är schack eller poker - tictacktoe är för litet. Du kan implementera ett existeraden brädspel med regler och allt som en övning i kursen - men förstås inte publicera sådant copyright-skyddat material.

Tänk på att implementera ett lagom stort brädspel. Kursen är på 107 timmars eget arbete. Om du vill göra ett för stort spel - lämna då in något tekniskt och volymmässigt tillräckligt och jobba vidare efter kursen. Om du vill göra ett väldigt, väldigt litet spel - gör inte det för då kan du inte bli godkänd.

Tänk också på att labbarna hänger ihop. När du löser en labb, gör det med de andra labbarna i åtanke.

Labb 1: GUI

  • Bygg spelets grässnitt (GUI).
  • GUIt ska vara helt separerat från annan kod. T.ex. ska därför inte spellogik hamna i event-metoder utan läggas i spelmotorn. Eventmetoderna andropar sedan spelmotorn. Detta har inte konsekvens här men eventuellt senare

Labb 2: Spelets motor.

  • Här definerar du datatyper du behöver, tillståndshantering och spellogik.
  • En separat regelmotor som validerar förändringar av spelets datatyper (tillåtet, icke tillåtet) implementeras.
  • Separera logik, datatyper och regelmotorn väl.

Labb 3: AI

  • Bygg kod för en AI-spelare som kan spela på egen hand. AIn behöver inte vara särdeles intelligent.

Labb 4: Synkad lagring.

  • Impementera stöd för att lagra spels tillstånd (hela tiden) på ett oberoende format.
  • Även förändringar i det lagrade datat ska upptäckas av spelet så att t.ex. en manuell ändring i databasen eller XML-filen upptäcks av programmet som uppdaterar sitt gränssnitt.
  • Du kan välja att hantera lagring med en en databas, XML, JSON ... eller något annat format men det ska gå att tolka utanför C# och inte direkt bygga på C#-serialisering.
  • Ett krav är att du i alla lägen använder LINQ för att jobba med din lagring.

Om du skött dig i kursen :-) bör du nu ha ett sjukt kul spel.


Sidansvarig: Erik Berglund
Senast uppdaterad: 2014-10-07