diff --git a/Cribbage/.classpath b/Cribbage/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..4c6698451bc17960ac5b7d5ee30586b6fdc50e69
--- /dev/null
+++ b/Cribbage/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="src" path="sprites"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JGameGrid"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
\ No newline at end of file
diff --git a/Cribbage/.idea/.gitignore b/Cribbage/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Cribbage/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Cribbage/.idea/.name b/Cribbage/.idea/.name
new file mode 100644
index 0000000000000000000000000000000000000000..ce75906cdaf838fc62e83de5d9da397df677e6e6
--- /dev/null
+++ b/Cribbage/.idea/.name
@@ -0,0 +1 @@
+Cribbage.java
\ No newline at end of file
diff --git a/Cribbage/.idea/libraries/JGameGrid.xml b/Cribbage/.idea/libraries/JGameGrid.xml
new file mode 100644
index 0000000000000000000000000000000000000000..96f358fd8596e6f524fb6d64abd4a6ecdc7cc84f
--- /dev/null
+++ b/Cribbage/.idea/libraries/JGameGrid.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="JGameGrid">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/dist/lib/JGameGrid.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/Cribbage/.idea/misc.xml b/Cribbage/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..735e154ea92a53e3bb4d4b12c29187c438a0e19b
--- /dev/null
+++ b/Cribbage/.idea/misc.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_12" project-jdk-name="12 (2)" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/Cribbage/.idea/modules.xml b/Cribbage/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2326fbacac3f7120f5328f97f23566adf9b7f1fc
--- /dev/null
+++ b/Cribbage/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/Cribbage.iml" filepath="$PROJECT_DIR$/Cribbage.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/Cribbage/.idea/uiDesigner.xml b/Cribbage/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e96534fb27b68192f27f985d3879e173ec77adb8
--- /dev/null
+++ b/Cribbage/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>
\ No newline at end of file
diff --git a/Cribbage/.project b/Cribbage/.project
new file mode 100644
index 0000000000000000000000000000000000000000..7142b656ab09e565208ff937c6551e037d7daec7
--- /dev/null
+++ b/Cribbage/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Cribbage</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/Cribbage/.settings/org.eclipse.jdt.core.prefs b/Cribbage/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..3a21537071bf4118b9e1ee864cb4bc258aa48211
--- /dev/null
+++ b/Cribbage/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/Cribbage/Cribbage.eml b/Cribbage/Cribbage.eml
new file mode 100644
index 0000000000000000000000000000000000000000..3147d0406a3351c3ef1db93f85390e8e36c9033a
--- /dev/null
+++ b/Cribbage/Cribbage.eml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component inherit-compiler-output="true" inheritJdk="true">
+	<exclude-output/>
+	<contentEntry url="file://$MODULE_DIR$"/>
+	<levels>
+		<level name="JGameGrid" value="project"/>
+	</levels>
+</component>
\ No newline at end of file
diff --git a/Cribbage/Cribbage.iml b/Cribbage/Cribbage.iml
new file mode 100644
index 0000000000000000000000000000000000000000..e2a228313a7b0de712540542cf33a49cb6f9aa63
--- /dev/null
+++ b/Cribbage/Cribbage.iml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module classpath="eclipse" classpath-dir="$MODULE_DIR$" type="WEB_MODULE" version="4" />
\ No newline at end of file
diff --git a/Cribbage/Cribbage.userlibraries b/Cribbage/Cribbage.userlibraries
new file mode 100644
index 0000000000000000000000000000000000000000..25eba150dd812120752893333ad8d9ed5335135d
--- /dev/null
+++ b/Cribbage/Cribbage.userlibraries
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<eclipse-userlibraries>
+  <library name="JGameGrid">
+    <archive path="C:/Users/pdart/OneDrive - The University of Melbourne/Teaching/SWEN30006 2021 S1/Projects/Project_2/Cribbage/dist/lib/JGameGrid.jar" />
+  </library>
+</eclipse-userlibraries>
+
diff --git a/Cribbage/bin/whist/BrokeRuleException.class b/Cribbage/bin/whist/BrokeRuleException.class
new file mode 100644
index 0000000000000000000000000000000000000000..18ce2386b12addc6c8944cc6158f386f7101d5dd
Binary files /dev/null and b/Cribbage/bin/whist/BrokeRuleException.class differ
diff --git a/Cribbage/bin/whist/HumanPlayer$1.class b/Cribbage/bin/whist/HumanPlayer$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..b048a111a507e842fe8d2e767259595d67eeabf5
Binary files /dev/null and b/Cribbage/bin/whist/HumanPlayer$1.class differ
diff --git a/Cribbage/bin/whist/HumanPlayer.class b/Cribbage/bin/whist/HumanPlayer.class
new file mode 100644
index 0000000000000000000000000000000000000000..e7cdaf1c56175806bbf7ca9c9b0cd66f47cb5560
Binary files /dev/null and b/Cribbage/bin/whist/HumanPlayer.class differ
diff --git a/Cribbage/bin/whist/IPlayer.class b/Cribbage/bin/whist/IPlayer.class
new file mode 100644
index 0000000000000000000000000000000000000000..23f33e38835b798395f277acd8c4616ea8416e72
Binary files /dev/null and b/Cribbage/bin/whist/IPlayer.class differ
diff --git a/Cribbage/bin/whist/LegalPlayer.class b/Cribbage/bin/whist/LegalPlayer.class
new file mode 100644
index 0000000000000000000000000000000000000000..216203fca340f62ee9b53947ec5d3d5cc2c2e917
Binary files /dev/null and b/Cribbage/bin/whist/LegalPlayer.class differ
diff --git a/Cribbage/bin/whist/LowPlayer.class b/Cribbage/bin/whist/LowPlayer.class
new file mode 100644
index 0000000000000000000000000000000000000000..6b2174da628ea4ae6dea9f0b1aa76a4d51d21042
Binary files /dev/null and b/Cribbage/bin/whist/LowPlayer.class differ
diff --git a/Cribbage/bin/whist/RandomPlayer.class b/Cribbage/bin/whist/RandomPlayer.class
new file mode 100644
index 0000000000000000000000000000000000000000..d5bef28032fba579684ad3f0c329c65ea252101e
Binary files /dev/null and b/Cribbage/bin/whist/RandomPlayer.class differ
diff --git a/Cribbage/bin/whist/Whist$Action.class b/Cribbage/bin/whist/Whist$Action.class
new file mode 100644
index 0000000000000000000000000000000000000000..c489aa8e8afba50e45f60fb3b1fb71aa780e698d
Binary files /dev/null and b/Cribbage/bin/whist/Whist$Action.class differ
diff --git a/Cribbage/bin/whist/Whist$Play.class b/Cribbage/bin/whist/Whist$Play.class
new file mode 100644
index 0000000000000000000000000000000000000000..aaa5b47835bbdbbdfa020a7232e2dca96eb7959b
Binary files /dev/null and b/Cribbage/bin/whist/Whist$Play.class differ
diff --git a/Cribbage/bin/whist/Whist$Rank.class b/Cribbage/bin/whist/Whist$Rank.class
new file mode 100644
index 0000000000000000000000000000000000000000..c15803f4fd53411ae62ad0b38f67f281fa7e38b5
Binary files /dev/null and b/Cribbage/bin/whist/Whist$Rank.class differ
diff --git a/Cribbage/bin/whist/Whist$Suit.class b/Cribbage/bin/whist/Whist$Suit.class
new file mode 100644
index 0000000000000000000000000000000000000000..37a6f4b258bf0ec4fde919239f3ecd872ad877ac
Binary files /dev/null and b/Cribbage/bin/whist/Whist$Suit.class differ
diff --git a/Cribbage/bin/whist/Whist$Trick.class b/Cribbage/bin/whist/Whist$Trick.class
new file mode 100644
index 0000000000000000000000000000000000000000..d3cc3e1585459a3ba8aade6b59c29f0de997f5bb
Binary files /dev/null and b/Cribbage/bin/whist/Whist$Trick.class differ
diff --git a/Cribbage/bin/whist/Whist.class b/Cribbage/bin/whist/Whist.class
new file mode 100644
index 0000000000000000000000000000000000000000..b61f704c922f71d0b58bdffa5ade2c286c730281
Binary files /dev/null and b/Cribbage/bin/whist/Whist.class differ
diff --git a/Cribbage/cribbage.properties b/Cribbage/cribbage.properties
new file mode 100644
index 0000000000000000000000000000000000000000..c9e8635a9c9831d8bfbd97036796b354a1f698ab
--- /dev/null
+++ b/Cribbage/cribbage.properties
@@ -0,0 +1,10 @@
+Seed=55510
+#Seed=12345
+#Seed=1248
+#Seed=30006
+#Animate=true
+#Animate=false
+#Player0=cribbage.HumanPlayer
+Player0=cribbage.RandomPlayer
+#Player1=cribbage.HumanPlayer
+Player1=cribbage.RandomPlayer
diff --git a/Cribbage/dist/CGMauMau.jar b/Cribbage/dist/CGMauMau.jar
new file mode 100644
index 0000000000000000000000000000000000000000..d0b3cb92f1b3e273ac90b1281ef4972d7ae20a1f
Binary files /dev/null and b/Cribbage/dist/CGMauMau.jar differ
diff --git a/Cribbage/dist/README.TXT b/Cribbage/dist/README.TXT
new file mode 100644
index 0000000000000000000000000000000000000000..8782a57c76cd70ab1a1be02c5d13087bca41954a
--- /dev/null
+++ b/Cribbage/dist/README.TXT
@@ -0,0 +1,32 @@
+========================
+BUILD OUTPUT DESCRIPTION
+========================
+
+When you build an Java application project that has a main class, the IDE
+automatically copies all of the JAR
+files on the projects classpath to your projects dist/lib folder. The IDE
+also adds each of the JAR files to the Class-Path element in the application
+JAR files manifest file (MANIFEST.MF).
+
+To run the project from the command line, go to the dist folder and
+type the following:
+
+java -jar "CGMauMau.jar" 
+
+To distribute this project, zip up the dist folder (including the lib folder)
+and distribute the ZIP file.
+
+Notes:
+
+* If two JAR files on the project classpath have the same name, only the first
+JAR file is copied to the lib folder.
+* Only JAR files are copied to the lib folder.
+If the classpath contains other types of files or folders, these files (folders)
+are not copied.
+* If a library on the projects classpath also has a Class-Path element
+specified in the manifest,the content of the Class-Path element has to be on
+the projects runtime path.
+* To set a main class in a standard Java project, right-click the project node
+in the Projects window and choose Properties. Then click Run and enter the
+class name in the Main Class field. Alternatively, you can manually type the
+class name in the manifest Main-Class element.
diff --git a/Cribbage/dist/lib/JGameGrid.jar b/Cribbage/dist/lib/JGameGrid.jar
new file mode 100644
index 0000000000000000000000000000000000000000..62dbba7aaa79d14118b3d75fbe3ba63233c5dab5
Binary files /dev/null and b/Cribbage/dist/lib/JGameGrid.jar differ
diff --git a/Cribbage/out/production/Cribbage/bigclub.gif b/Cribbage/out/production/Cribbage/bigclub.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cf07ff0a3b53c6cf1e69b1706b1fd8db76918d3c
Binary files /dev/null and b/Cribbage/out/production/Cribbage/bigclub.gif differ
diff --git a/Cribbage/out/production/Cribbage/bigclub1.gif b/Cribbage/out/production/Cribbage/bigclub1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..05336b86a536e9d0acf7f9670ea1c4ffae5667a8
Binary files /dev/null and b/Cribbage/out/production/Cribbage/bigclub1.gif differ
diff --git a/Cribbage/out/production/Cribbage/bigdiamond.gif b/Cribbage/out/production/Cribbage/bigdiamond.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9db504ce64f62436dfd1328030e1ef556d903e09
Binary files /dev/null and b/Cribbage/out/production/Cribbage/bigdiamond.gif differ
diff --git a/Cribbage/out/production/Cribbage/bigdiamond1.gif b/Cribbage/out/production/Cribbage/bigdiamond1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e8161d6a9004da4d773bc494c1562bbc2f06b248
Binary files /dev/null and b/Cribbage/out/production/Cribbage/bigdiamond1.gif differ
diff --git a/Cribbage/out/production/Cribbage/bigheart.gif b/Cribbage/out/production/Cribbage/bigheart.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7f23a079d6abfa1c6917757e254a8464e3011a08
Binary files /dev/null and b/Cribbage/out/production/Cribbage/bigheart.gif differ
diff --git a/Cribbage/out/production/Cribbage/bigheart1.gif b/Cribbage/out/production/Cribbage/bigheart1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0b807f397489841697f7b7d332928949bc323661
Binary files /dev/null and b/Cribbage/out/production/Cribbage/bigheart1.gif differ
diff --git a/Cribbage/out/production/Cribbage/bigspade.gif b/Cribbage/out/production/Cribbage/bigspade.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0ac08a6d6ff783cc43f26681dfd043de028ec663
Binary files /dev/null and b/Cribbage/out/production/Cribbage/bigspade.gif differ
diff --git a/Cribbage/out/production/Cribbage/bigspade1.gif b/Cribbage/out/production/Cribbage/bigspade1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fdef80f5ffb8f7408d7fb0e1fba774f35845342a
Binary files /dev/null and b/Cribbage/out/production/Cribbage/bigspade1.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs0.gif b/Cribbage/out/production/Cribbage/clubs0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b09b1b1a545259fb24bea4b914d96eb086dea1e6
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs0.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs1.gif b/Cribbage/out/production/Cribbage/clubs1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b759a2a5d4a6de33dceb6b9631dfcfe56b86e49c
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs1.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs10.gif b/Cribbage/out/production/Cribbage/clubs10.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ea992be2c7792818d7b2831e0e6a7285cfee879c
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs10.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs11.gif b/Cribbage/out/production/Cribbage/clubs11.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2100b55f9416e31db9ce27922653c51d96cb83a4
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs11.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs12.gif b/Cribbage/out/production/Cribbage/clubs12.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3e6906c7f7a6c7c3ae9bf848b46685784bbf14bd
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs12.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs2.gif b/Cribbage/out/production/Cribbage/clubs2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e900930019ca83fba5a85134a098cd643b9ff14b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs2.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs3.gif b/Cribbage/out/production/Cribbage/clubs3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1c5d0e9f2a65db0c07ab0d25f9c9caa8ca16d6a1
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs3.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs4.gif b/Cribbage/out/production/Cribbage/clubs4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7e8d094c1c3bf19415af28c4247ea7f3dfd4db3d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs4.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs5.gif b/Cribbage/out/production/Cribbage/clubs5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d232c33b15d8f6bbe2c66d8bfffb904757ecf4c4
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs5.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs6.gif b/Cribbage/out/production/Cribbage/clubs6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9da5b7d199bf6636256368ff17ecdfae0f329786
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs6.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs7.gif b/Cribbage/out/production/Cribbage/clubs7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a41ed29cf051efeea2dc7611b83a4711174f2675
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs7.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs8.gif b/Cribbage/out/production/Cribbage/clubs8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..23169e94c52a995e63c3394ec7550f98297e885b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs8.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs9.gif b/Cribbage/out/production/Cribbage/clubs9.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d8625d25951aaff96dec177bb1b716d3d17fe605
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs9.gif differ
diff --git a/Cribbage/out/production/Cribbage/clubs_item_0.png b/Cribbage/out/production/Cribbage/clubs_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..544006b3d7d107e13c2fe8c83d904a5c50c9c8bc
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs_item_0.png differ
diff --git a/Cribbage/out/production/Cribbage/clubs_item_1.png b/Cribbage/out/production/Cribbage/clubs_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..9457f91f228433e1478e7226ac90d9a54671c2a0
Binary files /dev/null and b/Cribbage/out/production/Cribbage/clubs_item_1.png differ
diff --git a/Cribbage/out/production/Cribbage/cover.gif b/Cribbage/out/production/Cribbage/cover.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cfd99c6cff301d2e7d0bc475fabed7d193b62805
Binary files /dev/null and b/Cribbage/out/production/Cribbage/cover.gif differ
diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage$1.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..b636d7c25768c7e14e9facd6fddfbb332c9f861f
Binary files /dev/null and b/Cribbage/out/production/Cribbage/cribbage/Cribbage$1.class differ
diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage$MyCardValues.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage$MyCardValues.class
new file mode 100644
index 0000000000000000000000000000000000000000..7f88f19f23e274ea9f17e6786740ec458e7e9fe9
Binary files /dev/null and b/Cribbage/out/production/Cribbage/cribbage/Cribbage$MyCardValues.class differ
diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage$Rank.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Rank.class
new file mode 100644
index 0000000000000000000000000000000000000000..16191b6bcfbdc9d188c27062d7e8b7ff8834c356
Binary files /dev/null and b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Rank.class differ
diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage$Segment.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Segment.class
new file mode 100644
index 0000000000000000000000000000000000000000..c29a01eb38b299c3fdb4558b0fcae0c623362058
Binary files /dev/null and b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Segment.class differ
diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage$Suit.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Suit.class
new file mode 100644
index 0000000000000000000000000000000000000000..0feeb133f36e5eb1aad4401e9c03d61c2ce33e29
Binary files /dev/null and b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Suit.class differ
diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage.class
new file mode 100644
index 0000000000000000000000000000000000000000..4e8c9da01b16425c21278d4f249537f8e8c10bda
Binary files /dev/null and b/Cribbage/out/production/Cribbage/cribbage/Cribbage.class differ
diff --git a/Cribbage/out/production/Cribbage/cribbage/HumanPlayer$1.class b/Cribbage/out/production/Cribbage/cribbage/HumanPlayer$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..850da3e45b0f57766084548f06909ce10e5ff306
Binary files /dev/null and b/Cribbage/out/production/Cribbage/cribbage/HumanPlayer$1.class differ
diff --git a/Cribbage/out/production/Cribbage/cribbage/HumanPlayer.class b/Cribbage/out/production/Cribbage/cribbage/HumanPlayer.class
new file mode 100644
index 0000000000000000000000000000000000000000..e1c90c3e0a93ef7ef8fe035267d24c80fea43542
Binary files /dev/null and b/Cribbage/out/production/Cribbage/cribbage/HumanPlayer.class differ
diff --git a/Cribbage/out/production/Cribbage/cribbage/IPlayer.class b/Cribbage/out/production/Cribbage/cribbage/IPlayer.class
new file mode 100644
index 0000000000000000000000000000000000000000..0333e8d97086a0e9f30cbe899a0e3119540e16ea
Binary files /dev/null and b/Cribbage/out/production/Cribbage/cribbage/IPlayer.class differ
diff --git a/Cribbage/out/production/Cribbage/cribbage/RandomPlayer.class b/Cribbage/out/production/Cribbage/cribbage/RandomPlayer.class
new file mode 100644
index 0000000000000000000000000000000000000000..eaa3ed0511150f297cccdea3787937151b946eb7
Binary files /dev/null and b/Cribbage/out/production/Cribbage/cribbage/RandomPlayer.class differ
diff --git a/Cribbage/out/production/Cribbage/diamonds0.gif b/Cribbage/out/production/Cribbage/diamonds0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9221184d63f3103b63fa4a2b753de1473ba94bbd
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds0.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds1.gif b/Cribbage/out/production/Cribbage/diamonds1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..53b3e862d8a86c6e95b0a08cc507aadea5170f5c
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds1.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds10.gif b/Cribbage/out/production/Cribbage/diamonds10.gif
new file mode 100644
index 0000000000000000000000000000000000000000..21a4685ddedfcf4d50ad880ab0d378f05f28d48e
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds10.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds11.gif b/Cribbage/out/production/Cribbage/diamonds11.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d49072fab376463ca24612c614f908ae354491bf
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds11.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds12.gif b/Cribbage/out/production/Cribbage/diamonds12.gif
new file mode 100644
index 0000000000000000000000000000000000000000..03005de0213edaf0ae4b4f1df74039d637ef434d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds12.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds2.gif b/Cribbage/out/production/Cribbage/diamonds2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ac60fcd93756cb31d0459d9faa05aa6e6aef26f3
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds2.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds3.gif b/Cribbage/out/production/Cribbage/diamonds3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c085929c54e2800068dffcd2bcc6e23e53468379
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds3.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds4.gif b/Cribbage/out/production/Cribbage/diamonds4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3f8a7ca6ed6e6c3d80c7554b8ac270605e30d84e
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds4.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds5.gif b/Cribbage/out/production/Cribbage/diamonds5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9576337617c8dbd94cfb18937155369b8fb6bfab
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds5.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds6.gif b/Cribbage/out/production/Cribbage/diamonds6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b15bd06ed28640b2210dfddc63d8462e1c1edecf
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds6.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds7.gif b/Cribbage/out/production/Cribbage/diamonds7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6016d2d0958c6e212945e829f2b7ca34cb0a3983
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds7.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds8.gif b/Cribbage/out/production/Cribbage/diamonds8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d113c5fb88a48e023df5db4409fa03af6b062d15
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds8.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds9.gif b/Cribbage/out/production/Cribbage/diamonds9.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cbc76bf48478624c9960fd11c7cd86569a9fb8dd
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds9.gif differ
diff --git a/Cribbage/out/production/Cribbage/diamonds_item_0.png b/Cribbage/out/production/Cribbage/diamonds_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..9726895725b497e5c4f30d73a081a3fbeb29a31a
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds_item_0.png differ
diff --git a/Cribbage/out/production/Cribbage/diamonds_item_1.png b/Cribbage/out/production/Cribbage/diamonds_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8260e5a0af3c467b60587cdc1c95c0e4aeeb71e
Binary files /dev/null and b/Cribbage/out/production/Cribbage/diamonds_item_1.png differ
diff --git a/Cribbage/out/production/Cribbage/done30_0.gif b/Cribbage/out/production/Cribbage/done30_0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c187a5919d751e485e61e2f4f6ce859bbf698bd7
Binary files /dev/null and b/Cribbage/out/production/Cribbage/done30_0.gif differ
diff --git a/Cribbage/out/production/Cribbage/done30_1.gif b/Cribbage/out/production/Cribbage/done30_1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9df9957fcb9656c91a332714bb0f69a145c4012b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/done30_1.gif differ
diff --git a/Cribbage/out/production/Cribbage/done30_2.gif b/Cribbage/out/production/Cribbage/done30_2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..701079d05ff3cbe7518d25f9b5b872a8c1b7a00d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/done30_2.gif differ
diff --git a/Cribbage/out/production/Cribbage/gameover.gif b/Cribbage/out/production/Cribbage/gameover.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9bf6f867bfd94a695ad3bea957facf2e6913777b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/gameover.gif differ
diff --git a/Cribbage/out/production/Cribbage/heart.gif b/Cribbage/out/production/Cribbage/heart.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7bbef26dc29180d802ffee238352951e0c1bbb40
Binary files /dev/null and b/Cribbage/out/production/Cribbage/heart.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts0.gif b/Cribbage/out/production/Cribbage/hearts0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5a2eba4f37c32d351bd2ce1b9762e0480ff4dba7
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts0.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts1.gif b/Cribbage/out/production/Cribbage/hearts1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..207a17a2cafe45009624f2f7fed504c0fff6c64f
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts1.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts10.gif b/Cribbage/out/production/Cribbage/hearts10.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2caa057493d4773df9f68b439bfaa0cc143126b2
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts10.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts11.gif b/Cribbage/out/production/Cribbage/hearts11.gif
new file mode 100644
index 0000000000000000000000000000000000000000..86d902739b6863b77d0df04b10c533693272de16
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts11.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts12.gif b/Cribbage/out/production/Cribbage/hearts12.gif
new file mode 100644
index 0000000000000000000000000000000000000000..215ea796a059d29116096599355f26a52daf5f41
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts12.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts2.gif b/Cribbage/out/production/Cribbage/hearts2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4de929dfecfc23ca8dbf7fd5a4f96c5576539884
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts2.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts3.gif b/Cribbage/out/production/Cribbage/hearts3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3adf4cf8767e9601e51e93346e3357422a45a114
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts3.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts4.gif b/Cribbage/out/production/Cribbage/hearts4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9e2efc30ff6bdb1387e3bfc78dd5f97157f6ed0e
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts4.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts5.gif b/Cribbage/out/production/Cribbage/hearts5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..229494ff41ecac31c719dfeff94974846b96d160
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts5.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts6.gif b/Cribbage/out/production/Cribbage/hearts6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5d3dd246487cbf5749b38ede5e2cc229ac3eb68e
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts6.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts7.gif b/Cribbage/out/production/Cribbage/hearts7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f40098add803c6c42f8267467d6c4dc1d1fd1a2c
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts7.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts8.gif b/Cribbage/out/production/Cribbage/hearts8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f94d0738c06e9f39e0f4f893abf426410c5dcffb
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts8.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts9.gif b/Cribbage/out/production/Cribbage/hearts9.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5ae5e961e0107a706dd5464f6fb7940acc5f9c4b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts9.gif differ
diff --git a/Cribbage/out/production/Cribbage/hearts_item_0.png b/Cribbage/out/production/Cribbage/hearts_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..312c4386df104908d8a447352f04b27ad7f47da4
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts_item_0.png differ
diff --git a/Cribbage/out/production/Cribbage/hearts_item_1.png b/Cribbage/out/production/Cribbage/hearts_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c2ffe684164497d5770917a1fe8ee58b0cd77cf
Binary files /dev/null and b/Cribbage/out/production/Cribbage/hearts_item_1.png differ
diff --git a/Cribbage/out/production/Cribbage/joker1.gif b/Cribbage/out/production/Cribbage/joker1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..492027bd100f3e2c491f47132229678770b76bd0
Binary files /dev/null and b/Cribbage/out/production/Cribbage/joker1.gif differ
diff --git a/Cribbage/out/production/Cribbage/joker2.gif b/Cribbage/out/production/Cribbage/joker2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..51ab6d473a7a972398496395ce86d8f5d5b34738
Binary files /dev/null and b/Cribbage/out/production/Cribbage/joker2.gif differ
diff --git a/Cribbage/out/production/Cribbage/observer/Activity.class b/Cribbage/out/production/Cribbage/observer/Activity.class
new file mode 100644
index 0000000000000000000000000000000000000000..92854f2cf543f1c0ab12a2961adeeaf0c5663830
Binary files /dev/null and b/Cribbage/out/production/Cribbage/observer/Activity.class differ
diff --git a/Cribbage/out/production/Cribbage/observer/CribbageHandCards.class b/Cribbage/out/production/Cribbage/observer/CribbageHandCards.class
new file mode 100644
index 0000000000000000000000000000000000000000..bc8c2aa9c134967199547313e9c91007dace4f50
Binary files /dev/null and b/Cribbage/out/production/Cribbage/observer/CribbageHandCards.class differ
diff --git a/Cribbage/out/production/Cribbage/observer/Fifteens.class b/Cribbage/out/production/Cribbage/observer/Fifteens.class
new file mode 100644
index 0000000000000000000000000000000000000000..51db39eb40ecfe53207c37eb235cbdf3ae292b0c
Binary files /dev/null and b/Cribbage/out/production/Cribbage/observer/Fifteens.class differ
diff --git a/Cribbage/out/production/Cribbage/observer/Flush.class b/Cribbage/out/production/Cribbage/observer/Flush.class
new file mode 100644
index 0000000000000000000000000000000000000000..6ea2ed63dbdd3ef890751c4a674f2f931d3e053f
Binary files /dev/null and b/Cribbage/out/production/Cribbage/observer/Flush.class differ
diff --git a/Cribbage/out/production/Cribbage/observer/HandCards.class b/Cribbage/out/production/Cribbage/observer/HandCards.class
new file mode 100644
index 0000000000000000000000000000000000000000..2e8a71982d23dbe35b3c8a5535c1f3534486a1dd
Binary files /dev/null and b/Cribbage/out/production/Cribbage/observer/HandCards.class differ
diff --git a/Cribbage/out/production/Cribbage/observer/Jack.class b/Cribbage/out/production/Cribbage/observer/Jack.class
new file mode 100644
index 0000000000000000000000000000000000000000..aee9e0d83fc8d0035fe6d1a1ec88a5c5950f0b70
Binary files /dev/null and b/Cribbage/out/production/Cribbage/observer/Jack.class differ
diff --git a/Cribbage/out/production/Cribbage/observer/Pairs.class b/Cribbage/out/production/Cribbage/observer/Pairs.class
new file mode 100644
index 0000000000000000000000000000000000000000..f2cc2ee7a40434ffbc765e14d63906ad15aa125b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/observer/Pairs.class differ
diff --git a/Cribbage/out/production/Cribbage/observer/Rule.class b/Cribbage/out/production/Cribbage/observer/Rule.class
new file mode 100644
index 0000000000000000000000000000000000000000..9060168db4c48be16f3c57ce88119cc99ea1f392
Binary files /dev/null and b/Cribbage/out/production/Cribbage/observer/Rule.class differ
diff --git a/Cribbage/out/production/Cribbage/observer/Runs.class b/Cribbage/out/production/Cribbage/observer/Runs.class
new file mode 100644
index 0000000000000000000000000000000000000000..4c85fd984ecb2564a6ab05cdf35f0515c9f8c668
Binary files /dev/null and b/Cribbage/out/production/Cribbage/observer/Runs.class differ
diff --git a/Cribbage/out/production/Cribbage/original/bigclub.gif b/Cribbage/out/production/Cribbage/original/bigclub.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cf07ff0a3b53c6cf1e69b1706b1fd8db76918d3c
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/bigclub.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/bigclub1.gif b/Cribbage/out/production/Cribbage/original/bigclub1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..05336b86a536e9d0acf7f9670ea1c4ffae5667a8
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/bigclub1.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/bigdiamond.gif b/Cribbage/out/production/Cribbage/original/bigdiamond.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9db504ce64f62436dfd1328030e1ef556d903e09
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/bigdiamond.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/bigdiamond1.gif b/Cribbage/out/production/Cribbage/original/bigdiamond1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e8161d6a9004da4d773bc494c1562bbc2f06b248
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/bigdiamond1.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/bigheart.gif b/Cribbage/out/production/Cribbage/original/bigheart.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7f23a079d6abfa1c6917757e254a8464e3011a08
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/bigheart.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/bigheart1.gif b/Cribbage/out/production/Cribbage/original/bigheart1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0b807f397489841697f7b7d332928949bc323661
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/bigheart1.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/bigspade.gif b/Cribbage/out/production/Cribbage/original/bigspade.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0ac08a6d6ff783cc43f26681dfd043de028ec663
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/bigspade.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/bigspade1.gif b/Cribbage/out/production/Cribbage/original/bigspade1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fdef80f5ffb8f7408d7fb0e1fba774f35845342a
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/bigspade1.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/clubs0.gif b/Cribbage/out/production/Cribbage/original/clubs0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b09b1b1a545259fb24bea4b914d96eb086dea1e6
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/clubs0.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/clubs1.gif b/Cribbage/out/production/Cribbage/original/clubs1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b759a2a5d4a6de33dceb6b9631dfcfe56b86e49c
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/clubs1.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/clubs2.gif b/Cribbage/out/production/Cribbage/original/clubs2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e900930019ca83fba5a85134a098cd643b9ff14b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/clubs2.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/clubs3.gif b/Cribbage/out/production/Cribbage/original/clubs3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1c5d0e9f2a65db0c07ab0d25f9c9caa8ca16d6a1
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/clubs3.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/clubs4.gif b/Cribbage/out/production/Cribbage/original/clubs4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7e8d094c1c3bf19415af28c4247ea7f3dfd4db3d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/clubs4.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/clubs5.gif b/Cribbage/out/production/Cribbage/original/clubs5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d232c33b15d8f6bbe2c66d8bfffb904757ecf4c4
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/clubs5.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/clubs6.gif b/Cribbage/out/production/Cribbage/original/clubs6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9da5b7d199bf6636256368ff17ecdfae0f329786
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/clubs6.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/clubs7.gif b/Cribbage/out/production/Cribbage/original/clubs7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a41ed29cf051efeea2dc7611b83a4711174f2675
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/clubs7.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/clubs8.gif b/Cribbage/out/production/Cribbage/original/clubs8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..23169e94c52a995e63c3394ec7550f98297e885b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/clubs8.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/clubs_item_0.png b/Cribbage/out/production/Cribbage/original/clubs_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..544006b3d7d107e13c2fe8c83d904a5c50c9c8bc
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/clubs_item_0.png differ
diff --git a/Cribbage/out/production/Cribbage/original/clubs_item_1.png b/Cribbage/out/production/Cribbage/original/clubs_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..9457f91f228433e1478e7226ac90d9a54671c2a0
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/clubs_item_1.png differ
diff --git a/Cribbage/out/production/Cribbage/original/cover.gif b/Cribbage/out/production/Cribbage/original/cover.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a048d8afdfb442cddfc5e7d07f9174881f41c73f
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/cover.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/diamonds0.gif b/Cribbage/out/production/Cribbage/original/diamonds0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9221184d63f3103b63fa4a2b753de1473ba94bbd
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/diamonds0.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/diamonds1.gif b/Cribbage/out/production/Cribbage/original/diamonds1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..53b3e862d8a86c6e95b0a08cc507aadea5170f5c
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/diamonds1.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/diamonds2.gif b/Cribbage/out/production/Cribbage/original/diamonds2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ac60fcd93756cb31d0459d9faa05aa6e6aef26f3
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/diamonds2.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/diamonds3.gif b/Cribbage/out/production/Cribbage/original/diamonds3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c085929c54e2800068dffcd2bcc6e23e53468379
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/diamonds3.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/diamonds4.gif b/Cribbage/out/production/Cribbage/original/diamonds4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3f8a7ca6ed6e6c3d80c7554b8ac270605e30d84e
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/diamonds4.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/diamonds5.gif b/Cribbage/out/production/Cribbage/original/diamonds5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9576337617c8dbd94cfb18937155369b8fb6bfab
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/diamonds5.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/diamonds6.gif b/Cribbage/out/production/Cribbage/original/diamonds6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b15bd06ed28640b2210dfddc63d8462e1c1edecf
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/diamonds6.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/diamonds7.gif b/Cribbage/out/production/Cribbage/original/diamonds7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6016d2d0958c6e212945e829f2b7ca34cb0a3983
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/diamonds7.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/diamonds8.gif b/Cribbage/out/production/Cribbage/original/diamonds8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d113c5fb88a48e023df5db4409fa03af6b062d15
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/diamonds8.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/diamonds_item_0.png b/Cribbage/out/production/Cribbage/original/diamonds_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..9726895725b497e5c4f30d73a081a3fbeb29a31a
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/diamonds_item_0.png differ
diff --git a/Cribbage/out/production/Cribbage/original/diamonds_item_1.png b/Cribbage/out/production/Cribbage/original/diamonds_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8260e5a0af3c467b60587cdc1c95c0e4aeeb71e
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/diamonds_item_1.png differ
diff --git a/Cribbage/out/production/Cribbage/original/done30_0.gif b/Cribbage/out/production/Cribbage/original/done30_0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c187a5919d751e485e61e2f4f6ce859bbf698bd7
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/done30_0.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/done30_1.gif b/Cribbage/out/production/Cribbage/original/done30_1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9df9957fcb9656c91a332714bb0f69a145c4012b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/done30_1.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/done30_2.gif b/Cribbage/out/production/Cribbage/original/done30_2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..701079d05ff3cbe7518d25f9b5b872a8c1b7a00d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/done30_2.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/gameover.gif b/Cribbage/out/production/Cribbage/original/gameover.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9bf6f867bfd94a695ad3bea957facf2e6913777b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/gameover.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/heart.gif b/Cribbage/out/production/Cribbage/original/heart.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7bbef26dc29180d802ffee238352951e0c1bbb40
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/heart.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/hearts0.gif b/Cribbage/out/production/Cribbage/original/hearts0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5a2eba4f37c32d351bd2ce1b9762e0480ff4dba7
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/hearts0.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/hearts1.gif b/Cribbage/out/production/Cribbage/original/hearts1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..207a17a2cafe45009624f2f7fed504c0fff6c64f
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/hearts1.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/hearts2.gif b/Cribbage/out/production/Cribbage/original/hearts2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4de929dfecfc23ca8dbf7fd5a4f96c5576539884
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/hearts2.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/hearts3.gif b/Cribbage/out/production/Cribbage/original/hearts3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3adf4cf8767e9601e51e93346e3357422a45a114
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/hearts3.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/hearts4.gif b/Cribbage/out/production/Cribbage/original/hearts4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9e2efc30ff6bdb1387e3bfc78dd5f97157f6ed0e
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/hearts4.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/hearts5.gif b/Cribbage/out/production/Cribbage/original/hearts5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..229494ff41ecac31c719dfeff94974846b96d160
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/hearts5.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/hearts6.gif b/Cribbage/out/production/Cribbage/original/hearts6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5d3dd246487cbf5749b38ede5e2cc229ac3eb68e
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/hearts6.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/hearts7.gif b/Cribbage/out/production/Cribbage/original/hearts7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f40098add803c6c42f8267467d6c4dc1d1fd1a2c
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/hearts7.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/hearts8.gif b/Cribbage/out/production/Cribbage/original/hearts8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f94d0738c06e9f39e0f4f893abf426410c5dcffb
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/hearts8.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/hearts_item_0.png b/Cribbage/out/production/Cribbage/original/hearts_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..312c4386df104908d8a447352f04b27ad7f47da4
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/hearts_item_0.png differ
diff --git a/Cribbage/out/production/Cribbage/original/hearts_item_1.png b/Cribbage/out/production/Cribbage/original/hearts_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c2ffe684164497d5770917a1fe8ee58b0cd77cf
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/hearts_item_1.png differ
diff --git a/Cribbage/out/production/Cribbage/original/reshuffle.gif b/Cribbage/out/production/Cribbage/original/reshuffle.gif
new file mode 100644
index 0000000000000000000000000000000000000000..284a4f15d4d54f7181654bf85f014d5bc36abc89
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/reshuffle.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/spades0.gif b/Cribbage/out/production/Cribbage/original/spades0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..914f782f9e45f1f9002d1a042313bc65a48044b2
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/spades0.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/spades1.gif b/Cribbage/out/production/Cribbage/original/spades1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5eae07d43f4eb262895f1dce7ffb0e333f91f3f4
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/spades1.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/spades2.gif b/Cribbage/out/production/Cribbage/original/spades2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..76eb11c896dd532361888e8f833f95b59ea6af9f
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/spades2.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/spades3.gif b/Cribbage/out/production/Cribbage/original/spades3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..361ab8b9b439ed57f34a531b236a1c7c968222cc
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/spades3.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/spades4.gif b/Cribbage/out/production/Cribbage/original/spades4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..24f42af55aeb2a7c81e8919be3cde03050e2585d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/spades4.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/spades5.gif b/Cribbage/out/production/Cribbage/original/spades5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b126a244c1e537716acd11ac054d8ac8d241868d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/spades5.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/spades6.gif b/Cribbage/out/production/Cribbage/original/spades6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c43349183e258e023ef81e84ddf0516646832cf9
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/spades6.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/spades7.gif b/Cribbage/out/production/Cribbage/original/spades7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1201366d9b7fa30abccc306f4ad39838e06ce075
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/spades7.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/spades8.gif b/Cribbage/out/production/Cribbage/original/spades8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cc2b108a6884f333d9e3cdb3fbb820c77bce086d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/spades8.gif differ
diff --git a/Cribbage/out/production/Cribbage/original/spades_item_0.png b/Cribbage/out/production/Cribbage/original/spades_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d186152763600cfd29bd42fb7ff963e754b294d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/spades_item_0.png differ
diff --git a/Cribbage/out/production/Cribbage/original/spades_item_1.png b/Cribbage/out/production/Cribbage/original/spades_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..d57fc7081cf8d68e9f62b6dcc1cdda08a5dcce0b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/spades_item_1.png differ
diff --git a/Cribbage/out/production/Cribbage/original/text_item.png b/Cribbage/out/production/Cribbage/original/text_item.png
new file mode 100644
index 0000000000000000000000000000000000000000..1dad1788f32bb81b51615da0809372a50fc5a6ee
Binary files /dev/null and b/Cribbage/out/production/Cribbage/original/text_item.png differ
diff --git a/Cribbage/out/production/Cribbage/reshuffle.gif b/Cribbage/out/production/Cribbage/reshuffle.gif
new file mode 100644
index 0000000000000000000000000000000000000000..284a4f15d4d54f7181654bf85f014d5bc36abc89
Binary files /dev/null and b/Cribbage/out/production/Cribbage/reshuffle.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades0.gif b/Cribbage/out/production/Cribbage/spades0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..914f782f9e45f1f9002d1a042313bc65a48044b2
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades0.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades1.gif b/Cribbage/out/production/Cribbage/spades1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5eae07d43f4eb262895f1dce7ffb0e333f91f3f4
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades1.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades10.gif b/Cribbage/out/production/Cribbage/spades10.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f063796c35994570b33c5cc36d6594db27dd5456
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades10.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades11.gif b/Cribbage/out/production/Cribbage/spades11.gif
new file mode 100644
index 0000000000000000000000000000000000000000..869576f30243cab007a12b3d44eda5b4490f477f
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades11.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades12.gif b/Cribbage/out/production/Cribbage/spades12.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2c2082aa83f3caff62b6a8757834ef87c8461377
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades12.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades2.gif b/Cribbage/out/production/Cribbage/spades2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..76eb11c896dd532361888e8f833f95b59ea6af9f
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades2.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades3.gif b/Cribbage/out/production/Cribbage/spades3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..361ab8b9b439ed57f34a531b236a1c7c968222cc
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades3.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades4.gif b/Cribbage/out/production/Cribbage/spades4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..24f42af55aeb2a7c81e8919be3cde03050e2585d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades4.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades5.gif b/Cribbage/out/production/Cribbage/spades5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b126a244c1e537716acd11ac054d8ac8d241868d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades5.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades6.gif b/Cribbage/out/production/Cribbage/spades6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c43349183e258e023ef81e84ddf0516646832cf9
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades6.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades7.gif b/Cribbage/out/production/Cribbage/spades7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1201366d9b7fa30abccc306f4ad39838e06ce075
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades7.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades8.gif b/Cribbage/out/production/Cribbage/spades8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cc2b108a6884f333d9e3cdb3fbb820c77bce086d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades8.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades9.gif b/Cribbage/out/production/Cribbage/spades9.gif
new file mode 100644
index 0000000000000000000000000000000000000000..da72717ebc3bd4cb0ff75340dcfd658da2e7f3a2
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades9.gif differ
diff --git a/Cribbage/out/production/Cribbage/spades_item_0.png b/Cribbage/out/production/Cribbage/spades_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d186152763600cfd29bd42fb7ff963e754b294d
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades_item_0.png differ
diff --git a/Cribbage/out/production/Cribbage/spades_item_1.png b/Cribbage/out/production/Cribbage/spades_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..d57fc7081cf8d68e9f62b6dcc1cdda08a5dcce0b
Binary files /dev/null and b/Cribbage/out/production/Cribbage/spades_item_1.png differ
diff --git a/Cribbage/out/production/Cribbage/text_item.png b/Cribbage/out/production/Cribbage/text_item.png
new file mode 100644
index 0000000000000000000000000000000000000000..1dad1788f32bb81b51615da0809372a50fc5a6ee
Binary files /dev/null and b/Cribbage/out/production/Cribbage/text_item.png differ
diff --git a/Cribbage/sample.log b/Cribbage/sample.log
new file mode 100644
index 0000000000000000000000000000000000000000..b72e4de0386cc6f059ed52bc256d5c080185d879
--- /dev/null
+++ b/Cribbage/sample.log
@@ -0,0 +1,25 @@
+seed,55510
+cribbage.RandomPlayer,P0
+cribbage.RandomPlayer,P1
+deal,P0,[2C,2H,7C,QC,QD,KH]
+deal,P1,[AD,AH,TD,JS,QH,KC]
+discard,P0,[2C,QC]
+discard,P1,[JS,KC]
+starter,8H
+play,P0,2,2H
+play,P1,3,AD
+play,P0,13,QD
+play,P1,23,QH
+score,P1,2,2,pair
+play,P0,30,7C
+play,P1,31,AH
+score,P1,4,2,thirtyone
+play,P0,10,KH
+play,P1,20,TD
+score,P1,5,1,go
+show,P0,8H+[2H,7C,QD,KH]
+score,P0,2,2,fifteen,[7C,8H]
+show,P1,8H+[AD,AH,TD,QH]
+score,P1,7,2,pair2,[AD,AH]
+show,P1,8H+[2C,JS,QC,KC]
+score,P1,10,3,run3,[JS,QC,KC]
diff --git a/Cribbage/sprites/bigclub.gif b/Cribbage/sprites/bigclub.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cf07ff0a3b53c6cf1e69b1706b1fd8db76918d3c
Binary files /dev/null and b/Cribbage/sprites/bigclub.gif differ
diff --git a/Cribbage/sprites/bigclub1.gif b/Cribbage/sprites/bigclub1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..05336b86a536e9d0acf7f9670ea1c4ffae5667a8
Binary files /dev/null and b/Cribbage/sprites/bigclub1.gif differ
diff --git a/Cribbage/sprites/bigdiamond.gif b/Cribbage/sprites/bigdiamond.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9db504ce64f62436dfd1328030e1ef556d903e09
Binary files /dev/null and b/Cribbage/sprites/bigdiamond.gif differ
diff --git a/Cribbage/sprites/bigdiamond1.gif b/Cribbage/sprites/bigdiamond1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e8161d6a9004da4d773bc494c1562bbc2f06b248
Binary files /dev/null and b/Cribbage/sprites/bigdiamond1.gif differ
diff --git a/Cribbage/sprites/bigheart.gif b/Cribbage/sprites/bigheart.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7f23a079d6abfa1c6917757e254a8464e3011a08
Binary files /dev/null and b/Cribbage/sprites/bigheart.gif differ
diff --git a/Cribbage/sprites/bigheart1.gif b/Cribbage/sprites/bigheart1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0b807f397489841697f7b7d332928949bc323661
Binary files /dev/null and b/Cribbage/sprites/bigheart1.gif differ
diff --git a/Cribbage/sprites/bigspade.gif b/Cribbage/sprites/bigspade.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0ac08a6d6ff783cc43f26681dfd043de028ec663
Binary files /dev/null and b/Cribbage/sprites/bigspade.gif differ
diff --git a/Cribbage/sprites/bigspade1.gif b/Cribbage/sprites/bigspade1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fdef80f5ffb8f7408d7fb0e1fba774f35845342a
Binary files /dev/null and b/Cribbage/sprites/bigspade1.gif differ
diff --git a/Cribbage/sprites/clubs0.gif b/Cribbage/sprites/clubs0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b09b1b1a545259fb24bea4b914d96eb086dea1e6
Binary files /dev/null and b/Cribbage/sprites/clubs0.gif differ
diff --git a/Cribbage/sprites/clubs1.gif b/Cribbage/sprites/clubs1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b759a2a5d4a6de33dceb6b9631dfcfe56b86e49c
Binary files /dev/null and b/Cribbage/sprites/clubs1.gif differ
diff --git a/Cribbage/sprites/clubs10.gif b/Cribbage/sprites/clubs10.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ea992be2c7792818d7b2831e0e6a7285cfee879c
Binary files /dev/null and b/Cribbage/sprites/clubs10.gif differ
diff --git a/Cribbage/sprites/clubs11.gif b/Cribbage/sprites/clubs11.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2100b55f9416e31db9ce27922653c51d96cb83a4
Binary files /dev/null and b/Cribbage/sprites/clubs11.gif differ
diff --git a/Cribbage/sprites/clubs12.gif b/Cribbage/sprites/clubs12.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3e6906c7f7a6c7c3ae9bf848b46685784bbf14bd
Binary files /dev/null and b/Cribbage/sprites/clubs12.gif differ
diff --git a/Cribbage/sprites/clubs2.gif b/Cribbage/sprites/clubs2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e900930019ca83fba5a85134a098cd643b9ff14b
Binary files /dev/null and b/Cribbage/sprites/clubs2.gif differ
diff --git a/Cribbage/sprites/clubs3.gif b/Cribbage/sprites/clubs3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1c5d0e9f2a65db0c07ab0d25f9c9caa8ca16d6a1
Binary files /dev/null and b/Cribbage/sprites/clubs3.gif differ
diff --git a/Cribbage/sprites/clubs4.gif b/Cribbage/sprites/clubs4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7e8d094c1c3bf19415af28c4247ea7f3dfd4db3d
Binary files /dev/null and b/Cribbage/sprites/clubs4.gif differ
diff --git a/Cribbage/sprites/clubs5.gif b/Cribbage/sprites/clubs5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d232c33b15d8f6bbe2c66d8bfffb904757ecf4c4
Binary files /dev/null and b/Cribbage/sprites/clubs5.gif differ
diff --git a/Cribbage/sprites/clubs6.gif b/Cribbage/sprites/clubs6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9da5b7d199bf6636256368ff17ecdfae0f329786
Binary files /dev/null and b/Cribbage/sprites/clubs6.gif differ
diff --git a/Cribbage/sprites/clubs7.gif b/Cribbage/sprites/clubs7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a41ed29cf051efeea2dc7611b83a4711174f2675
Binary files /dev/null and b/Cribbage/sprites/clubs7.gif differ
diff --git a/Cribbage/sprites/clubs8.gif b/Cribbage/sprites/clubs8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..23169e94c52a995e63c3394ec7550f98297e885b
Binary files /dev/null and b/Cribbage/sprites/clubs8.gif differ
diff --git a/Cribbage/sprites/clubs9.gif b/Cribbage/sprites/clubs9.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d8625d25951aaff96dec177bb1b716d3d17fe605
Binary files /dev/null and b/Cribbage/sprites/clubs9.gif differ
diff --git a/Cribbage/sprites/clubs_item_0.png b/Cribbage/sprites/clubs_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..544006b3d7d107e13c2fe8c83d904a5c50c9c8bc
Binary files /dev/null and b/Cribbage/sprites/clubs_item_0.png differ
diff --git a/Cribbage/sprites/clubs_item_1.png b/Cribbage/sprites/clubs_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..9457f91f228433e1478e7226ac90d9a54671c2a0
Binary files /dev/null and b/Cribbage/sprites/clubs_item_1.png differ
diff --git a/Cribbage/sprites/cover.gif b/Cribbage/sprites/cover.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cfd99c6cff301d2e7d0bc475fabed7d193b62805
Binary files /dev/null and b/Cribbage/sprites/cover.gif differ
diff --git a/Cribbage/sprites/diamonds0.gif b/Cribbage/sprites/diamonds0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9221184d63f3103b63fa4a2b753de1473ba94bbd
Binary files /dev/null and b/Cribbage/sprites/diamonds0.gif differ
diff --git a/Cribbage/sprites/diamonds1.gif b/Cribbage/sprites/diamonds1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..53b3e862d8a86c6e95b0a08cc507aadea5170f5c
Binary files /dev/null and b/Cribbage/sprites/diamonds1.gif differ
diff --git a/Cribbage/sprites/diamonds10.gif b/Cribbage/sprites/diamonds10.gif
new file mode 100644
index 0000000000000000000000000000000000000000..21a4685ddedfcf4d50ad880ab0d378f05f28d48e
Binary files /dev/null and b/Cribbage/sprites/diamonds10.gif differ
diff --git a/Cribbage/sprites/diamonds11.gif b/Cribbage/sprites/diamonds11.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d49072fab376463ca24612c614f908ae354491bf
Binary files /dev/null and b/Cribbage/sprites/diamonds11.gif differ
diff --git a/Cribbage/sprites/diamonds12.gif b/Cribbage/sprites/diamonds12.gif
new file mode 100644
index 0000000000000000000000000000000000000000..03005de0213edaf0ae4b4f1df74039d637ef434d
Binary files /dev/null and b/Cribbage/sprites/diamonds12.gif differ
diff --git a/Cribbage/sprites/diamonds2.gif b/Cribbage/sprites/diamonds2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ac60fcd93756cb31d0459d9faa05aa6e6aef26f3
Binary files /dev/null and b/Cribbage/sprites/diamonds2.gif differ
diff --git a/Cribbage/sprites/diamonds3.gif b/Cribbage/sprites/diamonds3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c085929c54e2800068dffcd2bcc6e23e53468379
Binary files /dev/null and b/Cribbage/sprites/diamonds3.gif differ
diff --git a/Cribbage/sprites/diamonds4.gif b/Cribbage/sprites/diamonds4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3f8a7ca6ed6e6c3d80c7554b8ac270605e30d84e
Binary files /dev/null and b/Cribbage/sprites/diamonds4.gif differ
diff --git a/Cribbage/sprites/diamonds5.gif b/Cribbage/sprites/diamonds5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9576337617c8dbd94cfb18937155369b8fb6bfab
Binary files /dev/null and b/Cribbage/sprites/diamonds5.gif differ
diff --git a/Cribbage/sprites/diamonds6.gif b/Cribbage/sprites/diamonds6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b15bd06ed28640b2210dfddc63d8462e1c1edecf
Binary files /dev/null and b/Cribbage/sprites/diamonds6.gif differ
diff --git a/Cribbage/sprites/diamonds7.gif b/Cribbage/sprites/diamonds7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6016d2d0958c6e212945e829f2b7ca34cb0a3983
Binary files /dev/null and b/Cribbage/sprites/diamonds7.gif differ
diff --git a/Cribbage/sprites/diamonds8.gif b/Cribbage/sprites/diamonds8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d113c5fb88a48e023df5db4409fa03af6b062d15
Binary files /dev/null and b/Cribbage/sprites/diamonds8.gif differ
diff --git a/Cribbage/sprites/diamonds9.gif b/Cribbage/sprites/diamonds9.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cbc76bf48478624c9960fd11c7cd86569a9fb8dd
Binary files /dev/null and b/Cribbage/sprites/diamonds9.gif differ
diff --git a/Cribbage/sprites/diamonds_item_0.png b/Cribbage/sprites/diamonds_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..9726895725b497e5c4f30d73a081a3fbeb29a31a
Binary files /dev/null and b/Cribbage/sprites/diamonds_item_0.png differ
diff --git a/Cribbage/sprites/diamonds_item_1.png b/Cribbage/sprites/diamonds_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8260e5a0af3c467b60587cdc1c95c0e4aeeb71e
Binary files /dev/null and b/Cribbage/sprites/diamonds_item_1.png differ
diff --git a/Cribbage/sprites/done30_0.gif b/Cribbage/sprites/done30_0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c187a5919d751e485e61e2f4f6ce859bbf698bd7
Binary files /dev/null and b/Cribbage/sprites/done30_0.gif differ
diff --git a/Cribbage/sprites/done30_1.gif b/Cribbage/sprites/done30_1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9df9957fcb9656c91a332714bb0f69a145c4012b
Binary files /dev/null and b/Cribbage/sprites/done30_1.gif differ
diff --git a/Cribbage/sprites/done30_2.gif b/Cribbage/sprites/done30_2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..701079d05ff3cbe7518d25f9b5b872a8c1b7a00d
Binary files /dev/null and b/Cribbage/sprites/done30_2.gif differ
diff --git a/Cribbage/sprites/gameover.gif b/Cribbage/sprites/gameover.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9bf6f867bfd94a695ad3bea957facf2e6913777b
Binary files /dev/null and b/Cribbage/sprites/gameover.gif differ
diff --git a/Cribbage/sprites/heart.gif b/Cribbage/sprites/heart.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7bbef26dc29180d802ffee238352951e0c1bbb40
Binary files /dev/null and b/Cribbage/sprites/heart.gif differ
diff --git a/Cribbage/sprites/hearts0.gif b/Cribbage/sprites/hearts0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5a2eba4f37c32d351bd2ce1b9762e0480ff4dba7
Binary files /dev/null and b/Cribbage/sprites/hearts0.gif differ
diff --git a/Cribbage/sprites/hearts1.gif b/Cribbage/sprites/hearts1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..207a17a2cafe45009624f2f7fed504c0fff6c64f
Binary files /dev/null and b/Cribbage/sprites/hearts1.gif differ
diff --git a/Cribbage/sprites/hearts10.gif b/Cribbage/sprites/hearts10.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2caa057493d4773df9f68b439bfaa0cc143126b2
Binary files /dev/null and b/Cribbage/sprites/hearts10.gif differ
diff --git a/Cribbage/sprites/hearts11.gif b/Cribbage/sprites/hearts11.gif
new file mode 100644
index 0000000000000000000000000000000000000000..86d902739b6863b77d0df04b10c533693272de16
Binary files /dev/null and b/Cribbage/sprites/hearts11.gif differ
diff --git a/Cribbage/sprites/hearts12.gif b/Cribbage/sprites/hearts12.gif
new file mode 100644
index 0000000000000000000000000000000000000000..215ea796a059d29116096599355f26a52daf5f41
Binary files /dev/null and b/Cribbage/sprites/hearts12.gif differ
diff --git a/Cribbage/sprites/hearts2.gif b/Cribbage/sprites/hearts2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4de929dfecfc23ca8dbf7fd5a4f96c5576539884
Binary files /dev/null and b/Cribbage/sprites/hearts2.gif differ
diff --git a/Cribbage/sprites/hearts3.gif b/Cribbage/sprites/hearts3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3adf4cf8767e9601e51e93346e3357422a45a114
Binary files /dev/null and b/Cribbage/sprites/hearts3.gif differ
diff --git a/Cribbage/sprites/hearts4.gif b/Cribbage/sprites/hearts4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9e2efc30ff6bdb1387e3bfc78dd5f97157f6ed0e
Binary files /dev/null and b/Cribbage/sprites/hearts4.gif differ
diff --git a/Cribbage/sprites/hearts5.gif b/Cribbage/sprites/hearts5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..229494ff41ecac31c719dfeff94974846b96d160
Binary files /dev/null and b/Cribbage/sprites/hearts5.gif differ
diff --git a/Cribbage/sprites/hearts6.gif b/Cribbage/sprites/hearts6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5d3dd246487cbf5749b38ede5e2cc229ac3eb68e
Binary files /dev/null and b/Cribbage/sprites/hearts6.gif differ
diff --git a/Cribbage/sprites/hearts7.gif b/Cribbage/sprites/hearts7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f40098add803c6c42f8267467d6c4dc1d1fd1a2c
Binary files /dev/null and b/Cribbage/sprites/hearts7.gif differ
diff --git a/Cribbage/sprites/hearts8.gif b/Cribbage/sprites/hearts8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f94d0738c06e9f39e0f4f893abf426410c5dcffb
Binary files /dev/null and b/Cribbage/sprites/hearts8.gif differ
diff --git a/Cribbage/sprites/hearts9.gif b/Cribbage/sprites/hearts9.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5ae5e961e0107a706dd5464f6fb7940acc5f9c4b
Binary files /dev/null and b/Cribbage/sprites/hearts9.gif differ
diff --git a/Cribbage/sprites/hearts_item_0.png b/Cribbage/sprites/hearts_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..312c4386df104908d8a447352f04b27ad7f47da4
Binary files /dev/null and b/Cribbage/sprites/hearts_item_0.png differ
diff --git a/Cribbage/sprites/hearts_item_1.png b/Cribbage/sprites/hearts_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c2ffe684164497d5770917a1fe8ee58b0cd77cf
Binary files /dev/null and b/Cribbage/sprites/hearts_item_1.png differ
diff --git a/Cribbage/sprites/joker1.gif b/Cribbage/sprites/joker1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..492027bd100f3e2c491f47132229678770b76bd0
Binary files /dev/null and b/Cribbage/sprites/joker1.gif differ
diff --git a/Cribbage/sprites/joker2.gif b/Cribbage/sprites/joker2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..51ab6d473a7a972398496395ce86d8f5d5b34738
Binary files /dev/null and b/Cribbage/sprites/joker2.gif differ
diff --git a/Cribbage/sprites/original/bigclub.gif b/Cribbage/sprites/original/bigclub.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cf07ff0a3b53c6cf1e69b1706b1fd8db76918d3c
Binary files /dev/null and b/Cribbage/sprites/original/bigclub.gif differ
diff --git a/Cribbage/sprites/original/bigclub1.gif b/Cribbage/sprites/original/bigclub1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..05336b86a536e9d0acf7f9670ea1c4ffae5667a8
Binary files /dev/null and b/Cribbage/sprites/original/bigclub1.gif differ
diff --git a/Cribbage/sprites/original/bigdiamond.gif b/Cribbage/sprites/original/bigdiamond.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9db504ce64f62436dfd1328030e1ef556d903e09
Binary files /dev/null and b/Cribbage/sprites/original/bigdiamond.gif differ
diff --git a/Cribbage/sprites/original/bigdiamond1.gif b/Cribbage/sprites/original/bigdiamond1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e8161d6a9004da4d773bc494c1562bbc2f06b248
Binary files /dev/null and b/Cribbage/sprites/original/bigdiamond1.gif differ
diff --git a/Cribbage/sprites/original/bigheart.gif b/Cribbage/sprites/original/bigheart.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7f23a079d6abfa1c6917757e254a8464e3011a08
Binary files /dev/null and b/Cribbage/sprites/original/bigheart.gif differ
diff --git a/Cribbage/sprites/original/bigheart1.gif b/Cribbage/sprites/original/bigheart1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0b807f397489841697f7b7d332928949bc323661
Binary files /dev/null and b/Cribbage/sprites/original/bigheart1.gif differ
diff --git a/Cribbage/sprites/original/bigspade.gif b/Cribbage/sprites/original/bigspade.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0ac08a6d6ff783cc43f26681dfd043de028ec663
Binary files /dev/null and b/Cribbage/sprites/original/bigspade.gif differ
diff --git a/Cribbage/sprites/original/bigspade1.gif b/Cribbage/sprites/original/bigspade1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fdef80f5ffb8f7408d7fb0e1fba774f35845342a
Binary files /dev/null and b/Cribbage/sprites/original/bigspade1.gif differ
diff --git a/Cribbage/sprites/original/clubs0.gif b/Cribbage/sprites/original/clubs0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b09b1b1a545259fb24bea4b914d96eb086dea1e6
Binary files /dev/null and b/Cribbage/sprites/original/clubs0.gif differ
diff --git a/Cribbage/sprites/original/clubs1.gif b/Cribbage/sprites/original/clubs1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b759a2a5d4a6de33dceb6b9631dfcfe56b86e49c
Binary files /dev/null and b/Cribbage/sprites/original/clubs1.gif differ
diff --git a/Cribbage/sprites/original/clubs2.gif b/Cribbage/sprites/original/clubs2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e900930019ca83fba5a85134a098cd643b9ff14b
Binary files /dev/null and b/Cribbage/sprites/original/clubs2.gif differ
diff --git a/Cribbage/sprites/original/clubs3.gif b/Cribbage/sprites/original/clubs3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1c5d0e9f2a65db0c07ab0d25f9c9caa8ca16d6a1
Binary files /dev/null and b/Cribbage/sprites/original/clubs3.gif differ
diff --git a/Cribbage/sprites/original/clubs4.gif b/Cribbage/sprites/original/clubs4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7e8d094c1c3bf19415af28c4247ea7f3dfd4db3d
Binary files /dev/null and b/Cribbage/sprites/original/clubs4.gif differ
diff --git a/Cribbage/sprites/original/clubs5.gif b/Cribbage/sprites/original/clubs5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d232c33b15d8f6bbe2c66d8bfffb904757ecf4c4
Binary files /dev/null and b/Cribbage/sprites/original/clubs5.gif differ
diff --git a/Cribbage/sprites/original/clubs6.gif b/Cribbage/sprites/original/clubs6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9da5b7d199bf6636256368ff17ecdfae0f329786
Binary files /dev/null and b/Cribbage/sprites/original/clubs6.gif differ
diff --git a/Cribbage/sprites/original/clubs7.gif b/Cribbage/sprites/original/clubs7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a41ed29cf051efeea2dc7611b83a4711174f2675
Binary files /dev/null and b/Cribbage/sprites/original/clubs7.gif differ
diff --git a/Cribbage/sprites/original/clubs8.gif b/Cribbage/sprites/original/clubs8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..23169e94c52a995e63c3394ec7550f98297e885b
Binary files /dev/null and b/Cribbage/sprites/original/clubs8.gif differ
diff --git a/Cribbage/sprites/original/clubs_item_0.png b/Cribbage/sprites/original/clubs_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..544006b3d7d107e13c2fe8c83d904a5c50c9c8bc
Binary files /dev/null and b/Cribbage/sprites/original/clubs_item_0.png differ
diff --git a/Cribbage/sprites/original/clubs_item_1.png b/Cribbage/sprites/original/clubs_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..9457f91f228433e1478e7226ac90d9a54671c2a0
Binary files /dev/null and b/Cribbage/sprites/original/clubs_item_1.png differ
diff --git a/Cribbage/sprites/original/cover.gif b/Cribbage/sprites/original/cover.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a048d8afdfb442cddfc5e7d07f9174881f41c73f
Binary files /dev/null and b/Cribbage/sprites/original/cover.gif differ
diff --git a/Cribbage/sprites/original/diamonds0.gif b/Cribbage/sprites/original/diamonds0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9221184d63f3103b63fa4a2b753de1473ba94bbd
Binary files /dev/null and b/Cribbage/sprites/original/diamonds0.gif differ
diff --git a/Cribbage/sprites/original/diamonds1.gif b/Cribbage/sprites/original/diamonds1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..53b3e862d8a86c6e95b0a08cc507aadea5170f5c
Binary files /dev/null and b/Cribbage/sprites/original/diamonds1.gif differ
diff --git a/Cribbage/sprites/original/diamonds2.gif b/Cribbage/sprites/original/diamonds2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ac60fcd93756cb31d0459d9faa05aa6e6aef26f3
Binary files /dev/null and b/Cribbage/sprites/original/diamonds2.gif differ
diff --git a/Cribbage/sprites/original/diamonds3.gif b/Cribbage/sprites/original/diamonds3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c085929c54e2800068dffcd2bcc6e23e53468379
Binary files /dev/null and b/Cribbage/sprites/original/diamonds3.gif differ
diff --git a/Cribbage/sprites/original/diamonds4.gif b/Cribbage/sprites/original/diamonds4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3f8a7ca6ed6e6c3d80c7554b8ac270605e30d84e
Binary files /dev/null and b/Cribbage/sprites/original/diamonds4.gif differ
diff --git a/Cribbage/sprites/original/diamonds5.gif b/Cribbage/sprites/original/diamonds5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9576337617c8dbd94cfb18937155369b8fb6bfab
Binary files /dev/null and b/Cribbage/sprites/original/diamonds5.gif differ
diff --git a/Cribbage/sprites/original/diamonds6.gif b/Cribbage/sprites/original/diamonds6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b15bd06ed28640b2210dfddc63d8462e1c1edecf
Binary files /dev/null and b/Cribbage/sprites/original/diamonds6.gif differ
diff --git a/Cribbage/sprites/original/diamonds7.gif b/Cribbage/sprites/original/diamonds7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6016d2d0958c6e212945e829f2b7ca34cb0a3983
Binary files /dev/null and b/Cribbage/sprites/original/diamonds7.gif differ
diff --git a/Cribbage/sprites/original/diamonds8.gif b/Cribbage/sprites/original/diamonds8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d113c5fb88a48e023df5db4409fa03af6b062d15
Binary files /dev/null and b/Cribbage/sprites/original/diamonds8.gif differ
diff --git a/Cribbage/sprites/original/diamonds_item_0.png b/Cribbage/sprites/original/diamonds_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..9726895725b497e5c4f30d73a081a3fbeb29a31a
Binary files /dev/null and b/Cribbage/sprites/original/diamonds_item_0.png differ
diff --git a/Cribbage/sprites/original/diamonds_item_1.png b/Cribbage/sprites/original/diamonds_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8260e5a0af3c467b60587cdc1c95c0e4aeeb71e
Binary files /dev/null and b/Cribbage/sprites/original/diamonds_item_1.png differ
diff --git a/Cribbage/sprites/original/done30_0.gif b/Cribbage/sprites/original/done30_0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c187a5919d751e485e61e2f4f6ce859bbf698bd7
Binary files /dev/null and b/Cribbage/sprites/original/done30_0.gif differ
diff --git a/Cribbage/sprites/original/done30_1.gif b/Cribbage/sprites/original/done30_1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9df9957fcb9656c91a332714bb0f69a145c4012b
Binary files /dev/null and b/Cribbage/sprites/original/done30_1.gif differ
diff --git a/Cribbage/sprites/original/done30_2.gif b/Cribbage/sprites/original/done30_2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..701079d05ff3cbe7518d25f9b5b872a8c1b7a00d
Binary files /dev/null and b/Cribbage/sprites/original/done30_2.gif differ
diff --git a/Cribbage/sprites/original/gameover.gif b/Cribbage/sprites/original/gameover.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9bf6f867bfd94a695ad3bea957facf2e6913777b
Binary files /dev/null and b/Cribbage/sprites/original/gameover.gif differ
diff --git a/Cribbage/sprites/original/heart.gif b/Cribbage/sprites/original/heart.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7bbef26dc29180d802ffee238352951e0c1bbb40
Binary files /dev/null and b/Cribbage/sprites/original/heart.gif differ
diff --git a/Cribbage/sprites/original/hearts0.gif b/Cribbage/sprites/original/hearts0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5a2eba4f37c32d351bd2ce1b9762e0480ff4dba7
Binary files /dev/null and b/Cribbage/sprites/original/hearts0.gif differ
diff --git a/Cribbage/sprites/original/hearts1.gif b/Cribbage/sprites/original/hearts1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..207a17a2cafe45009624f2f7fed504c0fff6c64f
Binary files /dev/null and b/Cribbage/sprites/original/hearts1.gif differ
diff --git a/Cribbage/sprites/original/hearts2.gif b/Cribbage/sprites/original/hearts2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4de929dfecfc23ca8dbf7fd5a4f96c5576539884
Binary files /dev/null and b/Cribbage/sprites/original/hearts2.gif differ
diff --git a/Cribbage/sprites/original/hearts3.gif b/Cribbage/sprites/original/hearts3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3adf4cf8767e9601e51e93346e3357422a45a114
Binary files /dev/null and b/Cribbage/sprites/original/hearts3.gif differ
diff --git a/Cribbage/sprites/original/hearts4.gif b/Cribbage/sprites/original/hearts4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9e2efc30ff6bdb1387e3bfc78dd5f97157f6ed0e
Binary files /dev/null and b/Cribbage/sprites/original/hearts4.gif differ
diff --git a/Cribbage/sprites/original/hearts5.gif b/Cribbage/sprites/original/hearts5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..229494ff41ecac31c719dfeff94974846b96d160
Binary files /dev/null and b/Cribbage/sprites/original/hearts5.gif differ
diff --git a/Cribbage/sprites/original/hearts6.gif b/Cribbage/sprites/original/hearts6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5d3dd246487cbf5749b38ede5e2cc229ac3eb68e
Binary files /dev/null and b/Cribbage/sprites/original/hearts6.gif differ
diff --git a/Cribbage/sprites/original/hearts7.gif b/Cribbage/sprites/original/hearts7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f40098add803c6c42f8267467d6c4dc1d1fd1a2c
Binary files /dev/null and b/Cribbage/sprites/original/hearts7.gif differ
diff --git a/Cribbage/sprites/original/hearts8.gif b/Cribbage/sprites/original/hearts8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f94d0738c06e9f39e0f4f893abf426410c5dcffb
Binary files /dev/null and b/Cribbage/sprites/original/hearts8.gif differ
diff --git a/Cribbage/sprites/original/hearts_item_0.png b/Cribbage/sprites/original/hearts_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..312c4386df104908d8a447352f04b27ad7f47da4
Binary files /dev/null and b/Cribbage/sprites/original/hearts_item_0.png differ
diff --git a/Cribbage/sprites/original/hearts_item_1.png b/Cribbage/sprites/original/hearts_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c2ffe684164497d5770917a1fe8ee58b0cd77cf
Binary files /dev/null and b/Cribbage/sprites/original/hearts_item_1.png differ
diff --git a/Cribbage/sprites/original/reshuffle.gif b/Cribbage/sprites/original/reshuffle.gif
new file mode 100644
index 0000000000000000000000000000000000000000..284a4f15d4d54f7181654bf85f014d5bc36abc89
Binary files /dev/null and b/Cribbage/sprites/original/reshuffle.gif differ
diff --git a/Cribbage/sprites/original/spades0.gif b/Cribbage/sprites/original/spades0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..914f782f9e45f1f9002d1a042313bc65a48044b2
Binary files /dev/null and b/Cribbage/sprites/original/spades0.gif differ
diff --git a/Cribbage/sprites/original/spades1.gif b/Cribbage/sprites/original/spades1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5eae07d43f4eb262895f1dce7ffb0e333f91f3f4
Binary files /dev/null and b/Cribbage/sprites/original/spades1.gif differ
diff --git a/Cribbage/sprites/original/spades2.gif b/Cribbage/sprites/original/spades2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..76eb11c896dd532361888e8f833f95b59ea6af9f
Binary files /dev/null and b/Cribbage/sprites/original/spades2.gif differ
diff --git a/Cribbage/sprites/original/spades3.gif b/Cribbage/sprites/original/spades3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..361ab8b9b439ed57f34a531b236a1c7c968222cc
Binary files /dev/null and b/Cribbage/sprites/original/spades3.gif differ
diff --git a/Cribbage/sprites/original/spades4.gif b/Cribbage/sprites/original/spades4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..24f42af55aeb2a7c81e8919be3cde03050e2585d
Binary files /dev/null and b/Cribbage/sprites/original/spades4.gif differ
diff --git a/Cribbage/sprites/original/spades5.gif b/Cribbage/sprites/original/spades5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b126a244c1e537716acd11ac054d8ac8d241868d
Binary files /dev/null and b/Cribbage/sprites/original/spades5.gif differ
diff --git a/Cribbage/sprites/original/spades6.gif b/Cribbage/sprites/original/spades6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c43349183e258e023ef81e84ddf0516646832cf9
Binary files /dev/null and b/Cribbage/sprites/original/spades6.gif differ
diff --git a/Cribbage/sprites/original/spades7.gif b/Cribbage/sprites/original/spades7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1201366d9b7fa30abccc306f4ad39838e06ce075
Binary files /dev/null and b/Cribbage/sprites/original/spades7.gif differ
diff --git a/Cribbage/sprites/original/spades8.gif b/Cribbage/sprites/original/spades8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cc2b108a6884f333d9e3cdb3fbb820c77bce086d
Binary files /dev/null and b/Cribbage/sprites/original/spades8.gif differ
diff --git a/Cribbage/sprites/original/spades_item_0.png b/Cribbage/sprites/original/spades_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d186152763600cfd29bd42fb7ff963e754b294d
Binary files /dev/null and b/Cribbage/sprites/original/spades_item_0.png differ
diff --git a/Cribbage/sprites/original/spades_item_1.png b/Cribbage/sprites/original/spades_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..d57fc7081cf8d68e9f62b6dcc1cdda08a5dcce0b
Binary files /dev/null and b/Cribbage/sprites/original/spades_item_1.png differ
diff --git a/Cribbage/sprites/original/text_item.png b/Cribbage/sprites/original/text_item.png
new file mode 100644
index 0000000000000000000000000000000000000000..1dad1788f32bb81b51615da0809372a50fc5a6ee
Binary files /dev/null and b/Cribbage/sprites/original/text_item.png differ
diff --git a/Cribbage/sprites/reshuffle.gif b/Cribbage/sprites/reshuffle.gif
new file mode 100644
index 0000000000000000000000000000000000000000..284a4f15d4d54f7181654bf85f014d5bc36abc89
Binary files /dev/null and b/Cribbage/sprites/reshuffle.gif differ
diff --git a/Cribbage/sprites/spades0.gif b/Cribbage/sprites/spades0.gif
new file mode 100644
index 0000000000000000000000000000000000000000..914f782f9e45f1f9002d1a042313bc65a48044b2
Binary files /dev/null and b/Cribbage/sprites/spades0.gif differ
diff --git a/Cribbage/sprites/spades1.gif b/Cribbage/sprites/spades1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5eae07d43f4eb262895f1dce7ffb0e333f91f3f4
Binary files /dev/null and b/Cribbage/sprites/spades1.gif differ
diff --git a/Cribbage/sprites/spades10.gif b/Cribbage/sprites/spades10.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f063796c35994570b33c5cc36d6594db27dd5456
Binary files /dev/null and b/Cribbage/sprites/spades10.gif differ
diff --git a/Cribbage/sprites/spades11.gif b/Cribbage/sprites/spades11.gif
new file mode 100644
index 0000000000000000000000000000000000000000..869576f30243cab007a12b3d44eda5b4490f477f
Binary files /dev/null and b/Cribbage/sprites/spades11.gif differ
diff --git a/Cribbage/sprites/spades12.gif b/Cribbage/sprites/spades12.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2c2082aa83f3caff62b6a8757834ef87c8461377
Binary files /dev/null and b/Cribbage/sprites/spades12.gif differ
diff --git a/Cribbage/sprites/spades2.gif b/Cribbage/sprites/spades2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..76eb11c896dd532361888e8f833f95b59ea6af9f
Binary files /dev/null and b/Cribbage/sprites/spades2.gif differ
diff --git a/Cribbage/sprites/spades3.gif b/Cribbage/sprites/spades3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..361ab8b9b439ed57f34a531b236a1c7c968222cc
Binary files /dev/null and b/Cribbage/sprites/spades3.gif differ
diff --git a/Cribbage/sprites/spades4.gif b/Cribbage/sprites/spades4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..24f42af55aeb2a7c81e8919be3cde03050e2585d
Binary files /dev/null and b/Cribbage/sprites/spades4.gif differ
diff --git a/Cribbage/sprites/spades5.gif b/Cribbage/sprites/spades5.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b126a244c1e537716acd11ac054d8ac8d241868d
Binary files /dev/null and b/Cribbage/sprites/spades5.gif differ
diff --git a/Cribbage/sprites/spades6.gif b/Cribbage/sprites/spades6.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c43349183e258e023ef81e84ddf0516646832cf9
Binary files /dev/null and b/Cribbage/sprites/spades6.gif differ
diff --git a/Cribbage/sprites/spades7.gif b/Cribbage/sprites/spades7.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1201366d9b7fa30abccc306f4ad39838e06ce075
Binary files /dev/null and b/Cribbage/sprites/spades7.gif differ
diff --git a/Cribbage/sprites/spades8.gif b/Cribbage/sprites/spades8.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cc2b108a6884f333d9e3cdb3fbb820c77bce086d
Binary files /dev/null and b/Cribbage/sprites/spades8.gif differ
diff --git a/Cribbage/sprites/spades9.gif b/Cribbage/sprites/spades9.gif
new file mode 100644
index 0000000000000000000000000000000000000000..da72717ebc3bd4cb0ff75340dcfd658da2e7f3a2
Binary files /dev/null and b/Cribbage/sprites/spades9.gif differ
diff --git a/Cribbage/sprites/spades_item_0.png b/Cribbage/sprites/spades_item_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d186152763600cfd29bd42fb7ff963e754b294d
Binary files /dev/null and b/Cribbage/sprites/spades_item_0.png differ
diff --git a/Cribbage/sprites/spades_item_1.png b/Cribbage/sprites/spades_item_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..d57fc7081cf8d68e9f62b6dcc1cdda08a5dcce0b
Binary files /dev/null and b/Cribbage/sprites/spades_item_1.png differ
diff --git a/Cribbage/sprites/text_item.png b/Cribbage/sprites/text_item.png
new file mode 100644
index 0000000000000000000000000000000000000000..1dad1788f32bb81b51615da0809372a50fc5a6ee
Binary files /dev/null and b/Cribbage/sprites/text_item.png differ
diff --git a/Cribbage/src/cribbage/Cribbage.java b/Cribbage/src/cribbage/Cribbage.java
new file mode 100644
index 0000000000000000000000000000000000000000..5fb110551072fa0705466c6d8d4ad3b9412cd7ba
--- /dev/null
+++ b/Cribbage/src/cribbage/Cribbage.java
@@ -0,0 +1,387 @@
+package cribbage;
+
+// Cribbage.java
+
+import ch.aplu.jcardgame.*;
+import ch.aplu.jgamegrid.*;
+import observer.*;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.io.FileReader;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+public class Cribbage extends CardGame {
+	static Cribbage cribbage;  // Provide access to singleton
+
+	public enum Suit {
+		CLUBS, DIAMONDS, HEARTS, SPADES
+	}
+
+	public enum Rank {
+		// Order of cards is tied to card images
+		ACE(1,1), KING(13,10), QUEEN(12,10), JACK(11,10), TEN(10,10), NINE(9,9), EIGHT(8,8), SEVEN(7,7), SIX(6,6), FIVE(5,5), FOUR(4,4), THREE(3,3), TWO(2,2);
+		public final int order;
+		public final int value;
+		Rank(int order, int value) {
+			this.order = order;
+			this.value = value;
+		}
+	}
+
+	static int cardValue(Card c) { return ((Cribbage.Rank) c.getRank()).value; }
+
+	/*
+	Canonical String representations of Suit, Rank, Card, and Hand
+	*/
+	String canonical(Suit s) { return s.toString().substring(0, 1); }
+
+	String canonical(Rank r) {
+		switch (r) {
+			case ACE:case KING:case QUEEN:case JACK:case TEN:
+				return r.toString().substring(0, 1);
+			default:
+				return String.valueOf(r.value);
+		}
+	}
+
+    String canonical(Card c) { return canonical((Rank) c.getRank()) + canonical((Suit) c.getSuit()); }
+
+    String canonical(Hand h) {
+		Hand h1 = new Hand(deck); // Clone to sort without changing the original hand
+		for (Card C: h.getCardList()) h1.insert(C.getSuit(), C.getRank(), false);
+		h1.sort(Hand.SortType.POINTPRIORITY, false);
+		return "[" + h1.getCardList().stream().map(this::canonical).collect(Collectors.joining(",")) + "]";
+    }
+
+	class MyCardValues implements Deck.CardValues { // Need to generate a unique value for every card
+		public int[] values(Enum suit) {  // Returns the value for each card in the suit
+			return Stream.of(Rank.values()).mapToInt(r -> (((Rank) r).order-1)*(Suit.values().length)+suit.ordinal()).toArray();
+		}
+	}
+
+	static Random random;
+
+	public static <T extends Enum<?>> T randomEnum(Class<T> clazz){
+      int x = random.nextInt(clazz.getEnumConstants().length);
+      return clazz.getEnumConstants()[x];
+  }
+
+	static boolean ANIMATE;
+
+	void transfer(Card c, Hand h) {
+		if (ANIMATE) {
+			c.transfer(h, true);
+		} else {
+			c.removeFromHand(true);
+			h.insert(c, true);
+		}
+  }
+  
+  private void dealingOut(Hand pack, Hand[] hands) {
+	  for (int i = 0; i < nStartCards; i++) {
+		  for (int j=0; j < nPlayers; j++) {
+			  Card dealt = randomCard(pack);
+			  dealt.setVerso(false);  // Show the face
+			  transfer(dealt, hands[j]);
+		  }
+	  }
+  }
+
+	static int SEED;
+
+	public static Card randomCard(Hand hand){
+      int x = random.nextInt(hand.getNumberOfCards());
+      return hand.get(x);
+  }
+
+  private final String version = "0.1";
+  static public final int nPlayers = 2;
+  public final int nStartCards = 6;
+  public final int nDiscards = 2;
+  private final int handWidth = 400;
+  private final int cribWidth = 150;
+  private final int segmentWidth = 180;
+  private final Deck deck = new Deck(Suit.values(), Rank.values(), "cover", new MyCardValues());
+  private final Location[] handLocations = {
+			  new Location(360, 75),
+			  new Location(360, 625)
+	  };
+  private final Location[] scoreLocations = {
+			  new Location(590, 25),
+			  new Location(590, 675)
+	  };
+  private final Location[] segmentLocations = {  // need at most three as 3x31=93 > 2x4x10=80
+			new Location(150, 350),
+			new Location(400, 350),
+			new Location(650, 350)
+	};
+  private final Location starterLocation = new Location(50, 625);
+  private final Location cribLocation = new Location(700, 625);
+  private final Location seedLocation = new Location(5, 25);
+  // private final TargetArea cribTarget = new TargetArea(cribLocation, CardOrientation.NORTH, 1, true);
+  private final Actor[] scoreActors = {null, null}; //, null, null };
+  private final Location textLocation = new Location(350, 450);
+  private final Hand[] hands = new Hand[nPlayers];
+  private Hand starter;
+  private Hand crib;
+
+  public static void setStatus(String string) { cribbage.setStatusText(string); }
+
+static private final IPlayer[] players = new IPlayer[nPlayers];
+private final int[] scores = new int[nPlayers];
+
+final Font normalFont = new Font("Serif", Font.BOLD, 24);
+final Font bigFont = new Font("Serif", Font.BOLD, 36);
+
+private void initScore() {
+	 for (int i = 0; i < nPlayers; i++) {
+		 scores[i] = 0;
+		 scoreActors[i] = new TextActor("0", Color.WHITE, bgColor, bigFont);
+		 addActor(scoreActors[i], scoreLocations[i]);
+	 }
+  }
+
+private void updateScore(int player) {
+	removeActor(scoreActors[player]);
+	scoreActors[player] = new TextActor(String.valueOf(scores[player]), Color.WHITE, bgColor, bigFont);
+	addActor(scoreActors[player], scoreLocations[player]);
+}
+
+private void deal(Hand pack, Hand[] hands) {
+	for (int i = 0; i < nPlayers; i++) {
+		hands[i] = new Hand(deck);
+		// players[i] = (1 == i ? new HumanPlayer() : new RandomPlayer());
+		players[i].setId(i);
+		players[i].startSegment(deck, hands[i]);
+	}
+	RowLayout[] layouts = new RowLayout[nPlayers];
+	for (int i = 0; i < nPlayers; i++)
+	{
+		layouts[i] = new RowLayout(handLocations[i], handWidth);
+		layouts[i].setRotationAngle(0);
+		// layouts[i].setStepDelay(10);
+		hands[i].setView(this, layouts[i]);
+		hands[i].draw();
+	}
+	layouts[0].setStepDelay(0);
+
+	dealingOut(pack, hands);
+	for (int i = 0; i < nPlayers; i++) {
+		hands[i].sort(Hand.SortType.POINTPRIORITY, true);
+	}
+	layouts[0].setStepDelay(0);
+}
+
+private void discardToCrib() {
+	crib = new Hand(deck);
+	RowLayout layout = new RowLayout(cribLocation, cribWidth);
+	layout.setRotationAngle(0);
+	crib.setView(this, layout);
+	// crib.setTargetArea(cribTarget);
+	crib.draw();
+	for (IPlayer player: players) {
+		for (int i = 0; i < nDiscards; i++) {
+			transfer(player.discard(), crib);
+		}
+		crib.sort(Hand.SortType.POINTPRIORITY, true);
+	}
+}
+
+private void starter(Hand pack) {
+	starter = new Hand(deck);  // if starter is a Jack, the dealer gets 2 points
+	RowLayout layout = new RowLayout(starterLocation, 0);
+	layout.setRotationAngle(0);
+	starter.setView(this, layout);
+	starter.draw();
+	Card dealt = randomCard(pack);
+	dealt.setVerso(false);
+	transfer(dealt, starter);
+}
+
+int total(Hand hand) {
+	int total = 0;
+	for (Card c: hand.getCardList()) total += cardValue(c);
+	return total;
+}
+
+class Segment {
+		Hand segment;
+		boolean go;
+		int lastPlayer;
+		boolean newSegment;
+
+		void reset(final List<Hand> segments) {
+			segment = new Hand(deck);
+			segment.setView(Cribbage.this, new RowLayout(segmentLocations[segments.size()], segmentWidth));
+			segment.draw();
+			go = false;        // No-one has said "go" yet
+			lastPlayer = -1;   // No-one has played a card yet in this segment
+			newSegment = false;  // Not ready for new segment yet
+		}
+}
+
+private void play() {
+	final int thirtyone = 31;
+	final int fifteen = 15;
+	List<Hand> segments = new ArrayList<>();
+	int currentPlayer = 0; // Player 1 is dealer
+	Segment s = new Segment();
+	s.reset(segments);
+	while (!(players[0].emptyHand() && players[1].emptyHand())) {
+		// System.out.println("segments.size() = " + segments.size());
+		Card nextCard = players[currentPlayer].lay(thirtyone-total(s.segment));
+		if (nextCard == null) {
+			if (s.go) {
+				// Another "go" after previous one with no intervening cards
+				// lastPlayer gets 1 point for a "go"
+				scores[s.lastPlayer] += 1;
+				updateScore(s.lastPlayer);
+				s.newSegment = true;
+			} else {
+				// currentPlayer says "go"
+				s.go = true;
+			}
+			currentPlayer = (currentPlayer+1) % 2;
+		} else {
+			s.lastPlayer = currentPlayer; // last Player to play a card in this segment
+			transfer(nextCard, s.segment);
+			// lastPlayer gets 1 point for place the last card.
+			if ((players[0].emptyHand() && players[1].emptyHand())){
+				scores[s.lastPlayer] += 1;
+				updateScore(s.lastPlayer);
+			}
+			if (total(s.segment) == thirtyone) {
+				// lastPlayer gets 2 points for a 31
+				scores[s.lastPlayer] += 2;
+				updateScore(s.lastPlayer);
+				s.newSegment = true;
+				currentPlayer = (currentPlayer+1) % 2;
+			} else {
+				// if total(segment) == 15, lastPlayer gets 2 points for a 15
+				if (total(s.segment) == fifteen){
+					scores[s.lastPlayer] += 2;
+					updateScore(s.lastPlayer);
+				}
+				if (!s.go) { // if it is "go" then same player gets another turn
+					currentPlayer = (currentPlayer+1) % 2;
+				}
+			}
+		}
+		if (s.newSegment) {
+			segments.add(s.segment);
+			s.reset(segments);
+		}
+	}
+}
+
+void showHandsCrib() {
+	// score player 0 (non dealer)
+	HandCards p0HandCards = new CribbageHandCards();
+	modifySubject(p0HandCards);
+	p0HandCards.sendHandCards(players[0].hand, starter);
+	scores[0] += p0HandCards.scoreHandCards();
+	updateScore(0);
+	// score player 1 (dealer)
+	HandCards p1HandCards = new CribbageHandCards();
+	modifySubject(p1HandCards);
+	p1HandCards.sendHandCards(players[1].hand, starter);
+	scores[1] += p1HandCards.scoreHandCards();
+	// score crib (for dealer)
+	HandCards cribHandCards = new CribbageHandCards();
+	modifySubject(cribHandCards);
+	cribHandCards.sendHandCards(crib, starter);
+	scores[1] += cribHandCards.scoreHandCards();
+	updateScore(1);
+}
+
+void modifySubject(HandCards playersHandCards){
+	Rule fifteens = new Fifteens();
+	Rule runs = new Runs();
+	Rule pairs = new Pairs();
+	Rule flush = new Flush();
+	Rule jack = new Jack();
+	playersHandCards.addRule(fifteens);
+	playersHandCards.addRule(runs);
+	playersHandCards.addRule(pairs);
+	//playersHandCards.addRule(flush);
+	playersHandCards.addRule(jack);
+}
+
+public Cribbage()
+  {
+    super(850, 700, 30);
+    cribbage = this;
+    setTitle("Cribbage (V" + version + ") Constructed for UofM SWEN30006 with JGameGrid (www.aplu.ch)");
+    setStatusText("Initializing...");
+    initScore();
+
+	  Hand pack = deck.toHand(false);
+	  RowLayout layout = new RowLayout(starterLocation, 0);
+	  layout.setRotationAngle(0);
+	  pack.setView(this, layout);
+	  pack.setVerso(true);
+	  pack.draw();
+	  addActor(new TextActor("Seed: " + SEED, Color.BLACK, bgColor, normalFont), seedLocation);
+
+	  /* Play the round */
+	  deal(pack, hands);
+	  discardToCrib();
+	  starter(pack);
+	  play();
+	  showHandsCrib();
+
+    addActor(new Actor("sprites/gameover.gif"), textLocation);
+    setStatusText("Game over.");
+    refresh();
+  }
+
+  public static void main(String[] args)
+		  throws IOException, ClassNotFoundException, NoSuchMethodException, InvocationTargetException,
+		  	InstantiationException, IllegalAccessException {
+	  /* Handle Properties */
+	  // System.out.println("Working Directory = " + System.getProperty("user.dir"));
+	  Properties cribbageProperties = new Properties();
+	  // Default properties
+	  cribbageProperties.setProperty("Animate", "true");
+	  cribbageProperties.setProperty("Player0", "cribbage.RandomPlayer");
+	  cribbageProperties.setProperty("Player1", "cribbage.HumanPlayer");
+
+	  // Read properties
+	  try (FileReader inStream = new FileReader("cribbage.properties")) {
+		  cribbageProperties.load(inStream);
+	  }
+
+	  // Control Graphics
+	  ANIMATE = Boolean.parseBoolean(cribbageProperties.getProperty("Animate"));
+
+	  // Control Randomisation
+	  /* Read the first argument and save it as a seed if it exists */
+	  if (args.length > 0 ) { // Use arg seed - overrides property
+		  SEED = Integer.parseInt(args[0]);
+	  } else { // No arg
+		  String seedProp = cribbageProperties.getProperty("Seed");  //Seed property
+		  if (seedProp != null) { // Use property seed
+			  SEED = Integer.parseInt(seedProp);
+		  } else { // and no property
+			  SEED = new Random().nextInt(); // so randomise
+		  }
+	  }
+	  random = new Random(SEED);
+
+	  // Control Player Types
+	  Class<?> clazz;
+	  clazz = Class.forName(cribbageProperties.getProperty("Player0"));
+	  players[0] = (IPlayer) clazz.getConstructor().newInstance();
+	  clazz = Class.forName(cribbageProperties.getProperty("Player1"));
+	  players[1] = (IPlayer) clazz.getConstructor().newInstance();
+	  // End properties
+
+	  new Cribbage();
+  }
+
+}
diff --git a/Cribbage/src/cribbage/HumanPlayer.java b/Cribbage/src/cribbage/HumanPlayer.java
new file mode 100644
index 0000000000000000000000000000000000000000..1fe1411865e76ea4409ad9963e36222ce365982a
--- /dev/null
+++ b/Cribbage/src/cribbage/HumanPlayer.java
@@ -0,0 +1,45 @@
+package cribbage;
+
+import ch.aplu.jcardgame.Deck;
+import ch.aplu.jcardgame.Card;
+import ch.aplu.jcardgame.CardAdapter;
+import ch.aplu.jcardgame.CardListener;
+import ch.aplu.jcardgame.Hand;
+
+public class HumanPlayer extends IPlayer {
+	Card selected;
+	
+	final CardListener cardListener = new CardAdapter()  // Player plays card
+		    {
+		      public void leftDoubleClicked(Card card) { selected = card; hand.setTouchEnabled(false); }
+		    };
+	
+	@Override
+	public void startSegment(Deck deck, Hand hand) {
+		super.startSegment(deck, hand);
+		hand.addCardListener(cardListener);
+	}
+	
+	@Override
+	public Card discard() {
+		selected = null;
+		hand.setTouchEnabled(true);
+		Cribbage.setStatus("Player " + id + " double-click card to discard.");
+		while (null == selected) Cribbage.delay(100);
+		return selected;
+	}
+
+	@Override
+	Card selectToLay() {
+		if (hand.isEmpty()) {
+			return null;
+		} else {
+			selected = null;
+			hand.setTouchEnabled(true);
+			Cribbage.setStatus("Player " + id + " double-click card to lay.");
+			while (null == selected) Cribbage.delay(100);
+			return selected;
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/Cribbage/src/cribbage/IPlayer.java b/Cribbage/src/cribbage/IPlayer.java
new file mode 100644
index 0000000000000000000000000000000000000000..05eb568068f0a4daf255d9bcbcce047bf15636c0
--- /dev/null
+++ b/Cribbage/src/cribbage/IPlayer.java
@@ -0,0 +1,33 @@
+package cribbage;
+
+import ch.aplu.jcardgame.*;
+
+import java.util.ArrayList;
+
+public abstract class IPlayer {
+    int id;
+    Deck deck; // Need this since can't get from hand to deck
+    Hand hand;
+
+    void setId(int id)  {
+        this.id = id;
+    }
+    void startSegment(Deck deck, Hand hand) {this.deck = deck; this.hand = hand;}
+    abstract Card discard();
+    boolean emptyHand() {return hand.isEmpty();}
+    abstract Card selectToLay();
+    Card lay(int limit) {
+        // System.out.println("lay(" + limit + ")");
+        Hand unlayable = new Hand(deck);
+        for (Card c: ((ArrayList<Card>) hand.getCardList().clone()))  // Modify list, so need to iterate over clone
+            if (Cribbage.cardValue(c) > limit) {
+                c.removeFromHand(true);
+                // System.out.println("hand = " + hand.toString());
+                unlayable.insert(c, false);
+            }
+        // hand.draw(); Cribbage.delay(1000);
+        Card s = selectToLay();
+            hand.insert(unlayable, true);
+            return s;
+    }
+}
diff --git a/Cribbage/src/cribbage/RandomPlayer.java b/Cribbage/src/cribbage/RandomPlayer.java
new file mode 100644
index 0000000000000000000000000000000000000000..2d650062979e7110e5b2ee7d230bff69d803a04b
--- /dev/null
+++ b/Cribbage/src/cribbage/RandomPlayer.java
@@ -0,0 +1,18 @@
+package cribbage;
+
+import ch.aplu.jcardgame.Card;
+// import ch.aplu.jcardgame.Hand;
+
+public class RandomPlayer extends IPlayer {
+
+	@Override
+	public Card discard() {
+		return Cribbage.randomCard(hand);
+	}
+
+	@Override
+	Card selectToLay() {
+		return hand.isEmpty() ? null : Cribbage.randomCard(hand);
+	}
+
+}
diff --git a/Cribbage/src/observer/Activity.java b/Cribbage/src/observer/Activity.java
new file mode 100644
index 0000000000000000000000000000000000000000..6b476891c240657bdc20db82535ab98d253fb743
--- /dev/null
+++ b/Cribbage/src/observer/Activity.java
@@ -0,0 +1,5 @@
+package observer;
+
+public enum Activity {
+    DEALING, DISCARDING, SELECTING, PLAY, SHOW
+}
diff --git a/Cribbage/src/observer/CribbageHandCards.java b/Cribbage/src/observer/CribbageHandCards.java
new file mode 100644
index 0000000000000000000000000000000000000000..c6eec3980c2640eba4ad479e61e54c93ce39ff12
--- /dev/null
+++ b/Cribbage/src/observer/CribbageHandCards.java
@@ -0,0 +1,38 @@
+package observer;
+
+import ch.aplu.jcardgame.Hand;
+import java.util.ArrayList;
+
+public class CribbageHandCards implements HandCards{
+
+    private ArrayList<Rule> rules;
+
+    public CribbageHandCards(){
+        rules = new ArrayList<Rule>();
+    }
+
+    @Override
+    public void addRule(Rule rule){
+        rules.add(rule);
+    }
+
+    @Override
+    public void removeRule(Rule rule){
+        rules.remove(rule);
+    }
+
+    @Override
+    public void sendHandCards(Hand hand, Hand starter){
+        hand.insert(starter, false);
+        rules.forEach((rule) -> rule.receiveHandCards(hand, starter));
+    }
+
+    @Override
+    public int scoreHandCards() {
+        int score = 0;
+        for(Rule r : rules){
+            score += r.getScore();
+        }
+        return score;
+    }
+}
diff --git a/Cribbage/src/observer/Fifteens.java b/Cribbage/src/observer/Fifteens.java
new file mode 100644
index 0000000000000000000000000000000000000000..2a30ba6d42576f4950a1bfe40c7833264c44cb5c
--- /dev/null
+++ b/Cribbage/src/observer/Fifteens.java
@@ -0,0 +1,53 @@
+package observer;
+
+import ch.aplu.jcardgame.Card;
+import ch.aplu.jcardgame.Hand;
+
+import java.util.ArrayList;
+
+public class Fifteens implements Rule{
+
+    Hand hand = null;
+    int score = 0;
+
+
+    public Fifteens(){}
+
+    @Override
+    public void receiveHandCards(Hand hand, Hand starter){
+        this.hand = hand;
+        this.hand.insert(starter, false);
+        calculateScore();
+    }
+
+    @Override
+    public int getScore() {
+        return score;
+    }
+
+    private void calculateScore(){
+        ArrayList<Integer> cardValues = new ArrayList<>(); //An array list that contains all card values.
+        //Add values to the array list.
+        for (Card c: hand.getCardList()){
+            cardValues.add(Math.min(c.getValue(), 10));
+        }
+        //Choose N numbers from a list, the sum of them should be 15.
+        score = search(cardValues);
+    }
+
+    private int search(ArrayList<Integer> cardValues){
+        int len = cardValues.size(), bit = 1 << len, score = 0, goal = 15;
+        for(int i=1; i<bit; i++){
+            int sum = 0;
+            for (int j=0; j < len; j++){
+                if((i & 1 << j) != 0){
+                    sum += cardValues.get(j);
+                }
+            }
+            if (sum == goal){
+                score += 2;
+            }
+        }
+        return score;
+    }
+}
diff --git a/Cribbage/src/observer/Flush.java b/Cribbage/src/observer/Flush.java
new file mode 100644
index 0000000000000000000000000000000000000000..8307c7038fbdca5ad152dbbe3946642b78ddec83
--- /dev/null
+++ b/Cribbage/src/observer/Flush.java
@@ -0,0 +1,54 @@
+package observer;
+
+import ch.aplu.jcardgame.Card;
+import ch.aplu.jcardgame.Hand;
+
+import cribbage.Cribbage;
+
+public class Flush implements Rule{
+
+    Hand hand;
+    Card starter;
+    int score = 0;
+
+    public Flush(){}
+
+    @Override
+    public void receiveHandCards(Hand hand, Hand starter){
+        this.hand = hand;
+        this.starter = starter.get(0);
+        flushPoint();
+    }
+
+    @Override
+    public int getScore() {
+        return score;
+    }
+
+
+    private void flushPoint(){
+        int nClubs = hand.getNumberOfCardsWithSuit(Cribbage.Suit.CLUBS);
+        if (nClubs == 4){
+            score += (4 + isSameSuit(Cribbage.Suit.CLUBS, starter));
+        }
+        int nDiamonds = hand.getNumberOfCardsWithSuit(Cribbage.Suit.DIAMONDS);
+        if (nDiamonds == 4){
+            score += (4 + isSameSuit(Cribbage.Suit.DIAMONDS, starter));
+        }
+        int nSpades = hand.getNumberOfCardsWithSuit(Cribbage.Suit.SPADES);
+        if (nSpades == 4){
+            score += (4 + isSameSuit(Cribbage.Suit.SPADES, starter));
+        }
+        int nHearts = hand.getNumberOfCardsWithSuit(Cribbage.Suit.HEARTS);
+        if (nHearts == 4){
+            score += (4 + isSameSuit(Cribbage.Suit.HEARTS, starter));
+        }
+    }
+
+    private int isSameSuit(Cribbage.Suit suit, Card starter){
+        if (starter.getSuit() == suit){
+            return 1;
+        }
+        return 0;
+    }
+}
diff --git a/Cribbage/src/observer/HandCards.java b/Cribbage/src/observer/HandCards.java
new file mode 100644
index 0000000000000000000000000000000000000000..0815b94d06a1fb2f7de532050c6a1950a1718782
--- /dev/null
+++ b/Cribbage/src/observer/HandCards.java
@@ -0,0 +1,14 @@
+package observer;
+
+import ch.aplu.jcardgame.Hand;
+
+public interface HandCards {
+
+    void addRule(Rule rule);
+
+    void removeRule(Rule rule);
+
+    void sendHandCards(Hand hand, Hand starter);
+
+    int scoreHandCards();
+}
diff --git a/Cribbage/src/observer/Jack.java b/Cribbage/src/observer/Jack.java
new file mode 100644
index 0000000000000000000000000000000000000000..d8123d323e38861e5483bb83e04e20d2e37d05e3
--- /dev/null
+++ b/Cribbage/src/observer/Jack.java
@@ -0,0 +1,32 @@
+package observer;
+
+import ch.aplu.jcardgame.Card;
+import ch.aplu.jcardgame.Hand;
+
+import static cribbage.Cribbage.Rank.JACK;
+
+public class Jack implements Rule{
+
+    Hand hand;
+    Card starter;
+    int score = 0;
+
+    public Jack(){}
+
+    @Override
+    public void receiveHandCards(Hand hand, Hand starter){
+        this.hand = hand;
+        this.starter = starter.get(0);
+    }
+
+    @Override
+    public int getScore() {
+        return score;
+    }
+
+    private void calculateScore(){
+        if (hand.getCard(starter.getSuit(), JACK) != null){
+            score ++;
+        }
+    }
+}
diff --git a/Cribbage/src/observer/Pairs.java b/Cribbage/src/observer/Pairs.java
new file mode 100644
index 0000000000000000000000000000000000000000..daae509b624ea37b975875018009b06ab359b598
--- /dev/null
+++ b/Cribbage/src/observer/Pairs.java
@@ -0,0 +1,66 @@
+package observer;
+
+import ch.aplu.jcardgame.Card;
+import ch.aplu.jcardgame.Hand;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+public class Pairs implements Rule{
+
+    Hand hand = null;
+    int score = 0;
+
+    public Pairs(){}
+
+    @Override
+    public void receiveHandCards(Hand hand, Hand starter){
+        this.hand = hand;
+        this.hand.insert(starter, false);
+        calculateScore();
+    }
+
+    @Override
+    public int getScore() {
+        return score;
+    }
+
+    private void calculateScore(){
+        ArrayList<Integer> cardValues = new ArrayList<>();
+        for (Card c: hand.getCardList()){
+            cardValues.add(c.getValue());
+        }
+        Collections.sort(cardValues);
+        // 1,1,2,2,2,3,3,3,4,4,4,4,4,5,5
+        int count = 1, preValue = cardValues.get(0);
+        for (int i=1; i<cardValues.size(); i++){
+            if (cardValues.get(i) == preValue){
+                count ++;
+            } else{
+                score += pairScore(count);
+                count = 1;
+                preValue = cardValues.get(i);
+            }
+        }
+    }
+
+    private int pairScore(int count){
+        int score;
+        switch (count){
+            case 1:
+            case 2:
+                score = 2;
+                break;
+            case 3:
+                score = 6;
+                break;
+            case 4:
+                score = 12;
+                break;
+            default:
+                return 0;
+        }
+        return score;
+    }
+
+}
diff --git a/Cribbage/src/observer/Rule.java b/Cribbage/src/observer/Rule.java
new file mode 100644
index 0000000000000000000000000000000000000000..4a700680775b8dc836065a56770cde11903e443d
--- /dev/null
+++ b/Cribbage/src/observer/Rule.java
@@ -0,0 +1,10 @@
+package observer;
+
+import ch.aplu.jcardgame.Card;
+import ch.aplu.jcardgame.Hand;
+
+public interface Rule {
+
+    void receiveHandCards(Hand hand, Hand starter);
+    int getScore();
+}
diff --git a/Cribbage/src/observer/Runs.java b/Cribbage/src/observer/Runs.java
new file mode 100644
index 0000000000000000000000000000000000000000..faca545bfc2a14ec1c7f1b151a50f913a1fb45db
--- /dev/null
+++ b/Cribbage/src/observer/Runs.java
@@ -0,0 +1,26 @@
+package observer;
+
+import ch.aplu.jcardgame.Hand;
+
+public class Runs implements Rule{
+
+    Hand hand = null;
+    int score = 0;
+
+    public Runs(){}
+
+    @Override
+    public void receiveHandCards(Hand hand, Hand starter){
+        this.hand = hand;
+        this.hand.insert(starter, false);
+        calculateScore();
+    }
+
+    @Override
+    public int getScore() {
+        return score;
+    }
+
+    private void calculateScore(){
+    }
+}