C# :: Aufgabe #13 :: Lösung #9

14 Lösungen Lösungen öffentlich
#13

Lotto - Simulation - 6 aus 49

Anfänger - C# von Gustl - 25.11.2012 um 16:16 Uhr
Schreiben Sie ein Programm, welches 6 Zahlen zwischen 1 und 49 abfrägt. Danach soll das Programm solange 6 Zufallszahlen berechnen bis alle 6 eingegebenen Zahlen übereinstimmen. Natürlich darf eine Zahl nicht zweimal vorkommen.
Dann soll ausgegeben werden nach wie vielen "Spielen" ein 6er erzielt wurde und wie hoch die Chance auf einen 3er, einen 4er und einen 5er war.
#9
vote_ok
von niknik (1230 Punkte) - 06.08.2015 um 15:08 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LottoProgramm
{
    class Program
    {

        public static void SpieleLotto(int[] arr)
        {
            Random rnd = new Random();
            int[] ziehung = new int[6];
            int anzahl, anzahlZiehungen = 0;
            int dreier = 0, vierer = 0, fuenfer = 0;

            do
            {
                for (int i = 0; i < 6; i++)
                {
                    ziehung[i] = rnd.Next(1, 50);
                    for (int j = 0; j < i; j++)
                    {
                        while (ziehung[i] == ziehung[j])        // Eingabe bereits in der Ziehung
                        {
                            ziehung[i] = rnd.Next(1, 50);
                        }
                    }
                }

                anzahl = 0;
                for (int i = 0; i < 6; i++)
                {
                    for (int j = 0; j < 6; j++)
                    {
                        if (ziehung[i] == arr[j])
                        {
                            anzahl++;
                        }
                    }
                }
                if (anzahl == 3) { dreier++; }
                else if (anzahl == 4) { vierer++; }
                else if (anzahl == 5) { fuenfer++; }
                anzahlZiehungen++;
            } while (anzahl != 6);

            Console.WriteLine("Nach {0} Ziehungen hättest du gewonnen.\nDer Jackpot lag bei {1} Mio.", anzahlZiehungen, rnd.Next(1000));
            Console.WriteLine("Bis dahin hättest du {0} 3er, {1} 4er & {2} 5er gehabt", dreier, vierer, fuenfer);
        }

        static void Main(string[] args)
        {
            int[] zahlen = new int[6];
            int zahl;
            bool valid = false;
            Console.WriteLine("Wilkommen bei Lotto!\n\n\nDrücken Sie eine beliebige Tase, um fortzufahren");
            Console.ReadKey();
            for(int i = 0; i < 6; i++){
                do
                {
                    Console.Clear();
                    Console.WriteLine("Geben Sie ihre {0}. Zahl ein: ", (i+1));
                    valid = Int32.TryParse(Console.ReadLine(), out zahl);

                    if (valid != true                                               // Eingabe ungültig
                        || Array.Exists<int>(zahlen, element => element == zahl)    // Eingabe bereits enthalten
                        || zahl < 1 || zahl > 49)                                   // Eingabe keine Lottozahl
                    {
                        valid = false;
                        Console.WriteLine("Diese Eingabe ist ungültig. Versuche erneut ...\nDrücke beliebige Taste, um fortzufahren.");
                        Console.ReadKey();
                        continue;
                    }
                    else
                    {
                        zahlen[i] = zahl;
                    }

                } while (valid != true);
            }

            SpieleLotto(zahlen);
            Console.ReadLine();
            
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2090694

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.