C# :: Aufgabe #106 :: Lösung #9
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.
#9
von Danny (20 Punkte)
- 13.11.2015 um 17:28 Uhr
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RPSLS
{
class Program
{
static void Main(string[] args)
{
List<string> options = new List<string>();
options.Add("paper");
options.Add("scissors");
options.Add("rock");
options.Add("lizard");
options.Add("spock");
Console.WriteLine("Hello! Lets play a game. Type in one of the following words:\n" +
"rock \npaper \nscissors \nlizard \nspock" +
"\nand press Enter. If you want to quit the game, type in \"exit\"." +
"\nFor game rules type in \"rules\".");
string yourMove;
do
{
yourMove = Console.ReadLine();
if (yourMove == "rules")
{
Console.WriteLine("\nScissors cuts Paper, Paper covers Rock" +
"\nRock crushes Lizard, Lizard poisons Spock" +
"\nSpock smashes Scissors, Scissors decapitates Lizard" +
"\nLizard eats Paper, Paper disproves Spock" +
"\nSpock vaporizes Rock, Rock crushes Scissors");
}
else if (options.Contains(yourMove))
{
string opponentsMove = Program.randomizer(options);
string[] whoIsStronger = Program.gameLogic(yourMove);
Console.WriteLine("\nYour move was \"{0}\" and my move was \"{1}\".",
yourMove, opponentsMove);
Console.WriteLine(Program.results(whoIsStronger, yourMove, opponentsMove));
}
else
{
Console.WriteLine("\nYou're not that bright, huh? Let me repeat myself:" +
"\nType in one of the following words:\n" +
"rock \npaper \nscissors \nlizard \nspock" +
"\nand press Enter. If you want to quit the game, type in \"exit\"." +
"\nFor game rules type in \"rules\".");
}
} while (yourMove != "exit");
}
private static string randomizer(List<string> options)
{
Random random = new Random();
int position = random.Next(options.Count);
string computerChoice = options[position];
//public für alles, privat für eine Classe
//static - der typ bleibt gleich
//final - wert bleibt gleich
return string.Format(computerChoice);
}
private static string[] gameLogic(string yourMove)
{
string[] elementsStronger = new string[2];
if (yourMove == "paper")
{
elementsStronger[0] = "scissors";
elementsStronger[1] = "lizard";
}
else if (yourMove == "rock")
{
elementsStronger[0] = "paper";
elementsStronger[1] = "spock";
}
else if (yourMove == "lizard")
{
elementsStronger[0] = "scissors";
elementsStronger[1] = "rock";
}
else if (yourMove == "spock")
{
elementsStronger[0] = "lizard";
elementsStronger[1] = "paper";
}
else if (yourMove == "scissors")
{
elementsStronger[0] = "spock";
elementsStronger[1] = "rock";
}
return elementsStronger;
}
private static string results(string[] whoIsStronger, string yourMove, string opponentsMove)
{
string gameResult;
bool lost = whoIsStronger.Contains(opponentsMove);
if (lost == true)
{
gameResult = "You lost. Ha!";
}
else
{
if (yourMove == opponentsMove)
{
gameResult = "It's a draw! What are the odds!";
}
else
{
gameResult = "You won. Don't think that you are better than me.";
}
}
return gameResult;
}
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
