C# :: Aufgabe #275 :: Lösung #7
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.
#7
von osternachten (100 Punkte)
- 17.12.2020 um 11:43 Uhr
namespace GlückspielMachtSüchtig
{
class Program
{
static void Main(string[] args)
{
decimal einsatz = 0;
int deineZahl = 0;
Glückspiel.Spieler spieler = new Glückspiel.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ückspiel.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ückspiel
{
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
}
}Das ist meine Lösung, Viel Spaß damit und benutzt doch mehr Linq :)
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
