mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-22 15:16:33 -08:00
Simplify RussianRoulette (C#) folder structure
This commit is contained in:
106
76_Russian_Roulette/csharp/Program.cs
Normal file
106
76_Russian_Roulette/csharp/Program.cs
Normal file
@@ -0,0 +1,106 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user