1701 introduktion vektor

Öppna projektet där du har skrivit klassen Dice.

1. Uppgift

RandomStatistics

  • count0
  • count1
  • count2
  • count3
  • count4
  • count5
  • myDice
  1. clear()
  2. makeStatistics()
  3. printStatistics()

Uppgiften består i att simulera 600 tärningskast och föra statistik över kasten. Resultatet ska sedan presenteras i terminalfönstret. Du ska skriva en klass RandomStatistics. I klassen ska det finnas tre metoder. En som simulerar 600 tärningskast och för statistik över resultatet. En annan som skriver ut resultatet. Slutligen en metod som nollställer.

Fält

Deklarera sex fält av typen int och ett fält av typen Dice:

count0     // # of ones
count1     // # of twoes
count2     // # of threes
count3     // # of fores
count4     // # of fives
count5     // # of sixes
myDice     // dice to roll

Konstruktorn

  • Konstruktorn tar inga parametrar.
  • Variablerna count0 till count5 initieras till värdet 0.
  • Variabeln dice tilldelas en referens till ett objekt av klassen Dice.

Metoder

clear()

Nollställer variablerna count0 till count5.

makeStatistics()

600 tal mellan 1 och 6 slumpas. Använd tärningen för att göra detta. De sex variabler count0 till count5 räknar hur många ettor, tvåor o.s.v. som det blir. Använd dig av en for-slinga för att slumpa 600 tal. Syntaxen för for-slingan är som följer:

for( int i = 0; i < 11; ++i )
{
  //skriv koden här
}

printStatistics()

Skriver ut hur många ettor, tvåor, o.s.v. som det blev. D.v.s. skriver ut värdet hos fälten count0 till count5. Utskriften ska ha nedanstående utseende:

Antal 1: 100
Antal 2: 99
Antal 3: 95
Antal 4: 106
Antal 5: 89
Antal 6: 94

2. Uppgift

Sätt in hakparanteser: count0 blir count[0], count1 blir count[1], ... count5 blir count[5]

Använd dig av ersättningsverktyget i BlueJ, Tool > Replace …

Observera att klassen inte går att kompilera nu.

3. Uppgift

Deklarera vektorn count bland fälten i klassen.

Skapa vektorn i konstruktorn.

Exemplet nedan visar hur vektorn x deklareras och skapas. Vektorn har plats för tre decimaltal (typen double).

double [] x;       //deklaration görs bland fälten
x = new double [3] //skapandet av vektorn skrivs i konstruktorn

Kompilera och testa programmet.

4. Uppgift

Skriv om initieringen av count med hjälp av en for-slinga. Skriv även om nollställningen av count i metoden clear() m.h.a. en for-slinga.

5. Uppgift

Kan du förkorta koden för utskriften? Gör det.

6. Uppgift

Kan du förkorta koden för ”uppräknandet” av count[0], count[1], … count[5]? Gör det.

7. Uppgift - Dice

Nu ska tärningsklassen skrivas om så att man kan skriva new Dice(4) för att få en fyrsidig tärning. En get-metod som lämnar ut antalet sidor på tärningen ska också finnas.

Gör efter eget huvud eller läs instruktionen nedan. Om du gör efter eget huvud kan du läsa instruktionen när du är klar. Gjorde du på samma vis?

Lägg till ett fält, i klassen Dice, som håller reda på hur många sidor tärningen har. Fältet får sitt värde i konsruktorn med hjälp av en parameter.

Lägg till metoden getNumberOfSides() som lämnar ut hur många sidor tärningen har.

Kontrollera att du får alla värden då du rullar tärningen med en tresidig tärning.

8. Uppgift - RandomStatistics

Ändra koden så att statistik för 1000 kast med en tiosidig tärning visas. Du får bara ändra på koden i klassen RandomStatistics.

Pröva att alla metoder fungera som de ska.

Ändra koden så att statistik för 2000 kast med en tjugosidig tärning visas.

9. Uppgift - Extra

Ändra på koden så att statistik för x kast med en y-sidig tärning visas, där x = 100 * y.

Tips! Du kan få en konstant genom att skriva.

private final int NO_TWROWS_PER_SIDE = 100;