Laboration 7: Luffarschack

 

 

Uppgift

Uppgiften är att göra ett enkelt luffarschackspel med grafiskt användargränssnitt. I spelet möts två spelare på ett rutnät. Varje spelare har en symbol och spelet går ut på att försöka åstadkomma fem i rad (horisontellt, vertikalt eller diagonalt) av sin symbol.

 

Vi delar uppgiften till tre följande delar som är tänkt att varje del ska göras i en laborationstillfälle:

Del 1: Ett textbaserat spel

Del 2: Ett grafiskt användargränssnitt utan några funktionalitet som är kopplat till spelet

Del 3: Koppla del1 och del2 till ett fungerande program som skulle kunna köras både grafiskt eller textbaserat beroende på hur användaren startar programmet.

 

Det är inget krav att följa instruktionerna i labbpeken punkt för punkt men följande krav ska uppfyllas av ditt program:

  1. Programmet håller reda på vem som är i tur att spela.
  2. Programmet ska kontrollera vem som har vunnit inte bara att någon har gjort det.
  3. Det ska inte gå att sätta en symbol på en ruta som är upptagen.
  4. Det ska vara lätt att ändra storlek på spelplanet.

 

 

Del1: Textbaserat spel

Ladda ner följande filer som finns i kursbiblioteket. Läs kommentarer som finns i filen och komplettera koden till ett fungerande textbaserat luffarschackspel efter angivna kommentarer.

En körning av spelet när det är klar skulle kunna se ut som nedan:

_ _ _ _ _ _

_ _ _ _ _ _

_ _ _ _ _ _

_ _ _ _ _ _

_ _ _ _ _ _

_ _ _ _ _ _

 

Spelare A

Välj rad: 1

Välj kolumn: 2

_ x _ _ _ _

_ _ _ _ _ _

_ _ _ _ _ _

_ _ _ _ _ _

_ _ _ _ _ _

_ _ _ _ _ _


 

Spelare B

Välj rad: 1

Välj kolumn: 3

_ x o _ _ _

_ _ _ _ _ _

_ _ _ _ _ _

_ _ _ _ _ _

_ _ _ _ _ _

_ _ _ _ _ _

 

o.s.v. …

 

 

Gör följande:

  1. ladda ner följande filer från kurskatalogen: Luffarschack.java, Spelplan.java och Ruta.java
  2. Läs igenom kommentarer som finns för varje klass så att ni kommer in i hur strukturen är tänkt.
  3. Börja med kompilera filen Ruta.java och kör klassen Ruta.class:
    javac Ruta.java
           och sedan
    java Ruta
    Ändra i
    Ruta.java där det står //MODIFERA och kompilera om och kör tills du får ett ”GOTT NYTT ÅR” på skärmen när du kör programmet.
  4. Ändra i följande metoder som finns i filen Spelplan.java:
    geSymbol()
    updatera()
    geRad()
    geKolumn()
    kontrolleraLedig()
  5. Kompilera filen LuffarSchack.java och kör programmet. Börja med att skriva en kod i metoden main i klassen LuffarSchack som gör följande:
    1. En slinga som avbryts när inga lediga ruter finns eller när någon har vunnit, i slingan ska följande saker ske:
    2. Spelaren A matar in sitt drag
    3. Programmet kontrollerar om det är ett giltigt drag, d.v.s. ligger inom spelplanet och valda rutan inte är upptagen sedan tidigare. Om rutan är upptagen då ska användaren A ska kunna mata in ett nytt drag tills det blir ett giltigt drag. 
    4.  Nu ska planet uppdateras med symbolen som hör till spelaren A.
    5.  Programmet ska nu kontrollera om spelare A har vunnit och i så fall detta ska meddelas och programmet avslutas och annars ska programmet fortsätta till nästa punkt.
    6. Punkt b-e skall göras fast för spelare B den här gången.

 

  1. Nu skall programmet delvis fungera, det enda man behöver göra är att fixa metoden kontrollera5IRad() i klassen Spelplan. Känn dig fri att deklarera egna andra metoder som kan underlätta implementering av kontrollera5IRad().

 

 

När du känner dig klar kontrollera att ditt program fyller alla krav som finns i början av det här dokumentet, visa ditt program till en handledare och be om synpunkter.

 

Information om del 2 och 3 kommer senare.