02100+02199 Indledende Programmering: Programmeringsprojekt: Brætspil

02100+02199  Indledende Programmering        Januar 2004
Programmeringsprojekt: Brætspil


[Til udskrift anbefales PostScript eller PDF versionerne.]

Introduktion

Formålet med dette projekt er at give deltagerne erfaring med basale GUI-mekanismer i Java og at lade dem praktisere deres generelle Java-kundskab.

Opgaven går ud på at implementere et brætspil, således at det kan spilles på en computer. Projektet udføres i grupper á 2-3 personer.

Der kan vælges mellem følgende spil:

  1. Æselspil
  2. Ataxx
  3. Fanorona
Detaljerede beskrivelser af spillene kan findes via projektsiden:
www.imm.dtu.dk/courses/02100/Project

Problemformulering

Der skal udvikles et Java-program, der tillader det relevante antal spillere at spille spillet manuelt på en enkelt computer. Specifikt for 2-personers grupper skal programmet kunne:

For 3-personers grupper skal programmet yderligere gøre det muligt at: Programmet skal dokumenteres med en rapport som nærmere beskrevet i afsnit 6.

Programdesign

Programmet bør designes efter Model-View-Control princippet som vist i GUI-noten. Dette princip giver en god programopdeling, tillader systematisk test af indre dele og kan evt. benyttes som grundlag for arbejdsdeling.

Opgaven kan løses i en række trin:

  1. Brætmodel. Fastlæggelse af datastrukturer til modellering af brættet og den aktuelle placering af brikker.
  2. Træk. Definition af lovlige træk og deres ændring af modellens tilstand.
  3. Grafik. Grafisk repræsentation af spiltilstanden.
  4. Styring (eng. control). Fastlæggelse af, hvordan træk aktiveres/vælges og hvordan spilforløbet styres.
  5. Ekstra funktionalitet (gemning/hentning osv.).

Afprøvning og demonstration

Det forventes ikke at der laves en intensiv test af alle programmets dele inden for kursets tidsramme, men som mininum kræves at I:

Nogle noter om GUI-test kan findes via projektsiden.

Nogle råd

Rapportkrav

Programmet skal dokumenteres i en kort rapport med følgende indhold:

Det anbefales at følge de stilistiske råd i noten Writing Reports on Software. Rapporten bør være på højst 8 sider (eksklusiv forside og bilag). Rapporten skrives på dansk eller evt. engelsk.

En brugervejledning (eng. user's guide) skal være inkluderet som bilag. Denne skal fortælle, hvordan programmet køres og hvordan træk og andre operationer udføres. Spillets regler kan antages kendt. Brugervejledningen forventes at fylde 1-2 sider.

Al programkode skal inkluderes som bilag på en sådan måde, at det er muligt at finde en bestemt klasse. Programteksten skal selvfølgelig være veldokumenteret som beskrevet i noten Short Advice for Documenting Java Programs.

Endvidere skal alle tests og resultater såvel som demonstrationsplanen optræde som bilag.

OBS: Hver gruppe forventes at udarbejde program og dokumentation selvstændigt. Enhver brug af materiale fra andre kilder (andre grupper, www, ...) skal eksplicit angives i introduktionen med detaljer om samarbejde/oprindelse. I modsat fald vil sådan brug blive betragtet som forsøg på snyd og vil blive indberettet til studieadministrationen.

Projektaflevering

Hver gruppe skal aflevere rapporten i én underskreven kopi senest fredag d. 23. januar kl. 9.00 i postboksene i bygning 322's vestvendte trappeopgang. Samtidigt skal hver gruppe aflevere programmet elektronisk.

Samme dag, mellem kl. 9 og 12, skal hver gruppe demonstrere deres program over for en hjælpelærer.

Efter nærmere aftale vil det være muligt at aflevere og demonstrere torsdag d. 22. januar i stedet.

De praktiske detaljer omkring grupperegistrering, elektronisk aflevering samt demonstration vil komme til at fremgå via projektsiden. Ligeledes vil rettelser, uddybninger og FAQ til projektet kunne findes der. Væsentlige ændringer vil blive adviseret via CampusNet.

Evalueringskriterier

Opgaven vil især blive bedømt på basis af følgende kriterier:


Hans Henrik Løvengreen, Jan 8, 2004