C# :: Aufgabe #106 :: Lösung #2
10 Lösungen

#106
Stein, Papier, Schere, Echse, Spock
Anfänger - C#
von Energy
- 24.09.2015 um 15:22 Uhr
Programmiere das Spiel Stein, Papier, Schere, Echse, Spock, sodass man selbst eine Figur auswählen kann und der Computer eine zufällige Figur auswählt. Ermittele dann, wer diese Partie gewonnen hat.
#2

von Mentalist999 (680 Punkte)
- 27.09.2015 um 15:21 Uhr
Problemlos durch weitere Handzeichen erweiterbarer Alghorhythmus.
Gruß
C#-Code
Gruß

[Flags] enum SSP : byte { None = 0, Schere = 1 << 0, Stein = 1 << 1, Papier = 1 << 2, Echse = 1 << 3, Spock = 1 << 4 } class Program { static void Main(string[] args) { Dictionary<byte, string> Results = new Dictionary<byte,string>() { { (byte)(SSP.Schere | SSP.Papier), "Schere schneidet Papier." }, { (byte)(SSP.Papier | SSP.Stein), "Papier bedeckt Stein." }, { (byte)(SSP.Stein | SSP.Echse), "Stein zerquetscht Echse." }, { (byte)(SSP.Echse | SSP.Spock), "Echse vergiftet Spock." }, { (byte)(SSP.Spock | SSP.Schere), "Spock zertrümmert Schere." }, { (byte)(SSP.Schere | SSP.Echse), "Schere köpft Echse." }, { (byte)(SSP.Echse | SSP.Papier), "Echse frisst Papier." }, { (byte)(SSP.Papier | SSP.Spock), "Papier widerlegt Spock." }, { (byte)(SSP.Spock | SSP.Stein), "Spock verdampft Stein." }, { (byte)(SSP.Stein | SSP.Schere), "Stein schleift Schere." }, { (byte)(SSP.Stein | SSP.Stein), "Stein gegen Stein." }, { (byte)(SSP.Schere | SSP.Schere), "Schere gegen Schere." }, { (byte)(SSP.Papier | SSP.Papier), "Papier gegen Papier." }, { (byte)(SSP.Echse | SSP.Echse), "Echse gegen Echse." }, { (byte)(SSP.Spock | SSP.Spock), "Spock gegen Spock." } }; char Input = default(char); for (byte User = 0, Npc = 0; Input != '0'; Input = Console.ReadKey().KeyChar, Console.Clear()) { Console.WriteLine("Runde {0}\n" + "Scores :" + "\n\tUser -> {1}" + "\n\tNPC -> {2}" + "\n\nDu musst wählen ..." + "\n0 - Exit" + "\n1 - Schere" + "\n2 - Stein" + "\n3 - Papier" + "\n4 - Echse" + "\n5 - Spock", User + Npc, User, Npc); if (!"012345".Contains(Input)) continue; SSP UserChoice = (SSP)Enum.Parse(typeof(SSP), Convert.ToString(1 << (byte)Input - 49, 10)), NpcChoice = (SSP)Enum.Parse(typeof(SSP), Convert.ToString(1 << new Random().Next(0, 5), 10)); string Result = Results[ (byte)(UserChoice | NpcChoice) ], Winner = Result.Split(' ')[0]; if (Winner == UserChoice.ToString()) User++; if (Winner == NpcChoice.ToString()) Npc++; Console.WriteLine(Result + "\n{0}", (Winner == UserChoice.ToString()) ? (Winner == NpcChoice.ToString()) ? "Unentschieden!" : "Du hast gewonnen!" : "Du hast verloren!"); } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1