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
