Merge pull request #90 from BrianWhy/main

Added csharp version of Russion Roulette
This commit is contained in:
Jeff Atwood
2021-02-24 18:25:36 -08:00
committed by GitHub
3 changed files with 139 additions and 0 deletions

View 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
}
}
}

View File

@@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31019.35
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RussianRoulette", "RussianRoulette.csproj", "{9F052B4A-FA33-4BBE-9D9D-3CF8152569F1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9F052B4A-FA33-4BBE-9D9D-3CF8152569F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9F052B4A-FA33-4BBE-9D9D-3CF8152569F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9F052B4A-FA33-4BBE-9D9D-3CF8152569F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9F052B4A-FA33-4BBE-9D9D-3CF8152569F1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {97F5B1B0-A80A-4C1F-9F76-8D68B4A49E82}
EndGlobalSection
EndGlobal