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);
+ }
+ }
+ }
+}