From c675cd3af801855747e894201981cba7dbacb3a0 Mon Sep 17 00:00:00 2001 From: rbamforth <79797573+rbamforth@users.noreply.github.com> Date: Sat, 10 Apr 2021 23:27:22 +0100 Subject: [PATCH] Initial version of Craps game. --- 29 Craps/csharp/Craps/Craps.sln | 31 +++++++++++++++++++ 29 Craps/csharp/Craps/Craps/Craps.csproj | 8 +++++ 29 Craps/csharp/Craps/Craps/Dice.cs | 24 ++++++++++++++ 29 Craps/csharp/Craps/Craps/Program.cs | 12 +++++++ .../Craps/CrapsTester/CrapsTester.csproj | 20 ++++++++++++ .../csharp/Craps/CrapsTester/CrapsTests.cs | 31 +++++++++++++++++++ 6 files changed, 126 insertions(+) create mode 100644 29 Craps/csharp/Craps/Craps.sln create mode 100644 29 Craps/csharp/Craps/Craps/Craps.csproj create mode 100644 29 Craps/csharp/Craps/Craps/Dice.cs create mode 100644 29 Craps/csharp/Craps/Craps/Program.cs create mode 100644 29 Craps/csharp/Craps/CrapsTester/CrapsTester.csproj create mode 100644 29 Craps/csharp/Craps/CrapsTester/CrapsTests.cs diff --git a/29 Craps/csharp/Craps/Craps.sln b/29 Craps/csharp/Craps/Craps.sln new file mode 100644 index 00000000..f6ab76ec --- /dev/null +++ b/29 Craps/csharp/Craps/Craps.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31112.23 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Craps", "Craps\Craps.csproj", "{783A49D7-DADE-477A-9973-D9457258573B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrapsTester", "CrapsTester\CrapsTester.csproj", "{44DFE8DB-715F-428E-992D-A97C34D47B98}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {783A49D7-DADE-477A-9973-D9457258573B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {783A49D7-DADE-477A-9973-D9457258573B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {783A49D7-DADE-477A-9973-D9457258573B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {783A49D7-DADE-477A-9973-D9457258573B}.Release|Any CPU.Build.0 = Release|Any CPU + {44DFE8DB-715F-428E-992D-A97C34D47B98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44DFE8DB-715F-428E-992D-A97C34D47B98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44DFE8DB-715F-428E-992D-A97C34D47B98}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44DFE8DB-715F-428E-992D-A97C34D47B98}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {871679FF-B86C-468B-960E-DFC625CDB5D0} + EndGlobalSection +EndGlobal diff --git a/29 Craps/csharp/Craps/Craps/Craps.csproj b/29 Craps/csharp/Craps/Craps/Craps.csproj new file mode 100644 index 00000000..c73e0d16 --- /dev/null +++ b/29 Craps/csharp/Craps/Craps/Craps.csproj @@ -0,0 +1,8 @@ + + + + Exe + netcoreapp3.1 + + + diff --git a/29 Craps/csharp/Craps/Craps/Dice.cs b/29 Craps/csharp/Craps/Craps/Dice.cs new file mode 100644 index 00000000..3485f0f6 --- /dev/null +++ b/29 Craps/csharp/Craps/Craps/Dice.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Craps +{ + public class Dice + { + private Random rand = new Random(); + public readonly int sides; + + public Dice() + { + sides = 6; + } + + public Dice(int sides) + { + this.sides = sides; + } + + public int Roll() => rand.Next(1, sides); + } +} diff --git a/29 Craps/csharp/Craps/Craps/Program.cs b/29 Craps/csharp/Craps/Craps/Program.cs new file mode 100644 index 00000000..17688427 --- /dev/null +++ b/29 Craps/csharp/Craps/Craps/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace Craps +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} diff --git a/29 Craps/csharp/Craps/CrapsTester/CrapsTester.csproj b/29 Craps/csharp/Craps/CrapsTester/CrapsTester.csproj new file mode 100644 index 00000000..748e7da4 --- /dev/null +++ b/29 Craps/csharp/Craps/CrapsTester/CrapsTester.csproj @@ -0,0 +1,20 @@ + + + + netcoreapp3.1 + + false + + + + + + + + + + + + + + diff --git a/29 Craps/csharp/Craps/CrapsTester/CrapsTests.cs b/29 Craps/csharp/Craps/CrapsTester/CrapsTests.cs new file mode 100644 index 00000000..9765ba61 --- /dev/null +++ b/29 Craps/csharp/Craps/CrapsTester/CrapsTests.cs @@ -0,0 +1,31 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Craps; + +namespace CrapsTester +{ + [TestClass] + public class DiceTests + { + [TestMethod] + public void SixSidedDiceReturnsValidRolls() + { + var dice = new Dice(); + for (int i = 0; i < 100000; i++) + { + var roll = dice.Roll(); + Assert.IsTrue(roll >= 1 && roll <= dice.sides); + } + } + + [TestMethod] + public void TwentySidedDiceReturnsValidRolls() + { + var dice = new Dice(20); + for (int i = 0; i < 100000; i++) + { + var roll = dice.Roll(); + Assert.IsTrue(roll >= 1 && roll <= dice.sides); + } + } + } +}