diff --git a/C#/Countdown Numbers Game/Countdown Numbers Game.sln b/C#/Countdown Numbers Game/Countdown Numbers Game.sln
new file mode 100644
index 0000000..fdf02ad
--- /dev/null
+++ b/C#/Countdown Numbers Game/Countdown Numbers Game.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27428.2015
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Countdown Numbers Game", "Countdown Numbers Game\Countdown Numbers Game.csproj", "{92DB8F4B-F5E6-4BCE-B496-7386AB268A18}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {92DB8F4B-F5E6-4BCE-B496-7386AB268A18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {92DB8F4B-F5E6-4BCE-B496-7386AB268A18}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {92DB8F4B-F5E6-4BCE-B496-7386AB268A18}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {92DB8F4B-F5E6-4BCE-B496-7386AB268A18}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C36BEE9C-9C1E-481A-B62E-1BE2A345EEFC}
+ EndGlobalSection
+EndGlobal
diff --git a/C#/Countdown Numbers Game/Countdown Numbers Game/App.config b/C#/Countdown Numbers Game/Countdown Numbers Game/App.config
new file mode 100644
index 0000000..731f6de
--- /dev/null
+++ b/C#/Countdown Numbers Game/Countdown Numbers Game/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/C#/Countdown Numbers Game/Countdown Numbers Game/Countdown Numbers Game.csproj b/C#/Countdown Numbers Game/Countdown Numbers Game/Countdown Numbers Game.csproj
new file mode 100644
index 0000000..cb303a1
--- /dev/null
+++ b/C#/Countdown Numbers Game/Countdown Numbers Game/Countdown Numbers Game.csproj
@@ -0,0 +1,52 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {92DB8F4B-F5E6-4BCE-B496-7386AB268A18}
+ Exe
+ Countdown_Numbers_Game
+ Countdown Numbers Game
+ v4.6.1
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/C#/Countdown Numbers Game/Countdown Numbers Game/Program.cs b/C#/Countdown Numbers Game/Countdown Numbers Game/Program.cs
new file mode 100644
index 0000000..5335b0d
--- /dev/null
+++ b/C#/Countdown Numbers Game/Countdown Numbers Game/Program.cs
@@ -0,0 +1,103 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Countdown_Numbers_Game {
+ class Program {
+ static void Main(string[] args) {
+ Program p = new Program();
+ p.getInput();
+ }
+
+ private void getInput() {
+ int target = 0;
+ int[] inputArray = new int[0];
+
+ bool inputValid = false;
+ while (!inputValid) {
+ try {
+ Console.Write("Enter a target full number: ");
+ target = int.Parse(Console.ReadLine());
+ inputValid = true;
+ } catch {
+ Console.WriteLine("That's not a valid number");
+ }
+ }
+
+ inputValid = false;
+ while (!inputValid) {
+ try {
+ Console.Write("Enter an array of whole numbers sepperated by spaces: ");
+ string inputString = Console.ReadLine();
+ string[] inputStringArray = inputString.Split(' ');
+ inputArray = new int[inputStringArray.Length];
+ for (int i = 0; i < inputStringArray.Length; i++) {
+ inputArray[i] = int.Parse(inputStringArray[i]);
+ }
+ inputValid = true;
+ } catch {
+ Console.WriteLine("An error occured, you may not have formated the array correctly or diddnt use intigers");
+ }
+ }
+
+ Solver solve = new Solver();
+ string output = solve.getSolution(target, inputArray);
+
+ if (output == "false") {
+
+ } else {
+
+ }
+ Console.ReadKey();
+ }
+
+ class Solver {
+
+ public string getSolution(int target, int[] inputArray) {
+ inputArray = SortArray(inputArray);
+
+ for (int i = 0; i < inputArray.Length; i++) {
+ Console.Write(inputArray[i] + " ");
+ }
+
+ if (!isPossible(target, inputArray)) {
+ return "false";
+ }
+
+
+ return findMethod(target, inputArray);
+ }
+
+ private bool isPossible(int target, int[] inputArray) {
+ for (int i = 1; i < inputArray.Length; i++) {
+ if (inputArray[i] + inputArray[i-1] == target {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private string findMethod(int target, int[] inputArray) {
+ return " ";
+ }
+
+ private int[] SortArray(int[] array) {
+ int length = array.Length;
+ int temp = array[0];
+ for (int i = 0; i < length; i++) {
+ for (int j = i + 1; j < length; j++) {
+ if (array[i] > array[j]) {
+ temp = array[i];
+ array[i] = array[j];
+ array[j] = temp;
+ }
+ }
+ }
+ return array;
+ }
+ }
+ }
+}
diff --git a/C#/Countdown Numbers Game/Countdown Numbers Game/Properties/AssemblyInfo.cs b/C#/Countdown Numbers Game/Countdown Numbers Game/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..0638ef0
--- /dev/null
+++ b/C#/Countdown Numbers Game/Countdown Numbers Game/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Countdown Numbers Game")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Countdown Numbers Game")]
+[assembly: AssemblyCopyright("Copyright © 2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("92db8f4b-f5e6-4bce-b496-7386ab268a18")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/C#/Factorial/Factorial.sln b/C#/Factorial/Factorial.sln
new file mode 100644
index 0000000..c0649e5
--- /dev/null
+++ b/C#/Factorial/Factorial.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27428.2015
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Factorial", "Factorial\Factorial.csproj", "{8C37B50A-05F4-4864-B51E-26DA65757160}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8C37B50A-05F4-4864-B51E-26DA65757160}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8C37B50A-05F4-4864-B51E-26DA65757160}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8C37B50A-05F4-4864-B51E-26DA65757160}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8C37B50A-05F4-4864-B51E-26DA65757160}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C0E00600-4537-4E17-B79D-F6D71B203019}
+ EndGlobalSection
+EndGlobal
diff --git a/C#/Factorial/Factorial/App.config b/C#/Factorial/Factorial/App.config
new file mode 100644
index 0000000..731f6de
--- /dev/null
+++ b/C#/Factorial/Factorial/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/C#/Factorial/Factorial/Factorial.csproj b/C#/Factorial/Factorial/Factorial.csproj
new file mode 100644
index 0000000..53e6045
--- /dev/null
+++ b/C#/Factorial/Factorial/Factorial.csproj
@@ -0,0 +1,53 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {8C37B50A-05F4-4864-B51E-26DA65757160}
+ Exe
+ Factorial
+ Factorial
+ v4.6.1
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/C#/Factorial/Factorial/Program.cs b/C#/Factorial/Factorial/Program.cs
new file mode 100644
index 0000000..642ae59
--- /dev/null
+++ b/C#/Factorial/Factorial/Program.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Numerics;
+using System.Diagnostics;
+
+namespace Factorial {
+ class Program {
+ static void Main(string[] args) {
+ bool exit = false;
+ while (!exit) {
+ bool correct = false;
+ int find = 0;
+ while (!correct) {
+ try {
+ Console.Write("Enter a number to find the factorial of: ");
+ find = int.Parse(Console.ReadLine());
+ correct = true;
+ } catch {
+ Console.WriteLine("That is not a number");
+ }
+ }
+ Console.WriteLine($"The factorial of { find } is { Factorial(find) }");
+ Console.WriteLine("Press any key to exit and enter to try again");
+ var response = Console.ReadKey();
+ switch (response.Key) {
+ case ConsoleKey.Enter:
+ break;
+ default:
+ exit = true;
+ break;
+ }
+ }
+ }
+
+ static BigInteger Factorial(int arg) {
+ Stopwatch t = new Stopwatch(); ;
+ t.Start();
+ BigInteger value = 1;
+ for (int i = 2; i <= arg; i++) {
+ value *= i;
+ }
+ t.Stop();
+ Console.WriteLine("Found in {0} ms", t.Elapsed.TotalMilliseconds);
+ return value;
+ }
+ }
+}
diff --git a/C#/Factorial/Factorial/Properties/AssemblyInfo.cs b/C#/Factorial/Factorial/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..1e6ca8b
--- /dev/null
+++ b/C#/Factorial/Factorial/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Factorial")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Factorial")]
+[assembly: AssemblyCopyright("Copyright © 2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("8c37b50a-05f4-4864-b51e-26da65757160")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/C++/FirstProgram/main b/C++/FirstProgram/main
new file mode 100644
index 0000000..f7f8a62
Binary files /dev/null and b/C++/FirstProgram/main differ
diff --git a/C++/FirstProgram/main.cpp b/C++/FirstProgram/main.cpp
new file mode 100644
index 0000000..6e3c482
--- /dev/null
+++ b/C++/FirstProgram/main.cpp
@@ -0,0 +1,22 @@
+#include
+using namespace std;
+
+long factorial(int num) {
+ long factor = num;
+ for (int i = 1; i < num; i++) {
+ factor = i * factor;
+ }
+ return factor;
+}
+
+int main() {
+ int num;
+ cout << "Enter a number to find it's factorial: ";
+ cin >> num;
+
+ long output = factorial(num);
+ cout << output;
+
+ cin >> num;
+ return 0;
+}
\ No newline at end of file
diff --git a/C++/FirstProgram/main.exe b/C++/FirstProgram/main.exe
new file mode 100644
index 0000000..b93ab82
Binary files /dev/null and b/C++/FirstProgram/main.exe differ
diff --git a/C++/FirstProgram/makefile b/C++/FirstProgram/makefile
new file mode 100644
index 0000000..9c2ee80
--- /dev/null
+++ b/C++/FirstProgram/makefile
@@ -0,0 +1,5 @@
+all: main.cpp
+ g++ -g -Wall -o main main.cpp
+
+clean:
+ $(RM) main
\ No newline at end of file
diff --git a/LICENSE.md b/LICENSE.md
index b200b18..86010d6 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,6 +1,6 @@
# DON'T BE A DICK PUBLIC LICENSE
-> Version 1.2.1, December 2018
+> Version 1.2.1, April 2018
> Copyright (C) 2018 Benjamin Kyd
@@ -14,9 +14,11 @@ copies of this license document.
Being a dick includes - but is not limited to - the following instances:
- 1a. Outright copyright infringement - Don't just copy this and change the name.
- 1b. Selling the unmodified original with no work done what-so-ever, that's REALLY being a dick.
- 1c. Modifying the original work to contain hidden harmful content. That would make you a PROPER dick.
+ 1a. Outright copyright infringement - Don't just copy this and change the name.
+
+ 1b. Selling the unmodified original with no work done what-so-ever, that's REALLY being a dick.
+
+ 1c. Modifying the original work to contain hidden harmful content. That would make you a PROPER dick.
2. If you become rich through modifications, related works/services, or supporting the original work,
share the love. Only a dick would make loads off this work and not buy the original work's