Skip to content

Latest commit

 

History

History
58 lines (43 loc) · 5.3 KB

Lab 1.md

File metadata and controls

58 lines (43 loc) · 5.3 KB

Lab 1 - Tärningsspel

Godkänt-del

Die

I den första delen av uppgiften skall vi modellera en tärning med hjälp av en klass Die. Vi skall sedan använda den här tärningsklassen för att skapa ett enkelt tärningsspel. Tärningen skall ha två variabler: nuvarande värde och antal sidor (dvs max-värde för tärningen).

Antal sidor skall sättas i klassens konstruktor. Skall vara av typen int och ha en enkel gettermetod. Nuvarande värde skall förändras när man kallar på roll()-metoden (se nedan). Skall vara av typen int samt ha en getter-metod.

Tärningen skall också ha en slumpgenerator som privat klassvariabel. Slumpgeneratorn skall vara av typen Random och kommer att användas i vår roll()-metod. Typen Random kan importeras från java.util.Random.

För att kunna använda klassen kommer vi att behöva en metod: public void roll(). Den här metoden skall använda sig av slumpgeneratorn för att förändra tärningens nuvarande värde. Tips: ni bör använda standardklassen Random för detta. Random har en metod public int nextInt(int maxValue) som returnerar ett slumpmässigt heltal mellan 0 och (maxValue-1).  

Player

För att kunna göra ett simpelt tärningsspel skall vi nu också skapa en klass Player för att representera en spelare. En spelare skall ha tre instansvariabler: ett namn, en poäng och en tärning. Namnet skall sättas i klassens konstruktor-metod samt ha en enkel gettermetod. Poängen skall ha getter- och setter-metoder. Tärningen är vad spelaren kommer att använda för att spela tärningsspelet. Skall vara av typen Die.

En spelare skall också ha ett antal metoder:

  • rollDice(): Skall rulla spelarens tärning.
  • getDieValue(): Skall returnera värdet på spelaren tärning i form av ett heltal.
  • increaseScore(): Skall öka spelarens poäng med ett.
  • addDie(): Skapar en ny tärning och lägger till den till spelaren.

DiceGame

Vi skall nu skapa vårt enkla tärningsspel. Skapa en ny klass DiceGame. Denna klass skall kunna köras, så vi behöver en main()-metod. Nedan följer en beskrivning av hur spelet ska se ut, samt några metoder ni ska skapa. Ni måste sedan själva skriva main-metoden utifrån den här informationen, dvs ni måste klura ut hur allting hänger ihop själva!

Beskrivning av spelet:

Programmet frågar först hur många omgångar som skall spelas, samt hur många sidor tärningen har. Det frågar sedan efter namnet på spelaren. Använd er av ett Scanner-objekt för att ta input från spelaren via terminalen. Ni kan anta att användaren matar in korrekta värden, dvs ni behöver ej ha med felhantering. Varje omgång består av att spelaren gissar på ett värde och sedan rullar sin tärning. Om värdet spelaren gissade på är lika med värdet på tärningen, så får spelaren en poäng.

Extra utmaning 1 - MultiplayerDiceGame

För den som vill ha en extra utmaning skall ni skriva om DiceGame till det något mer avancerade MultiplayerDiceGame. I MultiplayerDiceGame skall det gå att ställa in antalet spelare. Spelet skall också kunna spelas med ett valfritt antal tärningar. Varje omgång går ut på att spelarna slår alla sina tärningar i tur och ordning. Spelarna får därefter poäng enligt det sammanlagda värdet av deras tärningar. (Notera att reglerna är annorlunda för det här spelet!)

Hjälpmetoder

  • private static ArrayList<Player> initialize();: Skall initialisera spelet genom att ta emot användarinput och skapa alla instanser som behövs, samt en lista av spelare som sedan returneras.
  • private static void takeTurn(ArrayList<Player> players);: Skall ta emot en lista av spelare och spela färdigt en hel omgång. Den skall gå igenom listan av spelare, rulla varje spelares tärningar, och summera resultatet för varje omgång.
  • private static ArrayList<Player> getWinners(ArrayList<Player> players);: Tar emot en lista av spelare och skall returnera en lista med vinnare. En vinnare är man om man har mest poäng. Vi har en lista eftersom flera spelare kan vinna, då flera spelare kan ha samma poäng.

Extra utmaning 2 - PigGame

I den här uppgiften skall vi skapa ett nytt tärningsspel som heter Pig. Spelet går ut på följande sätt: Spelet kan spelas med två eller fler spelare. Varje spelare har en sex-sidig tärning. Alla spelarna kommer sedan i tur och ordning få rulla på sin tärning. Vid en spelares skall den först rulla sin tärning. Resultatet på tärningen läggs till en pott för den här turen. Spelaren får nu ett val att stanna eller fortsätta. Om spelaren stannar läggs potten till dess totala poäng och turen går vidare till nästa spelare. Väljer spelaren att fortsätta rulla, får den rulla tärningen igen och addera resultatet till potten. Spelaren får nu göra samma val igen. Dock, om spelare skulle någon gång rulla en etta, försvinner alla poäng som ligger i potten och turen går över till nästa spelare. Den första spelaren som når upp till en totalpoäng av 100 vinner spelet.