Files
basic-computer-games/76_Russian_Roulette/csharp/Program.cs
2022-01-17 08:35:11 +02:00

107 lines
3.3 KiB
C#

using System;
namespace RussianRoulette
{
public class Program
{
public static void Main(string[] args)
{
PrintTitle();
var includeRevolver = true;
while (true)
{
PrintInstructions(includeRevolver);
switch (PlayGame())
{
case GameResult.Win:
includeRevolver = true;
break;
case GameResult.Chicken:
case GameResult.Dead:
includeRevolver = false;
break;
}
}
}
private static void PrintTitle()
{
Console.WriteLine(" Russian Roulette");
Console.WriteLine("Creative Computing Morristown, New Jersey");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("This is a game of >>>>>>>>>>Russian Roulette.");
}
private static void PrintInstructions(bool includeRevolver)
{
Console.WriteLine();
if (includeRevolver)
{
Console.WriteLine("Here is a revolver.");
}
else
{
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("...Next Victim...");
}
Console.WriteLine("Type '1' to spin chamber and pull trigger.");
Console.WriteLine("Type '2' to give up.");
}
private static GameResult PlayGame()
{
var rnd = new Random();
var round = 0;
while (true)
{
round++;
Console.Write("Go: ");
var input = Console.ReadKey().KeyChar;
Console.WriteLine();
if (input != '2')
{
// Random.Next will retun a value that is the same or greater than the minimum and
// less than the maximum.
// A revolver has 6 rounds.
if (rnd.Next(1, 7) == 6)
{
Console.WriteLine(" Bang!!!!! You're dead!");
Console.WriteLine("Condolences will be sent to your relatives.");
return GameResult.Dead;
}
else
{
if (round > 10)
{
Console.WriteLine("You win!!!!!");
Console.WriteLine("Let someone else blow their brains out.");
return GameResult.Win;
}
else
{
Console.WriteLine("- CLICK -");
Console.WriteLine();
}
}
}
else
{
Console.WriteLine(" CHICKEN!!!!!");
return GameResult.Chicken;
}
}
}
private enum GameResult
{
Win,
Chicken,
Dead
}
}
}