C# :: Aufgabe #275

5 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 (1100 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 (6790 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;
        }
vote_ok
von miami666 (300 Punkte) - 07.02.2020 um 22:33 Uhr
Quellcode ausblenden C#-Code
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;
                        }
                }
            }
        }
    }
}
1 Kommentar
vote_ok
von J.K. (20 Punkte) - 19.02.2020 um 14:58 Uhr
Quellcode ausblenden C#-Code
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