Gå till innehållet

Lösningsförslag till uppgift 5.21

Random slump = new Random();

int antalTärningar = 5;
int antalSidor = 6;

int[] tärningsresultat = new int[antalTärningar];            
bool[] låstaTärningar = new bool[antalTärningar];
bool allaTärningarLåsta = false;

// Ge startvärden till arrayerna
for (int i = 0; i < antalTärningar; i++)
{
    tärningsresultat[i] = 0;
    låstaTärningar[i] = false;
}

while (allaTärningarLåsta == false)
{
    // Slå tärningarna som inte är låsta
    for (int i = 0; i < antalTärningar; i++)
    {
        if (låstaTärningar[i] == false)
        {
            tärningsresultat[i] = slump.Next(1, antalSidor + 1);
        }
    }

    // Skriv ut tärningsresultaten
    Console.WriteLine("Här är dina tärningsresultat:");
    for (int i = 0; i < antalTärningar; i++)
    {
        Console.Write($"Tärning {i+1}: {tärningsresultat[i]}");

        if (låstaTärningar[i] == true)
        {
            Console.Write("   LÅST");
        }
        Console.WriteLine();
    }
    Console.WriteLine();

    // Lås nya tärningar
    Console.WriteLine("Vilka tärningar vill du låsa?");
    string låsSträng = Console.ReadLine();
    string[] låsLista = låsSträng.Split(' ');
    for (int i = 0; i < låsLista.Length; i++)
    {
        int nyttLåsIndex = int.Parse(låsLista[i]) - 1;
        låstaTärningar[nyttLåsIndex] = true;
    }

    // Kolla om alla tärningar är låsta
    allaTärningarLåsta = true;
    for (int i = 0; i < antalTärningar; i++)
    {
        if (låstaTärningar[i] == false)
        {
            allaTärningarLåsta = false;
        }
    }

    Console.WriteLine();
}

Console.WriteLine("Alla tärningar är låsta, programmet avslutas...");