diff --git a/C#/FileLister/FileLister.sln b/C#/FileLister/FileLister.sln
new file mode 100644
index 0000000..cf621b5
--- /dev/null
+++ b/C#/FileLister/FileLister.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27428.2043
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileLister", "FileLister\FileLister.csproj", "{F1117543-6651-499B-9A6D-E435B3E65607}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F1117543-6651-499B-9A6D-E435B3E65607}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F1117543-6651-499B-9A6D-E435B3E65607}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F1117543-6651-499B-9A6D-E435B3E65607}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F1117543-6651-499B-9A6D-E435B3E65607}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {0307D328-83AA-4506-A81B-F69E2AE2BF14}
+ EndGlobalSection
+EndGlobal
diff --git a/C#/FileLister/FileLister/App.config b/C#/FileLister/FileLister/App.config
new file mode 100644
index 0000000..731f6de
--- /dev/null
+++ b/C#/FileLister/FileLister/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/C#/FileLister/FileLister/FileLister.csproj b/C#/FileLister/FileLister/FileLister.csproj
new file mode 100644
index 0000000..67bc9ea
--- /dev/null
+++ b/C#/FileLister/FileLister/FileLister.csproj
@@ -0,0 +1,52 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {F1117543-6651-499B-9A6D-E435B3E65607}
+ Exe
+ FileLister
+ FileLister
+ 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#/FileLister/FileLister/Program.cs b/C#/FileLister/FileLister/Program.cs
new file mode 100644
index 0000000..7002d01
--- /dev/null
+++ b/C#/FileLister/FileLister/Program.cs
@@ -0,0 +1,56 @@
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+
+namespace FileLister {
+ class Program {
+ static void Main(string[] args) {
+ StreamReader reader;
+ string Path = "";
+ do {
+ Console.Write("Insert Path : ");
+ Path = Console.ReadLine();
+ } while (!Directory.Exists(Path));
+ Console.ForegroundColor = ConsoleColor.Green;
+ Console.WriteLine("Successfully navigated to {0} {1}", Path, "\n\n");
+ Console.ForegroundColor = ConsoleColor.White;
+
+ Console.WriteLine("Insert Type to search for \n" +
+ "0 : Files\n" +
+ "1 : Folders\n"
+ );
+ bool completed = false;
+
+ Console.Write("\n\n\n\n\n");
+
+ do {
+ string Input = Console.ReadLine();
+ switch (Input) {
+ case "0":
+ string[] Files = Directory.GetFiles(Path);
+ foreach (string File in Files) {
+ Console.WriteLine(File);
+ Thread.Sleep(50);
+ }
+ completed = true;
+ break;
+ case "1":
+ string[] Dirs = Directory.GetDirectories(Path);
+ foreach (string Dir in Dirs) {
+ Console.WriteLine(Dir);
+ Thread.Sleep(50);
+ }
+ completed = true;
+ break;
+ default:
+ break;
+ }
+ } while (!completed);
+
+ Console.ReadKey();
+ }
+ }
+}
\ No newline at end of file
diff --git a/C#/FileLister/FileLister/Properties/AssemblyInfo.cs b/C#/FileLister/FileLister/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..2864a29
--- /dev/null
+++ b/C#/FileLister/FileLister/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("FileLister")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("FileLister")]
+[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("f1117543-6651-499b-9a6d-e435b3e65607")]
+
+// 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/JavaScript/Game Of Life/css/style.css b/JavaScript/Game Of Life/css/style.css
new file mode 100644
index 0000000..f81696a
--- /dev/null
+++ b/JavaScript/Game Of Life/css/style.css
@@ -0,0 +1,14 @@
+body {
+ background-color: black;
+}
+
+canvas {
+ padding: 0;
+ margin: auto;
+ display: block;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+}
\ No newline at end of file
diff --git a/JavaScript/Game Of Life/index.html b/JavaScript/Game Of Life/index.html
new file mode 100644
index 0000000..8300084
--- /dev/null
+++ b/JavaScript/Game Of Life/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+ Conways Game Of Life
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaScript/Game Of Life/index.js b/JavaScript/Game Of Life/index.js
new file mode 100644
index 0000000..f653585
--- /dev/null
+++ b/JavaScript/Game Of Life/index.js
@@ -0,0 +1,86 @@
+/*
+ Author(s): Ben (plane000)#8618
+ Created: 25/06/2018
+ Last Updated: 25/06/2018
+ Last Updated by: Ben (plane000)#8618
+*/
+
+let c = document.getElementById("canv");
+let ctx = c.getContext("2d");
+
+let canvasSize = 400;
+let gridSize = 40;
+let grid = makeGridArr(gridSize); //0 = dead, 1 = alive
+let next;
+
+for (let i = 0; i < gridSize; i++) {
+ for (let j = 1; j < gridSize; j++) {
+ grid[i][j] = Math.round(Math.random());
+ }
+}
+
+async function gameLoop() {
+ next = makeGridArr(gridSize);
+ update();
+ draw();
+}
+
+function update() {
+ for (let i = 0; i < gridSize; i++) {
+ for (let j = 0; j < gridSize; j++) {
+ let state = grid[i][j];
+
+ let neighbors = countNeighbors(grid, i, j)
+
+ if (state == 0 && neighbors == 3) {
+ next[i][j] = 1;
+ } else if (state == 1 && (neighbors < 2 || neighbors > 3)) {
+ next[i][j] = 0;
+ } else {
+ next[i][j] = state;
+ }
+ }
+ }
+ grid = next;
+}
+
+function countNeighbors(arr, x, y) {
+ let sum = 0;
+ for (let i = -1; i < 2; i++) {
+ for (let j = -1; j < 2; j++) {
+ sum += arr[(x + i + gridSize) % gridSize] [(y + j + gridSize) % gridSize];
+ }
+ }
+ sum -= arr[x][y];
+ return sum;
+}
+
+function makeGridArr(size) {
+ arr = [];
+ for (let i = 0; i < size; i++) {
+ arr[i] = [];
+ for (let j = 0; j < size; j++) {
+ arr[i][j] = 0;
+ }
+ }
+ return arr;
+}
+
+function draw () {
+ ctx.fillStyle = "#FFFFFF";
+ ctx.fillRect(0, 0, canvasSize, canvasSize);
+
+ for (let i = 0; i < gridSize; i++) {
+ for (let j = 0; j < gridSize; j++) {
+ if (grid[i][j] == 0) {
+ ctx.fillStyle = "#FFFFFF";
+ } else {
+ ctx.fillStyle = "#000000";
+ }
+
+ ctx.fillRect(i * 10, j * 10, canvasSize / gridSize, canvasSize / gridSize);
+ }
+ }
+}
+
+setInterval(gameLoop, 100);