4022 dice

Uppgift 2 - Dice

Lärandemål

  • Kunna slumpa tal
  • Kunna göra klass-variabler med static
  • Kunna skriva metoder som inte tar parametrar
  • Repetera hur man skriver if-satser

Uppgift 2A

Skapa en kopia av projektmappen. Döp mappen till Dice. Öppna detta projekt i Visual Studio.

Skriv om koden så att en tärning ritas, se nedan. Alla sju prickarna ska visas. Senare ska du skriva kod som bara visar vissa prickar. Börja med att göra sju objektvariabler, en för varje prick. Döp dem till dot0, dot1, ..., dot6. Vi kommer att ha nyttan av den här namngivningen senare.

Placera prickarna som nedan.

  1   4
  5 0 6
  3   2

Anpassa namngivningen

Byt namn på klassen Picture i solution explorer. Svara ja på frågan om du vill göra ändringar i koden också.

Byt text på knappen från draw till roll. Dubbelklicka på PictureForm.cs i solution explorer, så visas formuläret i designläge. Klicka därefter på knappen draw. Ändra sedan på text i properties-fönstret.

Extra namnbyten

Byt namn på övrigt för att anpassa till den nya applikationen.

Förberedelser för att kunna slumpa tal

Lägg till en metod Roll i klassen Dice. Vänta med innehållet i metoden.

Koppla tryckande på knappen roll till kastandet av tärningen. Du kan göra på följande vis.

Dubbelklicka på PictureForm.cs i solution explorer, så visas formuläret i designläge. Klicka därefter på knappen draw.

Lägg till en objektvariabel dice av datatypen Dice.

Skapa en tärning, i metoden Form1_Load, och lägg tärningen i objektvariabeln dice.

I metoden btnRoll_Click eller btnDraw_Click anropar du metoden Roll på objektet dice.

Ovanstående gör att du kan testköra programmet genom att klicka på knappen. Rätt antal ögon ska visas på tärningen när du har gjort nästa del.

Fler förberedelse

Lägg till en klassvariabel numberGenerator i klassen Dice. Kod följer nedan.

  private static Random numberGenerator;

Denna variabel kommer att delas av alla tärningar om vi gör flera. Vi gör så här för att slumptalen ska bli olika på tärningarna.

Gör ett objekt av klassen Random och lägg den i objektvariablen numberGenerator.

Lägg också till en objektvariabel number, som ska ska innehålla det antal prickar som tärningen ska visa.

Slumpa tal

Nu är det dags att fylla metoden Roll med innehåll. Pseudokod följer.

  Slumpa ett tal och lägg det i objektvariabeln number.

  Göm alla prickar.

  Visa rätt antal prickar

Det sista kan lösas tjusigt på följande vis. Det förutsätter att du har placerat dot0 - 6 som följder.

  1   4
  5 0 6
  3   2

  Om number är udda
      Visa dot0, d.v.s. pricken i mitten
  Om number är större eller lika med 2
      Visa dot1 och 2.
  Om number är större eller lika med 4
      Visa även dot 3 och 4
  Om number är 6
      Visa även dot 5 och 6.

Testa att tärningen kan kastas.

Reflektion

Rita klass-diagram för klassen Dice. Använd ArgoUML eller papper. Valet är ditt.

Rita objekt-diagram för klassen Dice. Även Cirkel-objekten ska ritas. ArgoUML kan användas här också.