C# :: Aufgabe #275 :: Lösung #6

8 Lösungen Lösungen öffentlich
#275

Glücksspiel Zufällige Zahl 0-9

Fortgeschrittener - C# von re_mas - 27.11.2019 um 18:30 Uhr
Die Aufgabenstellung ist wie folgt:
- Glücksspiel bei der eine random Zahl zwischen 0 - 9 erzeugt werden soll.
- Der Spieler hat ein Startkonto von 10.000 Punkten und kann damit einen beliebigen Teilbetrag auf die zufällig erzeugte Zahl setzen.
- Liegt er richtig bekommt er das 9 Fache seines Einsatzes als Gewinn
- Programmieren Sie ein entsprechendes Programm, welches die Eingaben von der Tastatur einliest und
die Ausgaben auf dem Bildschirm liefert. Die zu erratende Zahl kann durch einen verfügbaren Zufallsgenerator gezogen werden.
#6
vote_ok
von osternachten (100 Punkte) - 17.12.2020 um 11:50 Uhr
Quellcode ausblenden C#-Code
namespace GlückspielMachtSüchtig
{
    class Program
    {
        static void Main(string[] args)
        {
            decimal einsatz = 0;
            int deineZahl = 0;

            GlücksSpiel.Spieler spieler = new GlücksSpiel.Spieler();
            spieler.Konto = 10_000;

            while (true)
            {
                bool einsatz_b = false;
                bool deineZahl_b = false;
                Console.Clear();
                Console.WriteLine("+---------------------------------------+");
                Console.WriteLine("| '275 - Glücksspiel zufällige Zahl 0-9 |");
                Console.WriteLine("+---------------------------------------+");
                Console.WriteLine();
                if (spieler.Konto == 0) break;
                Console.WriteLine($"Kontostand: {spieler.Konto}");
                while (!einsatz_b) { Console.Write("Deinen Einsatz: "); einsatz_b = decimal.TryParse(Console.ReadLine(), out decimal result); einsatz = result; }
                while (!deineZahl_b) { Console.Write("Deine Zahl (0-9): "); deineZahl_b = int.TryParse(Console.ReadLine(), out int result); deineZahl = result; }
                if (einsatz <= spieler.Konto) { GlücksSpiel.Start(ref spieler, einsatz, deineZahl); }
                else Console.WriteLine("Dein Kontostand ist nicht ausreichend gedeckt!");
                Console.ReadLine();
            }
            Console.WriteLine("Game Over für dich mein junger Helikopter.");
            Console.ReadLine();
        }

        #region Glückspiel
        public class GlücksSpiel
        {
            private static Random rand = new Random();
            private decimal bertrag;

            public struct Spieler { public decimal Konto; }

            public static void Start(ref Spieler spieler, decimal einsatz, int seineZahl)
            {
                if (seineZahl > 9) { Console.WriteLine("Zahl darf nur im Bereich von 0 - 9 sein."); return; }
                //Spieler wirft seinen Einsatz in den Topf
                spieler.Konto -= einsatz;
                //Richtige zufällige Zahl wird gezogen
                var zahl = Enumerable.Range(0, 10).OrderBy(x => rand.Next()).Take(1).FirstOrDefault();
                var text = "Zahl stimmt nicht überein!";
                Console.WriteLine($"Gezogene Zahl ist: {zahl}");
                //Wenn die Zahl übereinstimmt dann Einsatz * 9
                if (seineZahl == zahl) { spieler.Konto += einsatz * 9; text = "Zahl stimmt überein!"; }
                Console.WriteLine($"Update - KontoStand des Spielers: {spieler.Konto} - {text}");
            }
        }
        #endregion
    }
}


So das ist meine Lösung ich denke mal das sollte so passen, benutzt doch in Zukunft mehr Linq :)!

Kommentare:

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

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