Gå til indholdet

N207 Simpel klasse (Yatzy bæger)

Opret en ny tom konsol-applikation og definer en terning som følger:

public class Terning
{
    // Ved .NET Core behøver den ikke være statisk!!
    private static Random rnd = new Random();
    public int værdi;

    public Terning()
    {
        this.værdi = 1;
    }

    public void Skriv()
    {
        Console.Write("[" + this.værdi + "]");
    }

    public void Ryst()
    {
        this.værdi = rnd.Next(1, 7);
    }
}

Din opgave er nu at skabe en klasse Bæger som kan indeholde fem terninger i et private array af Terning. Klassen skal indeholde følgende medlemmer:

  • en constructor der tilføje fem nye terninger til det interne arrays når der skabes en instans af Bæger
  • en Ryst-metode der ryster alle terninger i bæger (bør måske kaldes fra constructor?)
  • en Skriv der udskriver alle terninger som [x] [x] [x] [x] [x]

Klassen skal kunne bruges som:

Bæger b = new Bæger();
b.Skriv();
b.Ryst();
b.Skriv();

hvilket kunne udskrive:

[4][5][5][2][1]
[4][3][6][5][5]
Klik for at se et forslag til en løsning
using System;

namespace Yatzybaeger
{
    class Program
    {
        static void Main(string[] args)
        {
            Bæger b = new Bæger();
            b.Skriv();
            b.Ryst();
            b.Skriv();

            Console.ReadKey();
        }
    }

    public class Bæger
    {
        private Terning[] terninger = new Terning[5];

        public Bæger()
        {
            for (int i = 0; i < 5; i++)
                terninger[i] = new Terning();
            Ryst();
        }

        public void Ryst()
        {
            for (int i = 0; i < 5; i++)
                terninger[i].Ryst();
        }

        public void Skriv()
        {
            for (int i = 0; i < 5; i++)
                terninger[i].Skriv();
            Console.WriteLine();
        }
    }


    public class Terning
    {            
        private static Random rnd = new Random();
        public int værdi;

        public Terning()
        {
            this.værdi = 1;
        }

        public void Skriv()
        {
            Console.Write("[" + this.værdi + "]");
        }

        public void Ryst()
        {
            this.værdi = rnd.Next(1, 7);
        }
    }
}