C# :: Aufgabe #275

3 Lösungen Lösungen öffentlich

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.

Lösungen:

vote_ok
von Kotgreifer (1020 Punkte) - 17.12.2019 um 10:04 Uhr
Quellcode ausblenden C#-Code
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;
		}

	}
}
vote_ok
von Exception (5030 Punkte) - 17.12.2019 um 19:58 Uhr
Quellcode ausblenden C#-Code
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

vote_ok
von Heftog (160 Punkte) - 19.12.2019 um 23:46 Uhr
Quellcode ausblenden C#-Code
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.");
        }

Quellcode ausblenden C#-Code
private static void WriteLineInColor_275A(string consoleOutput, ConsoleColor color)
        {
            Console.ForegroundColor = color;
            Console.WriteLine(consoleOutput);
            Console.ForegroundColor = ConsoleColor.White;
        }