diff --git a/CourseWork-master/A level course work Logic Gate.sln b/CourseWork-master/A level course work Logic Gate.sln
new file mode 100644
index 0000000..5299214
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28803.352
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "A level course work Logic Gate", "A level course work Logic Gate\A level course work Logic Gate.csproj", "{F6B37528-1F7F-43CA-ACD1-BEF929DAF16F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F6B37528-1F7F-43CA-ACD1-BEF929DAF16F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F6B37528-1F7F-43CA-ACD1-BEF929DAF16F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F6B37528-1F7F-43CA-ACD1-BEF929DAF16F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F6B37528-1F7F-43CA-ACD1-BEF929DAF16F}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E55E48FD-5E1B-4C05-A1C5-8232982E668F}
+ EndGlobalSection
+EndGlobal
diff --git a/CourseWork-master/A level course work Logic Gate/A level course work Logic Gate.csproj b/CourseWork-master/A level course work Logic Gate/A level course work Logic Gate.csproj
new file mode 100644
index 0000000..14eef9d
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/A level course work Logic Gate.csproj
@@ -0,0 +1,149 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {F6B37528-1F7F-43CA-ACD1-BEF929DAF16F}
+ Exe
+ A_level_course_work_Logic_Gate
+ A level course work Logic Gate
+ v4.5.2
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+ true
+ true
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+
+
+
+
+
+
+ MainWindow.xaml
+ Code
+
+
+ Designer
+ MSBuild:Compile
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+
+
+ Progress_Bar_Window.xaml
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CourseWork-master/A level course work Logic Gate/App.config b/CourseWork-master/A level course work Logic Gate/App.config
new file mode 100644
index 0000000..efc3ffd
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/App.config
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/App.xaml b/CourseWork-master/A level course work Logic Gate/App.xaml
new file mode 100644
index 0000000..9f30b70
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/App.xaml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/App.xaml.cs b/CourseWork-master/A level course work Logic Gate/App.xaml.cs
new file mode 100644
index 0000000..b314f00
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/App.xaml.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace A_level_course_work_Logic_Gate
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ ///
+
+ public partial class App : Application
+ {
+ public App()
+ {
+ //ShutdownMode = ShutdownMode.OnExplicitShutdown;
+ }
+ }
+
+}
diff --git a/CourseWork-master/A level course work Logic Gate/Canvas_Class.cs b/CourseWork-master/A level course work Logic Gate/Canvas_Class.cs
new file mode 100644
index 0000000..8ecf447
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Canvas_Class.cs
@@ -0,0 +1,388 @@
+using System;
+using System.Linq;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Media;
+
+namespace A_level_course_work_Logic_Gate
+{
+ public class Canvas_Class : Canvas
+ {
+ public Point Old_Pos { get; set; } = new Point();
+ public double Scale_Factor { get; set; } = 1;
+ public Point Old_Rect { get; set; } = new Point();
+
+
+ public MainWindow _MainWind { get; set; }
+
+ public TranslateTransform Translate_Action { get; set; }
+ public ScaleTransform Scale_Action { get; set; }
+
+ public TransformGroup Transforms_Group { get; set; }
+
+
+ public bool MovingCanvas { get; set; } = false;
+
+ public Canvas_Class(MainWindow MainWind)
+ {
+ _MainWind = MainWind;
+ Background = Brushes.Gray;
+
+ Translate_Action = new TranslateTransform(0, 0);
+ Scale_Action = new ScaleTransform(1, 1, 0, 0);
+ Transforms_Group = new TransformGroup();
+
+ Transforms_Group.Children.Add(Translate_Action);
+ Transforms_Group.Children.Add(Scale_Action);
+
+ RenderTransform = Transforms_Group;
+ }
+ //Move canvas event
+ protected override void OnMouseMove(MouseEventArgs e)
+ {
+ int hold = Rect_detection(0, 0, -1);
+ if (hold != _MainWind.Last_ID_For_Rect && hold !=-1)
+ {
+ _MainWind.Last_ID_For_Rect = hold;
+ _MainWind.Gate_List[hold].Output_Rect_Status(hold);
+ }
+
+
+ if (MovingCanvas)
+ {
+ Translate_Action.X += (e.GetPosition(this).X - Old_Pos.X);
+ Translate_Action.Y += (e.GetPosition(this).Y - Old_Pos.Y);
+ }
+ Old_Pos = e.GetPosition(this);
+ }
+
+
+ //zoom event
+ protected override void OnMouseWheel(MouseWheelEventArgs e)
+ {
+ bool change = false;
+ Point Pos = Mouse.GetPosition(_MainWind.Canvas_Border);
+ if (e.Delta > 0)
+ {
+ if (Scale_Factor != 0.0625)
+ {
+ Scale_Factor -= 0.0625;
+ change = true;
+ }
+ }
+ else if (e.Delta < 0)
+ {
+ if (Scale_Factor != 2)
+ {
+ Scale_Factor += 0.0625;
+ change = true;
+ }
+ }
+
+ if (change)
+ {
+ Scale_Action.ScaleX = Scale_Factor;
+ Scale_Action.ScaleY = Scale_Factor;
+ Scale_Action.CenterX = Pos.X;
+ Scale_Action.CenterY = Pos.Y;
+ }
+ }
+ //Re-drag pick up
+ protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
+ {
+ int detected = Rect_detection(0, 0, -1);
+
+ //if(!_mainwind.drag) then switch
+
+ if(!_MainWind.Drag&&detected==-1)
+ {
+ Old_Pos = e.GetPosition(this);
+ MovingCanvas = true;
+ }
+
+ if (!_MainWind.Drag && !_MainWind.Link)
+ {
+ if (detected != -1)
+ {
+ _MainWind.Drag_Num = detected;
+ _MainWind.Drag_Mode = Drag_State.Sub_Can;
+ Old_Rect = new Point(Convert.ToDouble(Canvas.GetLeft(_MainWind.Gate_List[_MainWind.Drag_Num].Rect)), Convert.ToDouble(Canvas.GetTop(_MainWind.Gate_List[_MainWind.Drag_Num].Rect)));
+ }
+ }
+ else if (!_MainWind.Drag && _MainWind.Link && detected!=-1)
+ {
+ _MainWind.Linking_ID = detected;
+ _MainWind.Drag_Num = _MainWind.Line_List.Count();
+ _MainWind.Line_List.Add(new Line_Class(detected,_MainWind));
+ _MainWind.Line_List.Last().Track_Mouse();
+ _MainWind.Line_List.Last().Input_ID=detected;
+ _MainWind.Line_List.Last().Output_Num = Link_Output_Vaildation(detected);
+ //if X == -2 then there was no aviable output for the new link to be made(already deleted the last line)
+ if (_MainWind.Line_List.Last().Output_Num != -2)
+ {
+ _MainWind.Drag_Mode = Drag_State.Link_Mode_Sub;
+ _MainWind.Gate_List[detected].Output[_MainWind.Line_List.Last().Output_Num].Line_ID = _MainWind.Drag_Num;
+ _MainWind.Line_List[_MainWind.Drag_Num].Link_Output_Aline_Line(_MainWind.Gate_List[detected]);
+ }
+ else
+ {
+ Children.Remove(_MainWind.Line_List[_MainWind.Drag_Num].UI_Line);
+ Children.Remove(_MainWind.Line_List[_MainWind.Drag_Num].Content);
+ _MainWind.Line_List.RemoveAt(_MainWind.Drag_Num);
+ }
+
+ }
+ }
+ //Re-drag drop
+ protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
+ {
+ MovingCanvas = false;
+ if(_MainWind.Drag && !_MainWind.Link && _MainWind.Drag_Mode == Drag_State.Main_Can)
+ {
+ _MainWind.Add_Rect_Sub_FIX_BUG();
+ }
+
+ if (_MainWind.Drag && !_MainWind.Link)
+ {
+ _MainWind.Drag_Mode = Drag_State.Null;
+ if(Rect_detection(_MainWind.Gate_List[_MainWind.Drag_Num].Rect.Width, _MainWind.Gate_List[_MainWind.Drag_Num].Rect.Height, _MainWind.Drag_Num) !=-1)
+ {
+ SetLeft(_MainWind.Gate_List[_MainWind.Drag_Num].Rect, Old_Rect.X);
+ SetTop(_MainWind.Gate_List[_MainWind.Drag_Num].Rect,Old_Rect.Y);
+ _MainWind.Gate_List[_MainWind.Drag_Num].Move_IO();
+ }
+ }
+ else if(_MainWind.Drag && _MainWind.Link)
+ {
+ int X = -1;
+ int detection = Rect_detection(0, 0, -1);
+ _MainWind.Drag_Mode = Drag_State.Null;
+ if (detection != -1 && detection != _MainWind.Linking_ID)
+ {
+ X = Link_Input_Vaildation(detection);
+ }
+
+ if (X!=-1)
+ {
+
+ _MainWind.Line_List[_MainWind.Drag_Num].Input_ID = detection;
+ _MainWind.Line_List[_MainWind.Drag_Num].Input_Num = X;
+ _MainWind.Line_List[_MainWind.Drag_Num].Link_Input_Aline_Line(_MainWind.Gate_List[detection]);
+ _MainWind.Gate_List[detection].Input[X].Input_Type = IO_Type.Gate;
+ _MainWind.Gate_List[detection].Input[X].Input_ID = _MainWind.Linking_ID;
+ _MainWind.Gate_List[detection].Input[X].Line_ID = _MainWind.Drag_Num;
+ _MainWind.Gate_List[_MainWind.Linking_ID].Output[_MainWind.Line_List.Last().Output_Num].Output_ID = detection;
+ _MainWind.Gate_List[_MainWind.Linking_ID].Output[_MainWind.Line_List.Last().Output_Num].Output_Type = IO_Type.Gate;
+ }
+ else if(X==-1)
+ {
+ Children.Remove(_MainWind.Line_List[_MainWind.Drag_Num].UI_Line);
+ Children.Remove(_MainWind.Line_List[_MainWind.Drag_Num].Content);
+ _MainWind.Line_List.RemoveAt(_MainWind.Drag_Num);
+ }
+ }
+ }
+
+ public int Rect_detection(double Width, double Height,int Drag_Num)
+ {
+ int Detected = -1;
+ Point Pos_Sub = Mouse.GetPosition(this);
+ for (int i = 0; i < _MainWind.Gate_List.Count(); i++)
+ {
+ Gate_Class Rect = _MainWind.Gate_List[i];
+ double Rect_X = Canvas.GetLeft(_MainWind.Gate_List[i].Rect);
+ double Rect_Y = Canvas.GetTop(_MainWind.Gate_List[i].Rect);
+ if (Pos_Sub.X+Width > Rect_X && Pos_Sub.X < Rect_X + Rect.Rect.Width && Pos_Sub.Y+Height > Rect_Y && Pos_Sub.Y < Rect_Y + Rect.Rect.Height&&i!=Drag_Num && Rect.Alive)
+ Detected = i;
+ }
+ return Detected;
+ }
+
+ public int Link_Output_Vaildation(int Clicked)
+ {
+ int Output_pos = Output_Slot(Clicked);
+ if (_MainWind.Gate_List[Clicked].Type == 7)
+ {
+ if (_MainWind.Gate_List[Clicked].Output[Output_pos].Output_ID != -1)
+ {
+ Output_pos = -2;
+ }
+ //if the above failed then it will enter this if statement
+ if (Output_pos == -2)
+ {
+ //this will check each output and try and find a available output
+ if(_MainWind.Gate_List[Clicked].Output[0].Output_ID == -1)
+ Output_pos = 0;
+ else if (_MainWind.Gate_List[Clicked].Output[1].Output_ID == -1)
+ Output_pos = 1;
+ else if (_MainWind.Gate_List[Clicked].Output[2].Output_ID == -1)
+ Output_pos = 2;
+ }
+ }
+ else
+ {
+ if (_MainWind.Gate_List[Clicked].Output[0].Output_ID != -1)
+ {
+ Output_pos = -2;
+ }
+ }
+
+ return Output_pos;
+ }
+
+ public int Output_Slot(int Clicked)
+ {
+ int Output = 0;
+ Point Pos = Mouse.GetPosition(this);
+ if (_MainWind.Gate_List[Clicked].Type == 7)
+ {
+ if (Pos.Y < GetTop(_MainWind.Gate_List[Clicked].Rect) + 29)
+ Output = 0;
+ else if (Pos.Y > GetTop(_MainWind.Gate_List[Clicked].Rect) + 29 && Pos.Y < GetTop(_MainWind.Gate_List[Clicked].Rect) + 43)
+ Output = 1;
+ else if (Pos.Y > GetTop(_MainWind.Gate_List[Clicked].Rect) + 43)
+ Output = 2;
+ }
+ else
+ {
+ Output = 0;
+ }
+ return Output;
+ }
+
+ public int Link_Input_Vaildation(int Clicked)
+ {
+ int Output = Input_Slot(Clicked);
+ Point Pos = Mouse.GetPosition(this);
+ if(_MainWind.Gate_List[Clicked].Type==2|| _MainWind.Gate_List[Clicked].Type == 7)
+ {
+ if(_MainWind.Gate_List[Clicked].Input[0].Input_ID!=-1)
+ {
+ Output = -1;
+ }
+ }
+ else
+ {
+ if (_MainWind.Gate_List[Clicked].Input[Output].Input_ID != -1)
+ {
+ Output = -1;
+ }
+
+ if (Output == -1)
+ {
+ if(_MainWind.Gate_List[Clicked].Input[0].Input_ID == -1)
+ {
+ Output = 0;
+ }
+ else if (_MainWind.Gate_List[Clicked].Input[1].Input_ID == -1)
+ {
+ Output = 1;
+ }
+
+ }
+ }
+
+ return Output;
+ }
+
+ public int Input_Slot(int Clicked)
+ {
+ int Input_Slot = -1;
+ Point Pos = Mouse.GetPosition(this);
+ if (_MainWind.Gate_List[Clicked].Type == 2 || _MainWind.Gate_List[Clicked].Type == 7)
+ {
+ Input_Slot = 0;
+ }
+ else
+ {
+ if (Pos.Y < GetTop(_MainWind.Gate_List[Clicked].Rect) + 37)
+ {
+ Input_Slot = 0;
+ }
+ else
+ {
+ Input_Slot = 1;
+ }
+ }
+
+ return Input_Slot;
+ }
+
+ protected override void OnMouseRightButtonUp(MouseButtonEventArgs e)
+ {
+ //checks you're not dragging
+ if(!_MainWind.Drag)
+ {
+ //sees if you acutally right click on something
+ int detection = Rect_detection(0, 0, -1);
+ if (detection!=-1)
+ { //see which mode of the program you're in because each one will have a different action
+ if(!_MainWind.Link)
+ { //completely romoves the gate.
+ _MainWind.Gate_List[detection].Alive = false;
+ Children.Remove(_MainWind.Gate_List[detection].Rect);
+ for (int i = 0; i < 3; i++) //this is for each output of the gate after it's been removed
+ {
+ if(_MainWind.Gate_List[detection].Output[i].Output_Type == IO_Type.Gate)
+ { //removes the line "connecting" the 2 gates.
+ _MainWind.Sub_Canvas.Children.Remove(_MainWind.Line_List[_MainWind.Gate_List[detection].Output[i].Line_ID].UI_Line);
+ _MainWind.Sub_Canvas.Children.Remove(_MainWind.Line_List[_MainWind.Gate_List[detection].Output[i].Line_ID].Content);
+ _MainWind.Line_List.RemoveAt(_MainWind.Gate_List[detection].Output[i].Line_ID);
+ for (int x = 0; x < 2; x++) // this is to determin which input the gate is connected to
+ {
+ if (_MainWind.Gate_List[_MainWind.Gate_List[detection].Output[i].Output_ID].Input[x].Input_ID == detection && _MainWind.Gate_List[_MainWind.Gate_List[detection].Output[i].Output_ID].Input[x].Input_Type == IO_Type.Gate)
+ { //changes the state of the gate it's connected to too null so that it can accept another input.
+ _MainWind.Gate_List[_MainWind.Gate_List[detection].Output[i].Output_ID].Input[x].Input_Type = IO_Type.Null;
+ }
+ }
+ }
+ else if(_MainWind.Gate_List[detection].Output[i].Output_Type == IO_Type.IO)
+ {
+ //remove the ellipses from the canvas in the output_Circle list with the ID in the
+ }
+ }
+ for (int i = 0; i < 2; i++) //does the same but for input
+ {
+ if (_MainWind.Gate_List[detection].Input[i].Input_Type == IO_Type.Gate)
+ {
+ _MainWind.Sub_Canvas.Children.Remove(_MainWind.Line_List[_MainWind.Gate_List[detection].Input[i].Line_ID].UI_Line);
+ _MainWind.Sub_Canvas.Children.Remove(_MainWind.Line_List[_MainWind.Gate_List[detection].Input[i].Line_ID].Content);
+ _MainWind.Line_List.RemoveAt(_MainWind.Gate_List[detection].Input[i].Line_ID);
+ for (int x = 0; x < 3; x++)
+ {
+ if (_MainWind.Gate_List[_MainWind.Gate_List[detection].Input[i].Input_ID].Output[x].Output_ID == detection)
+ {
+ _MainWind.Gate_List[_MainWind.Gate_List[detection].Input[i].Input_ID].Output[x].Output_Type = IO_Type.Null;
+ }
+ }
+ }
+ else if (_MainWind.Gate_List[detection].Input[i].Input_Type == IO_Type.IO)
+ {
+ //remove the button from the canvas in the input_button list with the ID in the
+ }
+ }
+ }
+ else if(_MainWind.Link) //if in linked mode then it should act as tho you're doing the oppersite of adding a connection.
+ {
+ int Output_Num = Output_Slot(detection);
+ if (_MainWind.Gate_List[detection].Output[Output_Num].Output_ID != -1)
+ {
+ for (int i = 0; i < 2; i++)
+ {
+ if(_MainWind.Gate_List[_MainWind.Gate_List[detection].Output[Output_Num].Output_ID].Input[i].Input_ID==detection)
+ {
+ _MainWind.Gate_List[_MainWind.Gate_List[detection].Output[Output_Num].Output_ID].Input[i].Input_Type = IO_Type.Null;
+ }
+ }
+ _MainWind.Sub_Canvas.Children.Remove(_MainWind.Line_List[_MainWind.Gate_List[detection].Output[Output_Num].Line_ID].UI_Line);
+ _MainWind.Sub_Canvas.Children.Remove(_MainWind.Line_List[_MainWind.Gate_List[detection].Output[Output_Num].Line_ID].Content);
+ _MainWind.Gate_List[detection].Output[Output_Num].Output_Type = IO_Type.Null;
+ }
+ }
+
+ }
+ }
+ }
+ }
+}
diff --git a/CourseWork-master/A level course work Logic Gate/Gate_Class.cs b/CourseWork-master/A level course work Logic Gate/Gate_Class.cs
new file mode 100644
index 0000000..5dc7627
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Gate_Class.cs
@@ -0,0 +1,125 @@
+using System.Windows.Controls;
+using System.Windows.Media;
+using System.Windows.Shapes;
+using System.Windows;
+using System.Windows.Input;
+using System.Collections.Generic;
+using System;
+
+namespace A_level_course_work_Logic_Gate
+{
+ public class Gate_Class
+ {
+ //public int ID { get; set; }
+ public int Type { get; set; }
+ public Rectangle Rect { get; set; }
+ public bool Alive { get; set; } = true;
+ public MainWindow _MainWind { get; set; }
+
+ //data storages for the input and output
+
+ public Input_Class[] Input { get; set; } = new Input_Class[] { new Input_Class(), new Input_Class() };
+
+ //Gate output Bit
+ public bool Gate_Bit { get; set; } = false;
+
+ public Output_Class[] Output { get; set; } = new Output_Class[] { new Output_Class(), new Output_Class(), new Output_Class() };
+
+
+
+ public Gate_Class(string Tag,MainWindow MainWind,double _Scale_Factor)
+ {
+ _MainWind = MainWind;
+ Setup(Tag,_Scale_Factor);
+ _MainWind.Main_Canvas.Children.Add(Rect);
+ Rect_Move(Mouse.GetPosition(MainWind.Main_Grid));
+ }
+ //Basically the constructor
+ public void Setup(string _Tag,double _Scale_Factor)
+ {
+ //scale factor
+ Rect = new Rectangle { Height = 75*_Scale_Factor, Width = 115*_Scale_Factor, Stroke = Brushes.Black, Fill = Application.Current.Resources[_Tag] as Brush };
+ //Calc Tag
+ switch(_Tag)
+ {
+ case ("And_Gate_L"):
+ Type = 0;
+ break;
+ case ("Nand_Gate_L"):
+ Type = 1;
+ break;
+ case ("Not_Gate_L"):
+ Type = 2;
+ break;
+ case ("Or_Gate_L"):
+ Type = 3;
+ break;
+ case ("Nor_Gate_L"):
+ Type = 4;
+ break;
+ case ("Xor_Gate_L"):
+ Type = 5;
+ break;
+ case ("Xnor_Gate_L"):
+ Type = 6;
+ break;
+ case ("Transformer"):
+ Type = 7;
+ //scale factor
+ Rect.Width = 85 * _Scale_Factor ;
+ break;
+ }
+ }
+
+ //change Rectangle location.
+ public void Rect_Move(Point Pos)
+ {
+ Canvas.SetLeft(Rect, Pos.X);
+ Canvas.SetTop(Rect, Pos.Y);
+ }
+
+
+ public void Move_IO()
+ {
+ for (int i = 0; i < 3; i++)
+ {
+ if(Output[i].Output_Type == IO_Type.Gate)
+ {
+ _MainWind.Line_List[Output[i].Line_ID].Link_Output_Aline_Line(this);
+ }
+ else if(Output[i].Output_Type == IO_Type.IO)
+ {
+ _MainWind.Output_Circle_List[Output[i].Output_ID].Aline_Circle(this);
+ }
+ }
+ for (int i = 0; i < 2; i++)
+ {
+ if (Input[i].Input_Type==IO_Type.Gate)
+ {
+ _MainWind.Line_List[Input[i].Line_ID].Link_Input_Aline_Line(this);
+ }
+ else if(Input[i].Input_Type == IO_Type.IO)
+ {
+ _MainWind.Input_Button_List[Input[i].Input_ID].Aline_Box(this);
+ }
+ }
+ }
+
+ //delete
+ public void Output_Rect_Status(int ID)
+ {
+ Console.WriteLine("Rect ID : {0}\nType : {1}\nAlive : {2}\nGate Bit : {3}", ID,Type,Alive,Gate_Bit);
+ Console.WriteLine("\n Input 0");
+ Input[0].Output_Status();
+ Console.WriteLine("\n Input 1");
+ Input[1].Output_Status();
+ Console.WriteLine("\n Output 0");
+ Output[0].Output_Status();
+ Console.WriteLine("\n Output 1");
+ Output[1].Output_Status();
+ Console.WriteLine("\n Output 2");
+ Output[2].Output_Status();
+ Console.WriteLine("\n\n\n\n");
+ }
+ }
+}
diff --git a/CourseWork-master/A level course work Logic Gate/Input_Button.cs b/CourseWork-master/A level course work Logic Gate/Input_Button.cs
new file mode 100644
index 0000000..7ef7857
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Input_Button.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Controls;
+using System.Windows.Media;
+
+namespace A_level_course_work_Logic_Gate
+{
+ public class Input_Button : Button
+ {
+ public bool Bit { get; set; } = false;
+ public int Input_ID { get;}
+ public int Input_Port;
+ public MainWindow _MainWind { get; set; }
+ public Input_Button(MainWindow MainWind,int ID, int Port_Num)
+ {
+ _MainWind = MainWind;
+ Input_ID = ID;
+ Input_Port = Port_Num;
+ _MainWind.Sub_Canvas.Children.Add(this);
+ Background = Brushes.Black;
+ Content = 1;
+ Foreground = Brushes.White;
+ Height = 20;
+ Width = 20;
+
+ }
+ //make this bit depend. So when the bit variable changes so does everything else.
+ protected override void OnClick()
+ {
+ if (!Bit)
+ {
+ Background = Brushes.White;
+ Bit = true;
+ Content = 0;
+ Foreground = Brushes.Black;
+ _MainWind.Gate_List[Input_ID].Input[Input_Port].Input_bit = true;
+ }
+ else
+ {
+ Background = Brushes.Black;
+ Bit = false;
+ Content = 1;
+ _MainWind.Gate_List[Input_ID].Input[Input_Port].Input_bit = false;
+ Foreground = Brushes.White;
+ }
+ }
+
+ public void Aline_Box(Gate_Class Gate)
+ {
+ double[] hold = _MainWind.Link_Input_Aline(Gate, Input_Port);
+ Change_X_Y(hold[0], hold[1]);
+ }
+
+ public void Change_X_Y(double x, double y)
+ {
+ Canvas.SetLeft(this, x-20);
+ Canvas.SetTop(this, y-10);
+ }
+ }
+}
diff --git a/CourseWork-master/A level course work Logic Gate/Input_Class.cs b/CourseWork-master/A level course work Logic Gate/Input_Class.cs
new file mode 100644
index 0000000..ce89ec3
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Input_Class.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace A_level_course_work_Logic_Gate
+{
+ public class Input_Class
+ {
+ private bool _input_bit = false;
+ private int _input_ID = -1;
+ private IO_Type _input_Type = IO_Type.Null;
+ private int _line_ID = -1;
+ public bool Input_bit {
+ get { return _input_bit; }
+ set { _input_bit = value; }
+ }
+ public int Input_ID {
+ get { return _input_ID; }
+ set { _input_ID = value; } }
+ public IO_Type Input_Type
+ {
+ get { return _input_Type; }
+ set {
+ switch(value)
+ {
+ case (IO_Type.Null):
+ _input_ID = -1;
+ _line_ID = -1;
+ break;
+ case (IO_Type.Gate):
+ _input_bit = false;
+ break;
+ case (IO_Type.IO):
+ _line_ID = -1;
+ _input_bit = false;
+ break;
+ }
+ _input_Type = value;
+ }
+ }
+ public int Line_ID {
+ get { return _line_ID; }
+ set { _line_ID = value; } }
+
+ public Input_Class()
+ {
+ Input_Type = IO_Type.Null;
+ }
+ //delete
+ public void Output_Status()
+ {
+ Console.WriteLine("Input Bit : {0}\nInput ID : {1}\nInput Type : {2}\nLine ID : {3}", Input_bit, Input_ID, Input_Type, Line_ID);
+ }
+ }
+}
diff --git a/CourseWork-master/A level course work Logic Gate/Line_Class.cs b/CourseWork-master/A level course work Logic Gate/Line_Class.cs
new file mode 100644
index 0000000..ceebd52
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Line_Class.cs
@@ -0,0 +1,81 @@
+using System;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Shapes;
+
+namespace A_level_course_work_Logic_Gate
+{
+ public class Line_Class
+ {
+ public Line UI_Line { get; set; } = new Line { StrokeThickness = 4, Stroke = Brushes.Red };
+ public Label Content { get; set; } = new Label { Content = "0", Width = 16, Height = 29, Foreground = Brushes.Black };
+ public int Output_ID { get; set; } = -1;
+ public int Output_Num { get; set; } = 1; //this should only change if the gate type is the multiple output(type 7)
+ public int Input_ID { get; set; } = -1;
+ public int Input_Num { get; set; } = -1;
+ public double X1,Y1, X2, Y2;
+ public MainWindow _MainWind { get; set; }
+
+ public Canvas_Class _Sub_Canvas { get; set; }
+ public Line_Class(int _Output_ID, MainWindow MainWind)
+ {
+ _MainWind = MainWind;
+ _Sub_Canvas = _MainWind.Sub_Canvas;
+ _Sub_Canvas.Children.Add(UI_Line);
+ _Sub_Canvas.Children.Add(Content);
+ Output_ID = _Output_ID;
+ }
+
+ public void Track_Mouse()
+ {
+ Point Pos = Mouse.GetPosition(_Sub_Canvas);
+ UI_Line.X2 = Pos.X;
+ UI_Line.Y2 = Pos.Y;
+ X2 = Pos.X;
+ Y2 = Pos.Y;
+ Move_Label();
+ }
+
+ public void Change_X1_Y1(double X, double Y)
+ {
+ UI_Line.X1 = X;
+ UI_Line.Y1 = Y;
+ }
+ public void Change_X2_Y2(double X, double Y)
+ {
+ UI_Line.X2 = X;
+ UI_Line.Y2 = Y;
+ }
+
+ public void Move_Label()
+ {
+ double X = (X2 - X1)/2 - 5+X1;
+ double Y = (Y2 - Y1)/2 - 23+Y1;
+ Canvas.SetLeft(Content, X);
+ Canvas.SetTop(Content, Y);
+ }
+
+
+ //change this so that the values are generic and then just have it so that the X and Y coords are changed directly and don't need the method to do it.(A lot of work :(
+ public void Link_Input_Aline_Line(Gate_Class Gate)
+ {
+ UI_Line.Stroke = Brushes.Black;
+ double[] hold = _MainWind.Link_Input_Aline(Gate, Input_Num);
+ Change_X2_Y2(hold[0], hold[1]);
+ X2 = hold[0];
+ Y2 = hold[1];
+ Move_Label();
+ }
+
+ public void Link_Output_Aline_Line(Gate_Class Gate)
+ {
+ double[] hold = _MainWind.Link_Output_Aline(Gate, Output_Num);
+ Change_X1_Y1(hold[0], hold[1]);
+ X1 = hold[0];
+ Y1 = hold[1];
+ Move_Label();
+ }
+ }
+}
diff --git a/CourseWork-master/A level course work Logic Gate/MainWindow.xaml b/CourseWork-master/A level course work Logic Gate/MainWindow.xaml
new file mode 100644
index 0000000..8b41eb9
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/MainWindow.xaml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/MainWindow.xaml.cs b/CourseWork-master/A level course work Logic Gate/MainWindow.xaml.cs
new file mode 100644
index 0000000..dc105ae
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/MainWindow.xaml.cs
@@ -0,0 +1,508 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Shapes;
+
+namespace A_level_course_work_Logic_Gate
+{
+ public enum Drag_State { Null,Main_Can,Sub_Can,Link_Mode_Sub}
+ public enum IO_Type { Null, Gate, IO }
+
+ public partial class MainWindow : Window
+ {
+ //delete this varaible after testing!
+ public int Last_ID_For_Rect { get; set; } = -1;
+
+ //varaibles that need to be accessed all around the code
+ public List Gate_List { get; set; } = new List();
+ public List Line_List { get; set; } = new List();
+ //make these custom classes
+ public List Input_Button_List { get; set; } = new List();
+ public List Output_Circle_List { get; set; } = new List();
+ //program info
+ public bool Drag { get; set; } = false;
+ public int Delay_Intervals { get; set; } = 1;
+ public int Drag_Num { get; set; } = 0;
+ private bool _link = false;
+ private bool Sim_Running { get; set; } = false;
+ public bool Link
+ { get { return _link; }
+ set
+ {
+ _link = value;
+ if (_link)
+ {
+ Link_Button.Content = "Link";
+ }
+ else if (!_link)
+ {
+ Link_Button.Content = "Drag";
+ }
+ }
+ }
+
+ private Drag_State drag_mode = Drag_State.Null;
+ public Drag_State Drag_Mode
+ { get { return drag_mode; }
+ set
+ {
+ switch (value)
+ {
+ case (Drag_State.Null):
+ Drag = false;
+ break;
+ default:
+ Drag = true;
+ break;
+ }
+
+ drag_mode = value;
+ }
+ }
+ public int Linking_ID { get; set; } = 0;
+ public bool IO_Active { get; set; } = false;
+ //UI elements that can't be added in the XAML
+ public Canvas_Class Sub_Canvas { get; set; }
+ public Rectangle BackGround_Rect { get; set; }
+
+
+
+
+ private BackgroundWorker _worker = new BackgroundWorker();
+ private BackgroundWorker Simulator_Worker = new BackgroundWorker();
+
+ Progress_Bar_Window Progress_Window = new Progress_Bar_Window();
+
+ //code when the program loads up
+ public MainWindow()
+ {
+ InitializeComponent();
+ _worker.DoWork += WorkerDoWork;
+ _worker.RunWorkerCompleted += WorkerRunWorkerCompleted;
+
+ Simulator_Worker.DoWork += Simulator_Work;
+ Simulator_Worker.RunWorkerCompleted += Simulator_Terminated;
+
+ }
+
+
+
+
+ private void Canvas_Border_Loaded(object sender, RoutedEventArgs e)
+ {
+ Sub_Canvas = new Canvas_Class(this);
+ Canvas_Border.Child = Sub_Canvas;
+
+ BackGround_Rect = new Rectangle { Height = 4000, Width = 4000, Fill = Brushes.White };
+ Sub_Canvas.Children.Add(BackGround_Rect);
+ Canvas.SetLeft(BackGround_Rect, -1000);
+ Canvas.SetTop(BackGround_Rect, -1000);
+ }
+
+ //eventhandler that aren't linked to the canvas
+ //gate button event
+ private void Rect_Button_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
+ {
+ if (!Drag && !Link)
+ {
+ Drag_Mode = Drag_State.Main_Can;
+ Gate_List.Add(new Gate_Class(Convert.ToString((sender as Rectangle).Tag), this, Sub_Canvas.Scale_Factor));
+ Drag_Num = Gate_List.Count() - 1;
+ }
+ }
+ //Whole event for dragging objects in the whole window
+ private void Window_MouseMove(object sender, MouseEventArgs e)
+ {
+ if (Drag)
+ {
+ switch (drag_mode)
+ {
+ case Drag_State.Main_Can:
+ Gate_List[Drag_Num].Rect_Move(Mouse.GetPosition(Main_Grid));
+ break;
+ case Drag_State.Sub_Can:
+ Gate_List[Drag_Num].Rect_Move(Mouse.GetPosition(Sub_Canvas));
+ Gate_List[Drag_Num].Move_IO();
+ break;
+ case Drag_State.Link_Mode_Sub:
+ Line_List[Drag_Num].Track_Mouse();
+ break;
+ }
+ }
+ }
+ //event for cancling dragging in whole window
+ private void Main_Canvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+ {
+ if (Drag && !Link)
+ {
+ Add_Rect_Sub_FIX_BUG();
+ }
+ }
+
+ public void Add_Rect_Sub_FIX_BUG()
+ {
+ Point Pos_Rect = Mouse.GetPosition(BackGround_Rect);
+ Point Pos_Border = Mouse.GetPosition(Canvas_Border);
+ Point Pos_Sub = Mouse.GetPosition(Sub_Canvas);
+
+ //checks if it's in side the border and if it's inside the area that is allowed in the border.
+ bool check = (Pos_Rect.X < 0 || Pos_Rect.X > 4000 || Pos_Rect.Y < 0 || Pos_Rect.Y > 4000) ||
+ (Pos_Border.X < 0 || Pos_Border.X > Canvas_Border.ActualWidth || Pos_Border.Y < 0 || Pos_Border.Y > Canvas_Border.ActualHeight)
+ || (Sub_Canvas.Rect_detection(Gate_List[Drag_Num].Rect.Width, Gate_List[Drag_Num].Rect.Height, Drag_Num) != -1) ? false : true;
+
+
+ //if (Sub_Canvas.Rect_detection(Gate_List[Drag_Num].Rect.Width, Gate_List[Drag_Num].Rect.Height, Drag_Num) != -1) check = false;
+
+
+
+ Main_Canvas.Children.Remove(Gate_List[Drag_Num].Rect);
+ Drag_Mode = Drag_State.Null;
+ if (check)
+ {
+ Gate_List[Drag_Num].Rect.Width = Gate_List[Drag_Num].Rect.Width / Sub_Canvas.Scale_Factor;
+ Gate_List[Drag_Num].Rect.Height = Gate_List[Drag_Num].Rect.Height / Sub_Canvas.Scale_Factor;
+ Sub_Canvas.Children.Add(Gate_List[Drag_Num].Rect);
+ Gate_List[Drag_Num].Rect_Move(Pos_Sub);
+ }
+ else
+ {
+ Gate_List.RemoveAt(Drag_Num);
+ }
+
+ }
+
+ //Flip between the 2 states of the program
+ private void Link_Button_Click(object sender, RoutedEventArgs e)
+ {
+ if (!Drag)
+ {
+ if (Link)
+ {
+ Link = false;
+ }
+ else
+ {
+ Link = true;
+ }
+ }
+ }
+
+ private void Input_Output_Button_Click(object sender, RoutedEventArgs e)
+ {
+ if (IO_Active)
+ {
+ IO_Active = false;
+ for (int i = 0; i < Input_Button_List.Count; i++)
+ {
+ if (Gate_List[Input_Button_List[i].Input_ID].Input[Input_Button_List[i].Input_Port].Input_Type == IO_Type.IO)
+ {
+ Gate_List[Input_Button_List[i].Input_ID].Input[Input_Button_List[i].Input_Port].Input_Type = IO_Type.Null;
+ Sub_Canvas.Children.Remove(Input_Button_List[i]);
+ }
+ }
+ for (int i = 0; i < Output_Circle_List.Count; i++)
+ {
+ if (Gate_List[Output_Circle_List[i].Output_ID].Output[Output_Circle_List[i].Output_Port].Output_Type == IO_Type.IO)
+ {
+ Gate_List[Output_Circle_List[i].Output_ID].Output[Output_Circle_List[i].Output_Port].Output_Type = IO_Type.Null;
+ Sub_Canvas.Children.Remove(Output_Circle_List[i].Circle);
+ }
+ }
+ }
+ else
+ {
+ IO_Active = true;
+
+ for (int i = 0; i < Input_Button_List.Count; i++)
+ {
+ int ID = Input_Button_List[i].Input_ID;
+ if (Gate_List[ID].Input[Input_Button_List[i].Input_Port].Input_Type == IO_Type.Null)
+ {
+ Gate_List[ID].Input[Input_Button_List[i].Input_Port].Input_Type = IO_Type.IO;
+ Gate_List[ID].Input[Input_Button_List[i].Input_Port].Input_ID = i;
+ Gate_List[ID].Input[Input_Button_List[i].Input_Port].Input_bit = Input_Button_List[i].Bit;
+ Sub_Canvas.Children.Add(Input_Button_List[i]);
+ Input_Button_List[i].Aline_Box(Gate_List[Input_Button_List[i].Input_ID]);
+ }
+
+ }
+ for (int i = 0; i < Output_Circle_List.Count; i++)
+ {
+ int ID = Output_Circle_List[i].Output_ID;
+ if (Gate_List[ID].Output[Output_Circle_List[i].Output_Port].Output_Type == IO_Type.Null)
+ {
+ Gate_List[ID].Output[Output_Circle_List[i].Output_Port].Output_Type = IO_Type.IO;
+ Gate_List[ID].Output[Output_Circle_List[i].Output_Port].Output_ID = i;
+ Sub_Canvas.Children.Add(Output_Circle_List[i].Circle);
+ Output_Circle_List[i].Aline_Circle(Gate_List[Output_Circle_List[i].Output_ID]);
+ }
+ }
+
+ for (int i = 0; i < Gate_List.Count; i++)
+ {
+ if (Gate_List[i].Alive)
+ {
+ if (Gate_List[i].Input[0].Input_Type == IO_Type.Null)
+ {
+ Input_Assignment(i, 0);
+ }
+ if (Gate_List[i].Input[1].Input_Type == IO_Type.Null && Gate_List[i].Type != 2 && Gate_List[i].Type != 7)
+ {
+ Input_Assignment(i, 1);
+ }
+
+
+ if (Gate_List[i].Output[0].Output_Type == IO_Type.Null)
+ {
+ Output_Assignment(i, 0);
+ }
+ if (Gate_List[i].Output[1].Output_Type == IO_Type.Null && Gate_List[i].Type == 7)
+ {
+ Output_Assignment(i, 1);
+ }
+ if (Gate_List[i].Output[2].Output_Type == IO_Type.Null && Gate_List[i].Type == 7)
+ {
+ Output_Assignment(i, 2);
+ }
+ }
+ }
+ }
+ }
+
+ public void Input_Assignment(int i, int Port)
+ {
+ Input_Button_List.Add(new Input_Button(this, i, Port));
+ Input_Button_List.Last().Aline_Box(Gate_List[i]);
+ Gate_List[i].Input[Port].Input_Type = IO_Type.IO;
+ Gate_List[i].Input[Port].Input_ID = Input_Button_List.Count - 1;
+ }
+
+ public void Output_Assignment(int i, int Port)
+ {
+ Output_Circle_List.Add(new Output_Circle(this, i, Port));
+ Output_Circle_List.Last().Aline_Circle(Gate_List[i]);
+ Gate_List[i].Output[Port].Output_Type = IO_Type.IO;
+ Gate_List[i].Output[Port].Output_ID = Output_Circle_List.Count - 1;
+ }
+
+
+
+
+ public double[] Link_Input_Aline(Gate_Class Gate, int Input_Num)
+ {
+ //UI_Line.Stroke = Brushes.Black;
+ //not input is in the center of the gate compare to the other gates
+ if (Gate.Type == 2)
+ {
+ return new double[] { Canvas.GetLeft(Gate.Rect) + 5, Canvas.GetTop(Gate.Rect) + 38 };
+ }
+ //this is similar to the not gate but because it's a sqaure not a rectangle it needed to be moved in the X axis more
+ else if (Gate.Type == 7)
+ {
+ return new double[] { Canvas.GetLeft(Gate.Rect) + 12.5, Canvas.GetTop(Gate.Rect) + 38 };
+ }
+ //the rest all follow the setup for the and gate
+ else
+ {
+ if (Input_Num == 0)
+ {
+ return new double[] { Canvas.GetLeft(Gate.Rect), Canvas.GetTop(Gate.Rect) + 15 };
+ }
+ //else if not needed here but Input_ID isn't a secure variable type.
+ else if (Input_Num == 1)
+ {
+ return new double[] { Canvas.GetLeft(Gate.Rect), Canvas.GetTop(Gate.Rect) + 62 };
+ }
+ }
+ return new double[] { -1, -1 };
+
+ }
+
+ public double[] Link_Output_Aline(Gate_Class Gate, int Output_Num)
+ {
+ //special gate class with 3 exit
+ if (Gate.Type == 7)
+ {
+ if (Output_Num == 0)
+ {
+ return new double[] { Canvas.GetLeft(Gate.Rect) + 75, Canvas.GetTop(Gate.Rect) + 23.8 };
+ }
+ else if (Output_Num == 1)
+ {
+ return new double[] { Canvas.GetLeft(Gate.Rect) + 75, Canvas.GetTop(Gate.Rect) + 36 };
+ }
+ else if (Output_Num == 2)
+ {
+ return new double[] { Canvas.GetLeft(Gate.Rect) + 75, Canvas.GetTop(Gate.Rect) + 51 };
+ }
+ }
+ //not gate
+ else if (Gate.Type == 2)
+ {
+ return new double[] { Canvas.GetLeft(Gate.Rect) + 109.5, Canvas.GetTop(Gate.Rect) + 36 };
+ }
+ //every other gate
+ else
+ {
+ return new double[] { Canvas.GetLeft(Gate.Rect) + 115, Canvas.GetTop(Gate.Rect) + 35.7 };
+ }
+ return new double[] { -1, -1 };
+ }
+
+ private void Delay_Lable_TextChanged(object sender, TextChangedEventArgs e)
+ {
+ try
+ {
+ if (Delay_Lable.Text == "")
+ {
+ Delay_Intervals = 0;
+ Delay_Lable.Text = "0";
+ }
+ Delay_Intervals = Convert.ToInt32(Delay_Lable.Text);
+ }
+ catch
+ {
+ Delay_Lable.Text = Convert.ToString(Delay_Intervals);
+ }
+ }
+
+
+
+ ///
+ /// This is the main part of the logical part of the program. It's also the simulator that runs with
+ /// multithreading.
+ ///
+
+
+
+ private void Run_Button_Click(object sender, RoutedEventArgs e)
+ {
+ if(Sim_Running)
+ {
+ Sim_Running = false;
+ Run_Button.Content = "Run";
+
+ }
+ else
+ {
+ Sim_Running = true;
+ Run_Button.Content = "Stop";
+ Simulator_Worker.RunWorkerAsync();
+ }
+ }
+
+
+ private async void Simulator_Work(object sender, DoWorkEventArgs e)
+ {
+ bool Finished = false;
+ //error check:
+ //make sure every input and output has a connection
+
+
+ // need to make a list of all active Nodes. So at the start I need a loop to find all the active start nodes.
+ for (int i = 0; i < Input_Button_List.Count; i++)
+ {
+ if (Gate_List[Input_Button_List[i].Input_ID].Alive)
+ {
+
+ }
+ }
+ //make the rect border red, work out output bit, Change output circle or line to the colour it is.
+ //work out the new list
+ //display the change on the output?
+
+
+ while(!Finished && Sim_Running)
+ {
+
+
+
+
+
+ await(Task.Delay(Delay_Intervals));
+ }
+ }
+
+ private void Simulator_Terminated(object sender, RunWorkerCompletedEventArgs e)
+ {
+
+ }
+
+
+
+ private void System_Clean_Up(object sender, RoutedEventArgs e)
+ {
+ Progress_Window = new Progress_Bar_Window();
+ Progress_Window.Bar.Minimum = 0;
+ Progress_Window.Bar.Value = 0;
+ Progress_Window.Bar.Maximum = Gate_List.Count();
+ _worker.RunWorkerAsync();
+ Progress_Window.ShowDialog();
+ }
+
+
+ private void WorkerDoWork(object sender, DoWorkEventArgs e)
+ {
+
+
+ //removes dead gates
+ for (int i = 0; i < Gate_List.Count; i++)
+ {
+ if (!Gate_List[i].Alive)
+ {
+ Gate_List.RemoveAt(i);
+ for (int x = 0; x < Gate_List.Count; x++)
+ {
+ ShiftGate(i, Gate_List[x]);
+ }
+ }
+ Dispatcher.Invoke(() => { Progress_Window.Value = i; });
+ }
+ }
+
+ private void ShiftGate (int ID, Gate_Class Gate)
+ {
+ for (int i = 0; i < 2; i++)
+ {
+ if (Gate.Input[i].Input_ID==ID)
+ {
+ Gate.Input[i].Input_ID = 0;
+ Gate.Input[i].Input_Type = IO_Type.Null;
+ Gate.Input[i].Input_bit = false;
+ }
+ else if(Gate.Input[i].Input_ID > ID)
+ {
+ Gate.Input[i].Input_ID -= 1;
+ }
+ }
+ for (int i = 0; i < 3; i++)
+ {
+ if (Gate.Output[i].Output_ID == ID)
+ {
+ Gate.Output[i].Output_ID = 0;
+ Gate.Output[i].Output_Type = IO_Type.Null;
+ }
+ else if (Gate.Output[i].Output_ID > ID)
+ {
+ Gate.Output[i].Output_ID -= 1;
+ }
+ }
+ }
+
+
+
+
+ private void WorkerRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
+ {
+ Progress_Window.Close();
+ }
+
+ }
+}
diff --git a/CourseWork-master/A level course work Logic Gate/Output_Circle.cs b/CourseWork-master/A level course work Logic Gate/Output_Circle.cs
new file mode 100644
index 0000000..88e121f
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Output_Circle.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Controls;
+using System.Windows.Media;
+using System.Windows.Shapes;
+
+namespace A_level_course_work_Logic_Gate
+{
+ public class Output_Circle
+ {
+ public Ellipse Circle = new Ellipse { Height = 20, Width = 20, Fill = Brushes.Black, Stroke = Brushes.Black, StrokeThickness = 1 };
+ private bool _bit = false;
+
+ public int Output_ID { get; }
+ public int Output_Port;
+ public MainWindow _MainWind { get; set; }
+ public Output_Circle(MainWindow MainWind, int ID, int Port_Num)
+ {
+ _MainWind = MainWind;
+ Output_ID = ID;
+ Output_Port = Port_Num;
+ _MainWind.Sub_Canvas.Children.Add(Circle);
+ }
+
+
+ public bool Bit
+ {
+ get { return _bit; }
+ set
+ {
+ _bit = value;
+ if (value == false)
+ Circle.Fill = Brushes.Black;
+ else
+ Circle.Fill = Brushes.White;
+ }
+ }
+ public void Set_Coors(double x, double y)
+ {
+ Canvas.SetLeft(Circle, x+40);
+ Canvas.SetTop(Circle, y+10);
+ }
+
+ public Ellipse Get_Ellipse()
+ {
+ return Circle;
+ }
+
+ public void Aline_Circle(Gate_Class Gate)
+ {
+ double[] hold = _MainWind.Link_Output_Aline(Gate, Output_Port);
+ Change_X_Y(hold[0], hold[1]);
+ }
+
+ public void Change_X_Y(double x, double y)
+ {
+ Canvas.SetLeft(Get_Ellipse(), x);
+ Canvas.SetTop(Get_Ellipse(), y-10);
+ }
+
+ }
+}
diff --git a/CourseWork-master/A level course work Logic Gate/Output_Class.cs b/CourseWork-master/A level course work Logic Gate/Output_Class.cs
new file mode 100644
index 0000000..94baba4
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Output_Class.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace A_level_course_work_Logic_Gate
+{
+ public class Output_Class
+ {
+ private int _output_ID = -1;
+ private IO_Type _output_Type = IO_Type.Null;
+ private int _line_ID = -1;
+ public int Output_ID {
+ get {return _output_ID ; }
+ set {_output_ID =value; } }
+
+ public IO_Type Output_Type {
+ get { return _output_Type; }
+ set {
+ switch(value)
+ {
+ case (IO_Type.Null):
+ _output_ID = -1;
+ _line_ID = -1;
+ break;
+ case (IO_Type.IO):
+ _line_ID = -1;
+ break;
+ }
+ _output_Type = value;
+ }
+ }
+ public int Line_ID {
+ get {return _line_ID; }
+ set { _line_ID = value; } }
+
+ public Output_Class()
+ {
+ Output_Type = IO_Type.Null;
+ }
+ //delete
+ public void Output_Status()
+ {
+ Console.WriteLine("Input ID : {0}\nInput Type : {1}\nLine ID : {2}", Output_ID, Output_Type, Line_ID);
+ }
+ }
+}
diff --git a/CourseWork-master/A level course work Logic Gate/Progress_Bar_Window.xaml b/CourseWork-master/A level course work Logic Gate/Progress_Bar_Window.xaml
new file mode 100644
index 0000000..a2ea772
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Progress_Bar_Window.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/Progress_Bar_Window.xaml.cs b/CourseWork-master/A level course work Logic Gate/Progress_Bar_Window.xaml.cs
new file mode 100644
index 0000000..24480b7
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Progress_Bar_Window.xaml.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace A_level_course_work_Logic_Gate
+{
+ ///
+ /// Interaction logic for Progress_Bar_Window.xaml
+ ///
+ public partial class Progress_Bar_Window : Window
+ {
+ public int Value
+ {
+ set
+ {
+ Bar.Value = value;
+ }
+ }
+
+
+ public Progress_Bar_Window()
+ {
+
+ InitializeComponent();
+ }
+
+ private void Window_Loaded(object sender, RoutedEventArgs e)
+ {
+ Bar.Maximum = 0;
+ }
+
+
+
+ }
+}
diff --git a/CourseWork-master/A level course work Logic Gate/Properties/AssemblyInfo.cs b/CourseWork-master/A level course work Logic Gate/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..f977185
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Properties/AssemblyInfo.cs
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 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("A level course work Logic Gate")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("HP Inc.")]
+[assembly: AssemblyProduct("A level course work Logic Gate")]
+[assembly: AssemblyCopyright("Copyright © HP Inc. 2019")]
+[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)]
+
+//In order to begin building localizable applications, set
+//CultureYouAreCodingWith in your .csproj file
+//inside a . For example, if you are using US english
+//in your source files, set the to en-US. Then uncomment
+//the NeutralResourceLanguage attribute below. Update the "en-US" in
+//the line below to match the UICulture setting in the project file.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+ //(used if a resource is not found in the page,
+ // or application resource dictionaries)
+ ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+ //(used if a resource is not found in the page,
+ // app, or any theme specific resource dictionaries)
+)]
+
+
+// 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/CourseWork-master/A level course work Logic Gate/Properties/Resources.Designer.cs b/CourseWork-master/A level course work Logic Gate/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..69a6308
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace A_level_course_work_Logic_Gate.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("A_level_course_work_Logic_Gate.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/CourseWork-master/A level course work Logic Gate/Properties/Resources.resx b/CourseWork-master/A level course work Logic Gate/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CourseWork-master/A level course work Logic Gate/Properties/Settings.Designer.cs b/CourseWork-master/A level course work Logic Gate/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..24763c5
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace A_level_course_work_Logic_Gate.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/CourseWork-master/A level course work Logic Gate/Properties/Settings.settings b/CourseWork-master/A level course work Logic Gate/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CourseWork-master/A level course work Logic Gate/Resource/And_Gate_F.xaml b/CourseWork-master/A level course work Logic Gate/Resource/And_Gate_F.xaml
new file mode 100644
index 0000000..ccd56e1
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Resource/And_Gate_F.xaml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/Resource/Nand_Gate_F.xaml b/CourseWork-master/A level course work Logic Gate/Resource/Nand_Gate_F.xaml
new file mode 100644
index 0000000..f37f902
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Resource/Nand_Gate_F.xaml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/Resource/Nor_Gate_F.xaml b/CourseWork-master/A level course work Logic Gate/Resource/Nor_Gate_F.xaml
new file mode 100644
index 0000000..2f20f96
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Resource/Nor_Gate_F.xaml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/Resource/Not_Gate_F.xaml b/CourseWork-master/A level course work Logic Gate/Resource/Not_Gate_F.xaml
new file mode 100644
index 0000000..0d4c1ff
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Resource/Not_Gate_F.xaml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/Resource/Or_Gate_F.xaml b/CourseWork-master/A level course work Logic Gate/Resource/Or_Gate_F.xaml
new file mode 100644
index 0000000..dd3f9e1
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Resource/Or_Gate_F.xaml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/Resource/Transformer.xaml b/CourseWork-master/A level course work Logic Gate/Resource/Transformer.xaml
new file mode 100644
index 0000000..178a5c3
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Resource/Transformer.xaml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/Resource/Xnor_Gate_F.xaml b/CourseWork-master/A level course work Logic Gate/Resource/Xnor_Gate_F.xaml
new file mode 100644
index 0000000..a548f57
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Resource/Xnor_Gate_F.xaml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/Resource/Xor_Gate_F.xaml b/CourseWork-master/A level course work Logic Gate/Resource/Xor_Gate_F.xaml
new file mode 100644
index 0000000..27ff9c0
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/Resource/Xor_Gate_F.xaml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.exe b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.exe
new file mode 100644
index 0000000..ea2957d
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.exe differ
diff --git a/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.exe.config b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.exe.config
new file mode 100644
index 0000000..efc3ffd
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.exe.config
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.pdb b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.pdb
new file mode 100644
index 0000000..68ff861
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.pdb differ
diff --git a/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.vshost.exe b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.vshost.exe
new file mode 100644
index 0000000..681ab77
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.vshost.exe differ
diff --git a/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.vshost.exe.config b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.vshost.exe.config
new file mode 100644
index 0000000..efc3ffd
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.vshost.exe.config
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.vshost.exe.manifest b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.vshost.exe.manifest
new file mode 100644
index 0000000..f96b1d6
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/bin/Debug/A level course work Logic Gate.vshost.exe.manifest
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.csproj.FileListAbsolute.txt b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..56bbf81
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.csproj.FileListAbsolute.txt
@@ -0,0 +1,50 @@
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\bin\Debug\A level course work Logic Gate.exe.config
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate.csprojResolveAssemblyReference.cache
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\And_Gate_F.baml
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Nand_Gate_F.baml
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Nor_Gate_F.baml
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Not_Gate_F.baml
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Or_Gate_F.baml
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Transformer.baml
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Xnor_Gate_F.baml
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Xor_Gate_F.baml
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\MainWindow.g.cs
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Progress_Bar_Window.g.cs
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\App.g.cs
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate_MarkupCompile.cache
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate_MarkupCompile.lref
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\bin\Debug\A level course work Logic Gate.exe
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\bin\Debug\A level course work Logic Gate.pdb
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\App.baml
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\MainWindow.baml
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Progress_Bar_Window.baml
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate.g.resources
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A_level_course_work_Logic_Gate.Properties.Resources.resources
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate.csproj.GenerateResource.Cache
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate.exe
+\\Hds-data\3675$\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate.pdb
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\bin\Debug\A level course work Logic Gate.exe.config
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate.exe
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate.pdb
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\bin\Debug\A level course work Logic Gate.exe
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\bin\Debug\A level course work Logic Gate.pdb
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate.csprojResolveAssemblyReference.cache
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\And_Gate_F.baml
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Nand_Gate_F.baml
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Nor_Gate_F.baml
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Not_Gate_F.baml
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Or_Gate_F.baml
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Transformer.baml
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Xnor_Gate_F.baml
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Resource\Xor_Gate_F.baml
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\MainWindow.g.cs
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Progress_Bar_Window.g.cs
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\App.g.cs
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate_MarkupCompile.cache
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate_MarkupCompile.lref
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\App.baml
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\MainWindow.baml
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\Progress_Bar_Window.baml
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate.g.resources
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A_level_course_work_Logic_Gate.Properties.Resources.resources
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\A level course work Logic Gate.csproj.GenerateResource.Cache
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.csproj.GenerateResource.Cache b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.csproj.GenerateResource.Cache
new file mode 100644
index 0000000..9a282a2
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.csproj.GenerateResource.Cache differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.csprojResolveAssemblyReference.cache b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.csprojResolveAssemblyReference.cache
new file mode 100644
index 0000000..b6e5541
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.csprojResolveAssemblyReference.cache differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.exe b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.exe
new file mode 100644
index 0000000..ea2957d
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.exe differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.g.resources b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.g.resources
new file mode 100644
index 0000000..fe5bac9
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.g.resources differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.pdb b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.pdb
new file mode 100644
index 0000000..68ff861
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate.pdb differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.cache b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.cache
new file mode 100644
index 0000000..cf00e71
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.cache
@@ -0,0 +1,20 @@
+A level course work Logic Gate
+
+
+exe
+C#
+.cs
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\
+A_level_course_work_Logic_Gate
+none
+false
+DEBUG;TRACE
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\App.xaml
+10-1179033080
+
+13-1229776950
+13738642453
+MainWindow.xaml;Progress_Bar_Window.xaml;Resource\And_Gate_F.xaml;Resource\Nand_Gate_F.xaml;Resource\Nor_Gate_F.xaml;Resource\Not_Gate_F.xaml;Resource\Or_Gate_F.xaml;Resource\Transformer.xaml;Resource\Xnor_Gate_F.xaml;Resource\Xor_Gate_F.xaml;
+
+False
+
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.i.cache b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.i.cache
new file mode 100644
index 0000000..aaa019a
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.i.cache
@@ -0,0 +1,20 @@
+A level course work Logic Gate
+
+
+exe
+C#
+.cs
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\obj\Debug\
+A_level_course_work_Logic_Gate
+none
+false
+DEBUG;TRACE
+U:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\App.xaml
+10-1179033080
+
+17-2075628296
+13738642453
+MainWindow.xaml;Progress_Bar_Window.xaml;Resource\And_Gate_F.xaml;Resource\Nand_Gate_F.xaml;Resource\Nor_Gate_F.xaml;Resource\Not_Gate_F.xaml;Resource\Or_Gate_F.xaml;Resource\Transformer.xaml;Resource\Xnor_Gate_F.xaml;Resource\Xor_Gate_F.xaml;
+
+False
+
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.i.lref b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.i.lref
new file mode 100644
index 0000000..9134ab5
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.i.lref
@@ -0,0 +1,5 @@
+
+FU:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\App.xaml;;
+FU:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\MainWindow.xaml;;
+FU:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\Progress_Bar_Window.xaml;;
+
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.lref b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.lref
new file mode 100644
index 0000000..9134ab5
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/obj/Debug/A level course work Logic Gate_MarkupCompile.lref
@@ -0,0 +1,5 @@
+
+FU:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\App.xaml;;
+FU:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\MainWindow.xaml;;
+FU:\computer scince\course work\Zip File\CourseWork-master\A level course work Logic Gate\Progress_Bar_Window.xaml;;
+
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/A_level_course_work_Logic_Gate.Properties.Resources.resources b/CourseWork-master/A level course work Logic Gate/obj/Debug/A_level_course_work_Logic_Gate.Properties.Resources.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/A_level_course_work_Logic_Gate.Properties.Resources.resources differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/App.baml b/CourseWork-master/A level course work Logic Gate/obj/Debug/App.baml
new file mode 100644
index 0000000..0f559aa
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/App.baml differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/App.g.cs b/CourseWork-master/A level course work Logic Gate/obj/Debug/App.g.cs
new file mode 100644
index 0000000..a7106e5
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/obj/Debug/App.g.cs
@@ -0,0 +1,83 @@
+#pragma checksum "..\..\App.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "4B0C730B1599AA7E94F814C31130FAF8"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using A_level_course_work_Logic_Gate;
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace A_level_course_work_Logic_Gate {
+
+
+ ///
+ /// App
+ ///
+ public partial class App : System.Windows.Application {
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+
+ #line 5 "..\..\App.xaml"
+ this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
+
+ #line default
+ #line hidden
+ System.Uri resourceLocater = new System.Uri("/A level course work Logic Gate;component/app.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\App.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ ///
+ /// Application Entry Point.
+ ///
+ [System.STAThreadAttribute()]
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public static void Main() {
+ A_level_course_work_Logic_Gate.App app = new A_level_course_work_Logic_Gate.App();
+ app.InitializeComponent();
+ app.Run();
+ }
+ }
+}
+
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/App.g.i.cs b/CourseWork-master/A level course work Logic Gate/obj/Debug/App.g.i.cs
new file mode 100644
index 0000000..a7106e5
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/obj/Debug/App.g.i.cs
@@ -0,0 +1,83 @@
+#pragma checksum "..\..\App.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "4B0C730B1599AA7E94F814C31130FAF8"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using A_level_course_work_Logic_Gate;
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace A_level_course_work_Logic_Gate {
+
+
+ ///
+ /// App
+ ///
+ public partial class App : System.Windows.Application {
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+
+ #line 5 "..\..\App.xaml"
+ this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
+
+ #line default
+ #line hidden
+ System.Uri resourceLocater = new System.Uri("/A level course work Logic Gate;component/app.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\App.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ ///
+ /// Application Entry Point.
+ ///
+ [System.STAThreadAttribute()]
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public static void Main() {
+ A_level_course_work_Logic_Gate.App app = new A_level_course_work_Logic_Gate.App();
+ app.InitializeComponent();
+ app.Run();
+ }
+ }
+}
+
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/CourseWork-master/A level course work Logic Gate/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..c793f17
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/CourseWork-master/A level course work Logic Gate/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..a4a8371
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/MainWindow.baml b/CourseWork-master/A level course work Logic Gate/obj/Debug/MainWindow.baml
new file mode 100644
index 0000000..6df6593
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/MainWindow.baml differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/MainWindow.g.cs b/CourseWork-master/A level course work Logic Gate/obj/Debug/MainWindow.g.cs
new file mode 100644
index 0000000..a40d84d
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/obj/Debug/MainWindow.g.cs
@@ -0,0 +1,354 @@
+#pragma checksum "..\..\MainWindow.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "125964DD0DAE69C36D9F5EE41DAB4A8B"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using A_level_course_work_Logic_Gate;
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace A_level_course_work_Logic_Gate {
+
+
+ ///
+ /// MainWindow
+ ///
+ public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 9 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid Main_Grid;
+
+ #line default
+ #line hidden
+
+
+ #line 17 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border Canvas_Border;
+
+ #line default
+ #line hidden
+
+
+ #line 19 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Canvas Main_Canvas;
+
+ #line default
+ #line hidden
+
+
+ #line 36 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button Run_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 38 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox Delay_Lable;
+
+ #line default
+ #line hidden
+
+
+ #line 39 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button Link_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 40 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button Input_Output_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 41 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle And_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 42 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Nand_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 43 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Not_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 44 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Or_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 45 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Nor_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 46 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Xor_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 47 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Xnor_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 48 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Transformer_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 49 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock Message_Box;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/A level course work Logic Gate;component/mainwindow.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\MainWindow.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 8 "..\..\MainWindow.xaml"
+ ((A_level_course_work_Logic_Gate.MainWindow)(target)).MouseMove += new System.Windows.Input.MouseEventHandler(this.Window_MouseMove);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.Main_Grid = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 3:
+ this.Canvas_Border = ((System.Windows.Controls.Border)(target));
+
+ #line 17 "..\..\MainWindow.xaml"
+ this.Canvas_Border.Loaded += new System.Windows.RoutedEventHandler(this.Canvas_Border_Loaded);
+
+ #line default
+ #line hidden
+ return;
+ case 4:
+ this.Main_Canvas = ((System.Windows.Controls.Canvas)(target));
+
+ #line 19 "..\..\MainWindow.xaml"
+ this.Main_Canvas.MouseLeftButtonUp += new System.Windows.Input.MouseButtonEventHandler(this.Main_Canvas_MouseLeftButtonUp);
+
+ #line default
+ #line hidden
+ return;
+ case 5:
+
+ #line 31 "..\..\MainWindow.xaml"
+ ((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.System_Clean_Up);
+
+ #line default
+ #line hidden
+ return;
+ case 6:
+ this.Run_Button = ((System.Windows.Controls.Button)(target));
+
+ #line 36 "..\..\MainWindow.xaml"
+ this.Run_Button.Click += new System.Windows.RoutedEventHandler(this.Run_Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 7:
+ this.Delay_Lable = ((System.Windows.Controls.TextBox)(target));
+
+ #line 38 "..\..\MainWindow.xaml"
+ this.Delay_Lable.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.Delay_Lable_TextChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 8:
+ this.Link_Button = ((System.Windows.Controls.Button)(target));
+
+ #line 39 "..\..\MainWindow.xaml"
+ this.Link_Button.Click += new System.Windows.RoutedEventHandler(this.Link_Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 9:
+ this.Input_Output_Button = ((System.Windows.Controls.Button)(target));
+
+ #line 40 "..\..\MainWindow.xaml"
+ this.Input_Output_Button.Click += new System.Windows.RoutedEventHandler(this.Input_Output_Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 10:
+ this.And_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 41 "..\..\MainWindow.xaml"
+ this.And_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 11:
+ this.Nand_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 42 "..\..\MainWindow.xaml"
+ this.Nand_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 12:
+ this.Not_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 43 "..\..\MainWindow.xaml"
+ this.Not_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 13:
+ this.Or_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 44 "..\..\MainWindow.xaml"
+ this.Or_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 14:
+ this.Nor_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 45 "..\..\MainWindow.xaml"
+ this.Nor_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 15:
+ this.Xor_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 46 "..\..\MainWindow.xaml"
+ this.Xor_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 16:
+ this.Xnor_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 47 "..\..\MainWindow.xaml"
+ this.Xnor_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 17:
+ this.Transformer_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 48 "..\..\MainWindow.xaml"
+ this.Transformer_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 18:
+ this.Message_Box = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/MainWindow.g.i.cs b/CourseWork-master/A level course work Logic Gate/obj/Debug/MainWindow.g.i.cs
new file mode 100644
index 0000000..a40d84d
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/obj/Debug/MainWindow.g.i.cs
@@ -0,0 +1,354 @@
+#pragma checksum "..\..\MainWindow.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "125964DD0DAE69C36D9F5EE41DAB4A8B"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using A_level_course_work_Logic_Gate;
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace A_level_course_work_Logic_Gate {
+
+
+ ///
+ /// MainWindow
+ ///
+ public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 9 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid Main_Grid;
+
+ #line default
+ #line hidden
+
+
+ #line 17 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border Canvas_Border;
+
+ #line default
+ #line hidden
+
+
+ #line 19 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Canvas Main_Canvas;
+
+ #line default
+ #line hidden
+
+
+ #line 36 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button Run_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 38 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox Delay_Lable;
+
+ #line default
+ #line hidden
+
+
+ #line 39 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button Link_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 40 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button Input_Output_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 41 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle And_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 42 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Nand_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 43 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Not_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 44 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Or_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 45 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Nor_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 46 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Xor_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 47 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Xnor_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 48 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shapes.Rectangle Transformer_Button;
+
+ #line default
+ #line hidden
+
+
+ #line 49 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock Message_Box;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/A level course work Logic Gate;component/mainwindow.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\MainWindow.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 8 "..\..\MainWindow.xaml"
+ ((A_level_course_work_Logic_Gate.MainWindow)(target)).MouseMove += new System.Windows.Input.MouseEventHandler(this.Window_MouseMove);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.Main_Grid = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 3:
+ this.Canvas_Border = ((System.Windows.Controls.Border)(target));
+
+ #line 17 "..\..\MainWindow.xaml"
+ this.Canvas_Border.Loaded += new System.Windows.RoutedEventHandler(this.Canvas_Border_Loaded);
+
+ #line default
+ #line hidden
+ return;
+ case 4:
+ this.Main_Canvas = ((System.Windows.Controls.Canvas)(target));
+
+ #line 19 "..\..\MainWindow.xaml"
+ this.Main_Canvas.MouseLeftButtonUp += new System.Windows.Input.MouseButtonEventHandler(this.Main_Canvas_MouseLeftButtonUp);
+
+ #line default
+ #line hidden
+ return;
+ case 5:
+
+ #line 31 "..\..\MainWindow.xaml"
+ ((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.System_Clean_Up);
+
+ #line default
+ #line hidden
+ return;
+ case 6:
+ this.Run_Button = ((System.Windows.Controls.Button)(target));
+
+ #line 36 "..\..\MainWindow.xaml"
+ this.Run_Button.Click += new System.Windows.RoutedEventHandler(this.Run_Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 7:
+ this.Delay_Lable = ((System.Windows.Controls.TextBox)(target));
+
+ #line 38 "..\..\MainWindow.xaml"
+ this.Delay_Lable.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.Delay_Lable_TextChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 8:
+ this.Link_Button = ((System.Windows.Controls.Button)(target));
+
+ #line 39 "..\..\MainWindow.xaml"
+ this.Link_Button.Click += new System.Windows.RoutedEventHandler(this.Link_Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 9:
+ this.Input_Output_Button = ((System.Windows.Controls.Button)(target));
+
+ #line 40 "..\..\MainWindow.xaml"
+ this.Input_Output_Button.Click += new System.Windows.RoutedEventHandler(this.Input_Output_Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 10:
+ this.And_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 41 "..\..\MainWindow.xaml"
+ this.And_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 11:
+ this.Nand_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 42 "..\..\MainWindow.xaml"
+ this.Nand_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 12:
+ this.Not_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 43 "..\..\MainWindow.xaml"
+ this.Not_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 13:
+ this.Or_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 44 "..\..\MainWindow.xaml"
+ this.Or_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 14:
+ this.Nor_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 45 "..\..\MainWindow.xaml"
+ this.Nor_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 15:
+ this.Xor_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 46 "..\..\MainWindow.xaml"
+ this.Xor_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 16:
+ this.Xnor_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 47 "..\..\MainWindow.xaml"
+ this.Xnor_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 17:
+ this.Transformer_Button = ((System.Windows.Shapes.Rectangle)(target));
+
+ #line 48 "..\..\MainWindow.xaml"
+ this.Transformer_Button.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Rect_Button_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 18:
+ this.Message_Box = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/Progress_Bar_Window.baml b/CourseWork-master/A level course work Logic Gate/obj/Debug/Progress_Bar_Window.baml
new file mode 100644
index 0000000..e8850b5
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/Progress_Bar_Window.baml differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/Progress_Bar_Window.g.cs b/CourseWork-master/A level course work Logic Gate/obj/Debug/Progress_Bar_Window.g.cs
new file mode 100644
index 0000000..a5c433a
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/obj/Debug/Progress_Bar_Window.g.cs
@@ -0,0 +1,97 @@
+#pragma checksum "..\..\Progress_Bar_Window.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "AEAC12202E0E17FC104EEEA565371C1E"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using A_level_course_work_Logic_Gate;
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace A_level_course_work_Logic_Gate {
+
+
+ ///
+ /// Progress_Bar_Window
+ ///
+ public partial class Progress_Bar_Window : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 10 "..\..\Progress_Bar_Window.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ProgressBar Bar;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/A level course work Logic Gate;component/progress_bar_window.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\Progress_Bar_Window.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 8 "..\..\Progress_Bar_Window.xaml"
+ ((A_level_course_work_Logic_Gate.Progress_Bar_Window)(target)).Loaded += new System.Windows.RoutedEventHandler(this.Window_Loaded);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.Bar = ((System.Windows.Controls.ProgressBar)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/Progress_Bar_Window.g.i.cs b/CourseWork-master/A level course work Logic Gate/obj/Debug/Progress_Bar_Window.g.i.cs
new file mode 100644
index 0000000..a5c433a
--- /dev/null
+++ b/CourseWork-master/A level course work Logic Gate/obj/Debug/Progress_Bar_Window.g.i.cs
@@ -0,0 +1,97 @@
+#pragma checksum "..\..\Progress_Bar_Window.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "AEAC12202E0E17FC104EEEA565371C1E"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using A_level_course_work_Logic_Gate;
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace A_level_course_work_Logic_Gate {
+
+
+ ///
+ /// Progress_Bar_Window
+ ///
+ public partial class Progress_Bar_Window : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 10 "..\..\Progress_Bar_Window.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ProgressBar Bar;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/A level course work Logic Gate;component/progress_bar_window.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\Progress_Bar_Window.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 8 "..\..\Progress_Bar_Window.xaml"
+ ((A_level_course_work_Logic_Gate.Progress_Bar_Window)(target)).Loaded += new System.Windows.RoutedEventHandler(this.Window_Loaded);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.Bar = ((System.Windows.Controls.ProgressBar)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/And_Gate_F.baml b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/And_Gate_F.baml
new file mode 100644
index 0000000..781df4f
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/And_Gate_F.baml differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Nand_Gate_F.baml b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Nand_Gate_F.baml
new file mode 100644
index 0000000..a1d0e52
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Nand_Gate_F.baml differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Nor_Gate_F.baml b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Nor_Gate_F.baml
new file mode 100644
index 0000000..b542c41
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Nor_Gate_F.baml differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Not_Gate_F.baml b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Not_Gate_F.baml
new file mode 100644
index 0000000..46ae060
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Not_Gate_F.baml differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Or_Gate_F.baml b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Or_Gate_F.baml
new file mode 100644
index 0000000..73f77ae
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Or_Gate_F.baml differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Transformer.baml b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Transformer.baml
new file mode 100644
index 0000000..74f6c3c
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Transformer.baml differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Xnor_Gate_F.baml b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Xnor_Gate_F.baml
new file mode 100644
index 0000000..60cacbc
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Xnor_Gate_F.baml differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Xor_Gate_F.baml b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Xor_Gate_F.baml
new file mode 100644
index 0000000..57c258b
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/Resource/Xor_Gate_F.baml differ
diff --git a/CourseWork-master/A level course work Logic Gate/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/CourseWork-master/A level course work Logic Gate/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll
new file mode 100644
index 0000000..333ee70
Binary files /dev/null and b/CourseWork-master/A level course work Logic Gate/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ
diff --git a/CourseWork-master/To do list CS coursework.docx b/CourseWork-master/To do list CS coursework.docx
new file mode 100644
index 0000000..e926217
Binary files /dev/null and b/CourseWork-master/To do list CS coursework.docx differ