C# :: Aufgabe #275
8 Lösungen

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.
Lösungen:

using System; namespace Aufgabe275 { class Program { static void Main(string[] args) { Random rnd = new Random(); Player player = new Player() { Points = 10000 }; bool stop = false; while (!stop) { int choice = player.getChoice(); int bet = player.getBet(); int number = rnd.Next(0, 10); Console.Clear(); Console.WriteLine("Die gezogene Zahl ist: "+number); if (number==choice) { Console.WriteLine("Gewonnen!!! Du hast "+bet*9+" Punkte gewonnen"); player.Points += bet * 9; } else { Console.WriteLine("Leider Verloren :("); } Console.Write("Noch eine Runde? (y/n): "); string repeat=Console.ReadLine(); if (repeat=="n") { stop = true; } } } } public class Player { private int _points; public int Points { get { return _points; } set { if (value < 0) { value = 0; } _points = value; } } public int getChoice() { int input = 12; while (!(input > 0 && input < 9)) { Console.Clear(); Console.Write("Wähle eine Zahl zwischen 0 und 9: "); int.TryParse(Console.ReadLine(), out input); } return input; } public int getBet() { int input = 0; while (!(input > 0 && input<_points)) { Console.Clear(); Console.WriteLine("Aktuelle Punkte: "+_points); Console.Write("Deinen Einsatz bitte: "); int.TryParse(Console.ReadLine(), out input); } _points -= input; return input; } } }

using System; class MainClass { private static int score; private static int rounds; public static void Main (string[] args) { score = 10000; rounds = 0; Random rand = new Random(); do { updateUserInterface(); try { int b, g, r = rand.Next(0, 10); Console.Write("\nYour bet : "); if(!Int32.TryParse(Console.ReadLine(), out b)) { throw new Exception("Invalid input for bet."); } if(b <= 0 && b > score) { throw new Exception("Bet invalid."); } Console.Write("Your guess : "); if(!Int32.TryParse(Console.ReadLine(), out g)) { throw new Exception("Invalid input for guess."); } Console.Write("\nNumber is : {0}", r); if(g <= 0 && g >= 10) { throw new Exception("Guess invalid."); } updateScore(b, g, r); rounds++; } catch(Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); } while(score > 0); } public static void updateUserInterface() { Console.Clear(); Console.WriteLine("+---------------------------------------+"); Console.WriteLine("| #275 - Glücksspiel Zufällige Zahl 0-9 |"); Console.WriteLine("+---------------------------------------+"); Console.WriteLine(); Console.WriteLine("Rounds played : {0}", rounds); Console.WriteLine("Score : {0}", score); } public static void updateScore(int bet, int guess, int result) { if(guess == result) { score += bet * 9; } else { score -= bet; } } }
Konsolenausgabe:
+---------------------------------------+
| #275 - Glücksspiel Zufällige Zahl 0-9 |
+---------------------------------------+
Rounds played : 2
Score : 10450
Your bet : 25
Your guess : 3
Number is : 1

private static void Aufgabe_275() { int coins = 10000; int gameSize = 9; string wrongInput = $"\nUngültiger Wert, versuch es nochmal.\n"; string randomValueChar = "r".ToUpperInvariant(); string userInput; int gameResult; Console.WriteLine($"\n\n\n Willkommen zum 275er. Ja heißt halt so."); while (coins > 0) { int inputTipResult = -1; int inputCoinResult; WriteLineInColor_275A("\n\n###############################################################\n\nNeue Runde, neues Glück ;)\n\n",ConsoleColor.DarkMagenta); while (true) { Console.WriteLine($"\nEine Zahl zwischen 0 und {gameSize} oder 'r' für einen zufälliger Tipp\nGib deinen Tipp ein: "); userInput = Console.ReadLine(); if (userInput.ToUpperInvariant() == randomValueChar) { break; } if (int.TryParse(userInput, out inputTipResult) && inputTipResult >= 0 && inputTipResult <= gameSize) { break; } Console.Clear(); WriteLineInColor_275A(wrongInput, ConsoleColor.Red); } if (userInput.ToUpperInvariant() == randomValueChar) { inputTipResult = new Random().Next(0, 9); } while (true) { WriteLineInColor_275A($"Tipp: {inputTipResult}",ConsoleColor.Green); Console.WriteLine($"\nDu hast {coins.ToString("#,###")} Coins.\nSetze deinen Einsatz (0-{coins.ToString("#,###")}):"); userInput = Console.ReadLine(); if (int.TryParse(userInput, out inputCoinResult) && inputCoinResult >= 0 && inputCoinResult <= coins) { break; } Console.Clear(); WriteLineInColor_275A(wrongInput,ConsoleColor.Red); } coins -= inputCoinResult; WriteLineInColor_275A($"\nEinsatz: {inputCoinResult.ToString("#,###")}",ConsoleColor.Green); gameResult = new Random().Next(0, gameSize); WriteLineInColor_275A($"\nEs wurde {gameResult} gewürfelt.\n",ConsoleColor.Blue); if (gameResult == inputTipResult) { WriteLineInColor_275A($"Du hast gewonnen. Es werden dir {(inputCoinResult * 9).ToString("#,###")} coins gutgeschrieben.\nDein neues Guthaben: {(coins += inputCoinResult * 9).ToString("#,###")}",ConsoleColor.Green); } else { WriteLineInColor_275A("Leider daneben.",ConsoleColor.Red); } WriteLineInColor_275A("AnyKey, den mal finden",ConsoleColor.DarkGray); Console.ReadKey(); Console.Clear(); } Console.WriteLine("Game Over. Genug gespielt, gute Nacht."); }

private static void WriteLineInColor_275A(string consoleOutput, ConsoleColor color) { Console.ForegroundColor = color; Console.WriteLine(consoleOutput); Console.ForegroundColor = ConsoleColor.White; }

using System; using System.Threading; namespace glueckspielmal9 { public class Player { int _coins; public int Coins { get => _coins; set => _coins = value; } int _bettingCoins; public int BettingCoins { get => _bettingCoins; set => _bettingCoins = value; } int _betnr; public int Betnr { get => _betnr; set => _betnr = value; } public Player() { } public Player(int _Coins) { Coins = _Coins; } } public class Game { Random rnd = new Random(Guid.NewGuid().GetHashCode()); int _numberDrawn; public int NumberDrawn { get => _numberDrawn; set { } } public Game() { this._numberDrawn = GenRndNr(); } private int GenRndNr() { return rnd.Next(0, 10); } } class Program { static void Main(string[] args) { bool looping = true; Player player = new Player(10000); while (looping) { Console.WriteLine("Q für beenden, S für neues Spiel"); ConsoleKeyInfo pressed = Console.ReadKey(true); switch (pressed.Key) { case ConsoleKey.Q: { looping = false; break; } default: { do { Console.WriteLine("Auf welche Zahl von 0-9 setzen Sie? "); player.Betnr = Convert.ToInt32(Console.ReadLine()); } while (player.Betnr < 0 || player.Betnr > 9); Console.WriteLine("wieviele Coins setzen Sie?"); player.BettingCoins = Convert.ToInt32(Console.ReadLine()); if (player.BettingCoins <= player.Coins) { Game game = new Game(); if (game.NumberDrawn == player.Betnr) { Console.WriteLine("Glückwunsch, gewonnen! Neuer Punktestand: "); player.Coins += (9 * player.BettingCoins); Console.WriteLine(player.Coins); } else { Console.WriteLine("Schade, verloren! Neuer Punktestand: "); player.Coins -= player.BettingCoins; Console.WriteLine(player.Coins); } } else { Console.WriteLine("Soviel können sie nicht setzen"); continue; } Console.WriteLine("Taste für weiter"); Console.ReadKey(true); break; } } } } } }

using System; using System.Threading; namespace Aufgabe_1_Taschenrechner { class Program { static void Main(string[] args) { int startbetrag = 10000,zufallszahl, i2, zahl09, gewinn, einsatz, i = 0; Console.WriteLine("\t\t+--------------------------------+"); Console.WriteLine("\t\t| ZUFALLSZAHLEN GLÜCKSSPIEL |"); Console.WriteLine("\t\t+--------------------------------+"); for (i = startbetrag; i >= 0; i = i++ ) { Console.WriteLine("\nSTARTBETRAG 10.000 Euro\n\n"); Console.WriteLine("Gib an auf welche Zahl du tippst (0-9)"); zahl09 = Convert.ToInt32(Console.ReadLine()); if (zahl09 >=10 ) { Console.WriteLine("Du hast keine mögliche Auswahl angegeben."); while (zahl09 >= 10) { Console.WriteLine("Bitte wähle eine Zahl zwischen 0 und 9"); zahl09 = Convert.ToInt32(Console.ReadLine()); } } Console.WriteLine("\nGib deinen Einsatz an: "); einsatz = Convert.ToInt32(Console.ReadLine()); if ( einsatz >= i + 1) { Console.WriteLine("Du hast nicht genug um soviel zu setzten."); while(einsatz >= i + 1) { Console.WriteLine("Dir stehen nur {0} Euro zur Verfügung\nGib deinen Einsatz an: ", i); einsatz = Convert.ToInt32(Console.ReadLine()); } } for (i2 = 0; i2 < 1; i2++) { Thread.Sleep(500); Random rnd = new Random(); zufallszahl = rnd.Next(0, 9); i = i - einsatz; if (zahl09 != zufallszahl) { Console.WriteLine("\nDu hast {0} verloren", einsatz); Console.WriteLine("Die Zahl ist: {0}\nLeider falsch getippt\n", zufallszahl); } else { gewinn = einsatz * 9; Console.WriteLine("Du hast {0} gewonnen", gewinn); i = i + gewinn; Console.WriteLine("Die Zahl ist: {0}\n Richtig getippt\n",zufallszahl); } Console.WriteLine("\nDu hast: {0} Euro\n", i); } if (i == 0) { int antwort; Console.WriteLine("Du hast kein Geld mehr, das Spiel ist vorbei!\n\n\n"); Console.WriteLine("Willst du nochmal spielen?\n\n\t1 für Ja || 2 für Nein\n\n"); antwort = Convert.ToInt32(Console.ReadLine()); if (antwort <= 0 || antwort >= 3) { Console.WriteLine("Auswahl nicht möglich!"); while (antwort <= 0 || antwort >= 3) { Console.WriteLine("Bitte wiederholen:\t\t 1 für Ja || 2 für Nein "); antwort = Convert.ToInt32(Console.ReadLine()); } if (antwort == 1) { Console.WriteLine("\nSpiel startet neu\n\n"); i = i + 10000; } else { if (antwort == 2) { Console.WriteLine("\n\nSpiel wird beendet"); i = i - 1; } } } else { if (antwort == 1) { Console.WriteLine("\nSpiel startet neu\n\n"); i = i + 10000; } else { if (antwort == 2) { Console.WriteLine("\n\nSpiel wird beendet"); i = i - 1; } } } } } Thread.Sleep(5000); } } }
Zitat:
Relativ Anfänger freundlich gemacht, auch wenn ich es wohl noch deutlich kürzer hätte machen können ;D
Sorry für keine Erklärungen, was ich wo wieso gemacht hab, aber das packt mein Kopf nich mehr.
Ihr findets schon selbst raus ^^
LG JK

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 :)

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 :)!

using System; namespace Glueckspiel { class Program { static void Main(string[] args) { int zufallszahl = 0; double guthaben = 10000; double einsatz; int gewaehltezahl = 0; Random rnd = new Random(); while (true) { Console.WriteLine("Willkommen beim Glückspiel.\nGlückspiel kann süchtig machen 18+\n"); do { Console.WriteLine("Auf welche Zahl möchtest du setzten? (1-10): "); gewaehltezahl = Convert.ToInt32(Console.ReadLine()); } while (gewaehltezahl != 1 && gewaehltezahl != 2 && gewaehltezahl != 3 && gewaehltezahl != 4 && gewaehltezahl != 5 && gewaehltezahl != 6 && gewaehltezahl != 7 && gewaehltezahl != 8 && gewaehltezahl != 9 && gewaehltezahl != 10); Console.WriteLine("Wie viel möchtest du setzten? (Aktuelles Guthaben = " + guthaben + " Euro): "); einsatz = Convert.ToDouble(Console.ReadLine()); guthaben = guthaben - einsatz; if (guthaben < 0) { Console.WriteLine("Du hast leider nicht genug Guthaben!"); guthaben = guthaben + einsatz; Console.ReadKey(); Console.Clear(); } else if (guthaben >= 0) { zufallszahl = rnd.Next(1, 1); if (gewaehltezahl == zufallszahl) { Console.WriteLine("Herzlichen Glückwunsch! Du hast gewonnen!\nDu gewinnst " + einsatz * 9 + " Euro" + "\nBeliebige Taste drücken..."); guthaben = guthaben + (einsatz * 9); } else if (gewaehltezahl != zufallszahl) { Console.WriteLine("SCHADE!! Du hast leider verloren. Die Zahl war " + zufallszahl + "\nDu verlierst deinen gesamten Einsatz.\nBeliebige Taste drücken..."); } Console.ReadKey(); Console.Clear(); } else { Console.WriteLine("AN ERROR OCCURED"); } } } } }