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

#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.
- 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

von osternachten (100 Punkte)
- 17.12.2020 um 11:50 Uhr

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
Seite 1 von 0
1