Mobiltelefonapplikationer med J2ME: Hemtentamen 2007-06-02

Det här är hemtentan som går lördag 2 juni 2007 i kursen Mobiltelefonapplikationer med J2ME. Ansvarig lärare är Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se), telefon 070-73 47 013.

Instruktioner

  1. Skriv och provkör programmet som beskrivs i uppgiften, och skicka sen in det färdiga programmet till mig (Thomas.Padron-McCarthy@tech.oru.se) senast klockan 08:00 söndag 3 juni 2007.
  2. Du får använda dator, böcker och vilka andra hjälpmedel som helst, men du får inte samarbeta eller fråga någon (utom mig).
  3. Ibland kan det ta lång tid för e-post att komma fram, så om du har brådskande frågor om tentan kan det vara säkrast att ringa till mobilnumret ovan.
  4. Packa ihop hela katalogen med applikationen i en Zip-fil, och skicka den som en bilaga. Men döp först om Zip-filen från nånting.zip till exempelvis nånting.info för att överlista överambitiösa virusfilter. Om applikationen bara består av en enda Java-fil kan man i stället skicka bara den filen.
  5. Om du inte senast på söndagen fått e-post från mig med en bekräftelse på att du skickat in uppgiften, bör du kontakta mig, enklast genom att ringa eller SMS:a mig (ifall det är e-posten som inte fungerar).
  6. Godkänt resultat på den här hemtentan ger betyget G på teoridelen av kursen. Tillsammans med godkända inlämningsuppgifter ger detta betyget G på hela kursen. Om man vill ha betyget VG ska man dessutom själv hitta på och göra en mindre projektuppgift.

Uppgiften

Vi ska göra ett enkelt luffarschacksprogram, så man kan spela luffarschack på sin mobiltelefon. Om man vill, och kan, är det tillåtet att använda grafik, till exempel så här:

Skärmbild med grafik

Som ett enklare alternativ kan man bara skriva ut brädet i en TextBox:

Skärmbild utan grafik

Vi antar att spelaren har kryssen, och börjar, medan telefonen har ringarna.

Krav på programmet:

  1. Programmet ska klara ett bräde som är åtminstone 3 gånger 3 positioner stort.
  2. Spelaren måste kunna sätta ut sina kryss på något sätt.
  3. Det ska inte gå att sätta ett kryss i en ruta som redan är upptagen.
  4. Programmet ska sätta ut ringar. Det ska inte sätta ringar i rutor som redan är upptagna, men förutom det finns det inga krav på att programmet ska spela särskilt intelligent.
Notera att följande inte ingår som krav på tentan, men om man vill får man förstås implementera det också:
  1. Programmet behöver inte upptäcka när någon har vunnit.
  2. Programmet behöver inte spela särskilt intelligent.
  3. Hade det varit riktig luffarschack, och inte den här tre-i-rad-varianten, hade man behövt ett större bräde att spela på, och det hade krävts (åtminstone) fem i rad för att vinna.


Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se), 1 juni 2007