From f34175579e0e4f4d8f50888d8156c33d800fbd93 Mon Sep 17 00:00:00 2001
From: Yuchen Li <yuchen.li7@student.unimelb.edu.au>
Date: Sat, 5 Sep 2020 14:20:33 +0800
Subject: [PATCH] last

---
 bagel-starter-pack/.idea/.gitignore           |   8 +
 bagel-starter-pack/.idea/.name                |   1 +
 bagel-starter-pack/.idea/compiler.xml         |  16 ++
 bagel-starter-pack/.idea/jarRepositories.xml  |  20 ++
 ...aven__io_github_eleanor_em_bagel_1_9_3.xml |  13 ++
 .../Maven__org_lwjgl_lwjgl_3_2_2.xml          |  13 ++
 .../Maven__org_lwjgl_lwjgl_assimp_3_2_2.xml   |  13 ++
 ...jgl_lwjgl_assimp_natives_windows_3_2_2.xml |  13 ++
 .../Maven__org_lwjgl_lwjgl_glfw_3_2_2.xml     |  13 ++
 ...lwjgl_lwjgl_glfw_natives_windows_3_2_2.xml |  13 ++
 ..._org_lwjgl_lwjgl_natives_windows_3_2_2.xml |  13 ++
 .../Maven__org_lwjgl_lwjgl_openal_3_2_2.xml   |  13 ++
 ...jgl_lwjgl_openal_natives_windows_3_2_2.xml |  13 ++
 .../Maven__org_lwjgl_lwjgl_opengl_3_2_2.xml   |  13 ++
 ...jgl_lwjgl_opengl_natives_windows_3_2_2.xml |  13 ++
 .../Maven__org_lwjgl_lwjgl_stb_3_2_2.xml      |  13 ++
 ..._lwjgl_lwjgl_stb_natives_windows_3_2_2.xml |  13 ++
 bagel-starter-pack/.idea/misc.xml             |  11 +
 bagel-starter-pack/.idea/modules.xml          |   8 +
 bagel-starter-pack/.idea/vcs.xml              |   7 +
 bagel-starter-pack/bagel.iml                  |  26 +++
 bagel-starter-pack/pom.xml                    |  37 ++++
 bagel-starter-pack/src/BagelTest.java         | 116 +++++++++++
 bagel-starter-pack/src/Game.java              |   8 +
 .../src/Linear_optimization.java              | 191 ++++++++++++++++++
 bagel-starter-pack/src/Tool.java              |  26 +++
 bagel-starter-pack/src/VideoGame.java         |  74 +++++++
 .../target/classes/BagelTest.class            | Bin 0 -> 3048 bytes
 bagel-starter-pack/target/classes/Game.class  | Bin 0 -> 490 bytes
 .../target/classes/Linear_optimization.class  | Bin 0 -> 4493 bytes
 bagel-starter-pack/target/classes/Tool.class  | Bin 0 -> 844 bytes
 .../target/classes/VideoGame.class            | Bin 0 -> 2183 bytes
 32 files changed, 718 insertions(+)
 create mode 100644 bagel-starter-pack/.idea/.gitignore
 create mode 100644 bagel-starter-pack/.idea/.name
 create mode 100644 bagel-starter-pack/.idea/compiler.xml
 create mode 100644 bagel-starter-pack/.idea/jarRepositories.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__io_github_eleanor_em_bagel_1_9_3.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_natives_windows_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_natives_windows_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_natives_windows_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_natives_windows_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_natives_windows_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_natives_windows_3_2_2.xml
 create mode 100644 bagel-starter-pack/.idea/misc.xml
 create mode 100644 bagel-starter-pack/.idea/modules.xml
 create mode 100644 bagel-starter-pack/.idea/vcs.xml
 create mode 100644 bagel-starter-pack/bagel.iml
 create mode 100644 bagel-starter-pack/pom.xml
 create mode 100644 bagel-starter-pack/src/BagelTest.java
 create mode 100644 bagel-starter-pack/src/Game.java
 create mode 100644 bagel-starter-pack/src/Linear_optimization.java
 create mode 100644 bagel-starter-pack/src/Tool.java
 create mode 100644 bagel-starter-pack/src/VideoGame.java
 create mode 100644 bagel-starter-pack/target/classes/BagelTest.class
 create mode 100644 bagel-starter-pack/target/classes/Game.class
 create mode 100644 bagel-starter-pack/target/classes/Linear_optimization.class
 create mode 100644 bagel-starter-pack/target/classes/Tool.class
 create mode 100644 bagel-starter-pack/target/classes/VideoGame.class

diff --git a/bagel-starter-pack/.idea/.gitignore b/bagel-starter-pack/.idea/.gitignore
new file mode 100644
index 0000000..b341795
--- /dev/null
+++ b/bagel-starter-pack/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/../../../../../../../:\Users\A\Desktop\oosd\bagel-starter-pack\.idea/dataSources/
+/dataSources.local.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
diff --git a/bagel-starter-pack/.idea/.name b/bagel-starter-pack/.idea/.name
new file mode 100644
index 0000000..e5199ee
--- /dev/null
+++ b/bagel-starter-pack/.idea/.name
@@ -0,0 +1 @@
+bagel
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/compiler.xml b/bagel-starter-pack/.idea/compiler.xml
new file mode 100644
index 0000000..75b0a78
--- /dev/null
+++ b/bagel-starter-pack/.idea/compiler.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="bagel" />
+      </profile>
+    </annotationProcessing>
+    <bytecodeTargetLevel>
+      <module name="bagel" target="11" />
+    </bytecodeTargetLevel>
+  </component>
+</project>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/jarRepositories.xml b/bagel-starter-pack/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/bagel-starter-pack/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+  </component>
+</project>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__io_github_eleanor_em_bagel_1_9_3.xml b/bagel-starter-pack/.idea/libraries/Maven__io_github_eleanor_em_bagel_1_9_3.xml
new file mode 100644
index 0000000..8a3817e
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__io_github_eleanor_em_bagel_1_9_3.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.github.eleanor-em:bagel:1.9.3">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/io/github/eleanor-em/bagel/1.9.3/bagel-1.9.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/io/github/eleanor-em/bagel/1.9.3/bagel-1.9.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/io/github/eleanor-em/bagel/1.9.3/bagel-1.9.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_3_2_2.xml
new file mode 100644
index 0000000..b41e0a0
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_3_2_2.xml
new file mode 100644
index 0000000..04a33d8
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-assimp:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_natives_windows_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_natives_windows_3_2_2.xml
new file mode 100644
index 0000000..a79e8a1
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_natives_windows_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-assimp:natives-windows:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2-natives-windows.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_3_2_2.xml
new file mode 100644
index 0000000..48aa8aa
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-glfw:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_natives_windows_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_natives_windows_3_2_2.xml
new file mode 100644
index 0000000..d295582
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_natives_windows_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-glfw:natives-windows:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-natives-windows.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_natives_windows_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_natives_windows_3_2_2.xml
new file mode 100644
index 0000000..6ecec7b
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_natives_windows_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl:natives-windows:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-natives-windows.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_3_2_2.xml
new file mode 100644
index 0000000..094321f
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-openal:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_natives_windows_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_natives_windows_3_2_2.xml
new file mode 100644
index 0000000..8c35c65
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_natives_windows_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-openal:natives-windows:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-natives-windows.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_3_2_2.xml
new file mode 100644
index 0000000..24121c2
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-opengl:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_natives_windows_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_natives_windows_3_2_2.xml
new file mode 100644
index 0000000..4a6eab9
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_natives_windows_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-opengl:natives-windows:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-natives-windows.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_3_2_2.xml
new file mode 100644
index 0000000..8155b1d
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-stb:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_natives_windows_3_2_2.xml b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_natives_windows_3_2_2.xml
new file mode 100644
index 0000000..ac60d06
--- /dev/null
+++ b/bagel-starter-pack/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_natives_windows_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-stb:natives-windows:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-natives-windows.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/misc.xml b/bagel-starter-pack/.idea/misc.xml
new file mode 100644
index 0000000..c0572aa
--- /dev/null
+++ b/bagel-starter-pack/.idea/misc.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_14" project-jdk-name="14" project-jdk-type="JavaSDK" />
+</project>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/modules.xml b/bagel-starter-pack/.idea/modules.xml
new file mode 100644
index 0000000..d4754ea
--- /dev/null
+++ b/bagel-starter-pack/.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$/bagel.iml" filepath="$PROJECT_DIR$/bagel.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/bagel-starter-pack/.idea/vcs.xml b/bagel-starter-pack/.idea/vcs.xml
new file mode 100644
index 0000000..a8bca5f
--- /dev/null
+++ b/bagel-starter-pack/.idea/vcs.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/res" vcs="Git" />
+    <mapping directory="$PROJECT_DIR$/yuchen11" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/bagel-starter-pack/bagel.iml b/bagel-starter-pack/bagel.iml
new file mode 100644
index 0000000..8485d48
--- /dev/null
+++ b/bagel-starter-pack/bagel.iml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: io.github.eleanor-em:bagel:1.9.3" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl-assimp:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl-glfw:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl-openal:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl-opengl:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl-stb:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl:natives-windows:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl-assimp:natives-windows:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl-glfw:natives-windows:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl-openal:natives-windows:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl-opengl:natives-windows:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.lwjgl:lwjgl-stb:natives-windows:3.2.2" level="project" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/bagel-starter-pack/pom.xml b/bagel-starter-pack/pom.xml
new file mode 100644
index 0000000..19edbaf
--- /dev/null
+++ b/bagel-starter-pack/pom.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>au.edu.unimelb.cis</groupId>
+    <artifactId>bagel</artifactId>
+    <version>0.1-SNAPSHOT</version>
+    <packaging>jar</packaging>
+
+    <build>
+        <sourceDirectory>src/</sourceDirectory>
+        <plugins>
+            <plugin>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>11</source>
+                    <target>11</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <properties>
+        <maven.compiler.source>11</maven.compiler.source>
+        <maven.compiler.target>11</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>io.github.eleanor-em</groupId>
+            <artifactId>bagel</artifactId>
+            <version>1.9.3</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/bagel-starter-pack/src/BagelTest.java b/bagel-starter-pack/src/BagelTest.java
new file mode 100644
index 0000000..8d321cf
--- /dev/null
+++ b/bagel-starter-pack/src/BagelTest.java
@@ -0,0 +1,116 @@
+import bagel.*;
+import bagel.util.Point;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+/**
+ * An example Bagel game.
+ *
+ * @author Eleanor McMurtry
+ */
+public class BagelTest extends AbstractGame {
+    private Image tree[] = new Image[4];
+    private Image gatherer[] = new Image[4];
+    private Image background;
+    int counterTree = 0;
+    int counterGatherer = 0;
+    int towards[] = {1, 2, 3, 4};
+    int counter = 0;
+    int direction[] = {0, 0};
+    Point pTree[] = new Point[5];
+    Point pGatherer[] = new Point[5];
+    BufferedReader reader;
+
+    public BagelTest() throws IOException {
+        super(1024, 768, "fuck");
+//        tree[0] = new Image("res/images/tree.png");
+//        gatherer[0] = new Image("res/images/gatherer.png");
+        background = new Image("res/images/background.png");
+        reader = new BufferedReader(new FileReader("res/worlds/test.csv"));
+        String line;
+
+        while ((line = reader.readLine()) != null) {
+            String item[] = line.split(",");//CSV格式文件为逗号分隔符文件,这里根据逗号切分
+            int itemX = Integer.parseInt(item[1]);
+            int itemY = Integer.parseInt(item[2]);
+            if (item[0].equals("Tree")) {
+                tree[counterTree] = new Image("res/images/tree.png");
+                pTree[counterTree] = new Point(itemX / 16, itemY / 12);
+                //有问题,如果初始位置不在64的倍数会强制转成64倍数
+                counterTree++;
+            } else {
+                gatherer[counterGatherer] = new Image("res/images/gatherer.png");
+                pGatherer[counterGatherer] = new Point(itemX / 16, itemY / 12);
+                counterGatherer++;
+            }
+        }
+
+        //p[0] = new Point(512 / 64, 384 / 64);
+    }
+
+    /**
+     * The entry point for the program.
+     */
+//    public static void main(String[] args) throws IOException {
+//        BagelTest game = new BagelTest();
+//        game.run();
+//    }
+
+    @Override
+    public void update(Input input) {
+        double speed = 1;
+        Tool tool = new Tool();
+        if (input.wasPressed(Keys.ESCAPE)) {
+            Window.close();
+        }
+        if (counter % 5 == 0) {
+
+            direction[0] = tool.chooseDirection();
+            direction[1] = tool.chooseDirection();
+        }
+
+
+        try {
+            Thread.sleep(500);
+            counter++;
+
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+        for (int i = 0; i < counterGatherer; i++) {
+            tool.move(pGatherer, i, direction[i], speed);
+            System.out.println(pGatherer[i].x);
+        }
+
+        background.drawFromTopLeft(0, 0);
+        for (int i = 0; i < counterGatherer; i++) {
+            gatherer[i].drawFromTopLeft(pGatherer[i].x * 16, pGatherer[i].y * 12);
+            //System.out.println(pGatherer[i].y);
+            //System.out.println(direction);
+        }
+        for (int i = 0; i < counterTree; i++) {
+            tree[i].drawFromTopLeft(pTree[i].x * 16, pTree[i].y * 12);
+            //System.out.println("t"+ i +"...."+pTree[i].y*64);
+        }
+    }
+
+
+
+//    public void isOut(Point point){
+//        if (point.x < 0 && point.x  > 11) {
+//
+//        }
+//    }
+//    public void isHome(){
+//        if ((55> Math.abs(854-x)) && (55>  Math.abs(268-y))) {
+//            if (t == 0) {
+//                System.out.println("you are home!");
+//            }
+//            t++;
+//
+//            font.drawString("you are home!", 32, 32);
+//            //Window.close();
+//        }
+//    }
+}
diff --git a/bagel-starter-pack/src/Game.java b/bagel-starter-pack/src/Game.java
new file mode 100644
index 0000000..7c120d6
--- /dev/null
+++ b/bagel-starter-pack/src/Game.java
@@ -0,0 +1,8 @@
+import java.io.IOException;
+
+public class Game {
+    public static void main(String[] args) throws IOException {
+        BagelTest game = new BagelTest();
+        game.run();
+    }
+}
diff --git a/bagel-starter-pack/src/Linear_optimization.java b/bagel-starter-pack/src/Linear_optimization.java
new file mode 100644
index 0000000..0c4aa7c
--- /dev/null
+++ b/bagel-starter-pack/src/Linear_optimization.java
@@ -0,0 +1,191 @@
+public class Linear_optimization {
+
+    private static double A[][] = { { 2, 1, 1, 0, 0 , 0},
+            { 3, -2, 0, 1, 0 , 0},
+            { 1, 2, 0, 0, 1, 0 },
+            { -1, 3, 0, 0, 0, 1}};// 系数矩阵
+
+    private static int m = A.length; //m个方程
+    private static int n = A[0].length; //n个决策变量
+
+    private static double C[] = { 3, 2, 0, 0, 0 }; // 价值系数
+
+    private static double b[] = { 5, 4 ,9}; // 资源常数
+
+    private static double theta[] = new double[m]; //b的检验数
+
+    private static int basedVar[] = new int[m]; // 基变量,存基变量的下标,从1开始标号(区别于数组存储习惯)
+
+    private static double yita[] = new double[n]; //检验数,有n个决策变量的检验数
+
+    private static double result = -1; //结果
+
+    private static int idxOfIn = -1; //换入变量的下标
+
+    private static int idxOfOut = -1; //换出变量的下标
+
+    public static void main(String[] args) {
+        //输入数据,为了简单起见,我们的数据直接在代码中敲入,这个函数等测试完后加
+        inputNums();
+        //找初始基变量
+        findBasedVariables();
+        //判断是否最优解
+        while (!isOptimum()) {
+            //找换入变量
+            idxOfIn = getVariableIn();
+            printVector();
+            //找换出变量
+            idxOfOut = getVariableOut();
+            //如果idxOfOut返回-1,则该线性规划问题有无界解
+            if(idxOfOut == -1)
+                return;
+            //旋转运算,更新矩阵
+            updateVectors();
+            printVector();
+            System.out.println("\n");
+        }
+        //输出最优解
+        printOptimum();
+    }
+
+    // 输入数据,先在代码中写入数据,后期再加,先把初始检验数赋值为价值系数
+    private static void inputNums() {
+        for (int i = 0; i < yita.length; i++) {
+            yita[i] = C[i]; //yita为检验数
+        }
+    }
+
+    // 找基变量,简单的拿最后m个决策变量,后期可优化,存储在basedVar数组中
+    private static void findBasedVariables() {
+
+        //取n个决策变量的最后m个作基变量
+        for (int i = 0; i < m; i++) {
+            //basedVar[i] = n-i;
+            //改变存放顺序为正叙
+            basedVar[m-i-1] = n-i ;
+        }
+        System.out.println("基变量为:");
+        for (int i = 0; i < basedVar.length; i++) {
+            System.out.print("x" + (basedVar[i]) + "\t");
+        }
+        System.out.println();
+    }
+
+    // 判断是否最优解,并计算检验数yita向量
+    private static boolean isOptimum() {
+        //换入变量代替换出变量
+        if(idxOfIn != -1 && idxOfOut != -1){
+            //第idxOfOut个基变量换为x idxOfIn
+            basedVar[idxOfOut] = idxOfIn+1;
+        }
+        //更新检验数
+        for (int i = 0; i < n; i++) {
+            double temp = yita[i];
+            for (int j = 0; j < m; j++) {
+                temp -= A[j][i] * C[basedVar[j] -1];
+            }
+            yita[i] = temp;
+        }
+
+        boolean hasPossitiveYita = false;
+        for (int i = 0; i < yita.length; i++) {
+            if(yita[i] > 0)
+                hasPossitiveYita = true;
+        }
+        System.out.println("是否最优解:" + !hasPossitiveYita);
+        return !hasPossitiveYita;
+    }
+
+    // 确定换入变量,返回换入变量的下标-1
+    private static int getVariableIn() {
+        //遍历检验数
+        int index = 0;
+        System.out.println("检验数如下:");
+        for (int i = 0; i < yita.length; i++) {
+            System.out.print(yita[i] + "\t");
+            if(yita[i] > yita[index]){
+                index = i;
+            }
+        }
+        System.out.println();
+        System.out.println("换入变量是x" + (index+1));
+        return index;
+    }
+
+    // 确定换出变量,返回换出变量在基变量向量中的下标
+    private static int getVariableOut() {
+
+        System.out.println("theta:");
+        for (int i = 0; i < m; i++) {
+            if( Double.compare(A[i][idxOfIn], 0) != 0)
+                theta[i] = b[i] / A[i][idxOfIn];
+            else {
+                theta[i] = 0;
+            }
+            System.out.print(theta[i] + "\t");
+        }
+        System.out.println();
+
+        int index = 0;
+        for (int i = 0; i < theta.length; i++) {
+            if(theta[i] <= 0){
+                System.out.println("该方程有无界解...");
+                return -1;
+            }else {
+                if(theta[i] < theta[index])
+                    index = i;
+            }
+        }
+        System.out.println("换出变量是:x" + (basedVar[index]));
+        return index;
+    }
+
+    // 更新旋转运算后的矩阵
+    private static void updateVectors() {
+        //m个方程,n个变量
+        //将主元系数化为1
+        //防止迭代中主元的值被改变后引起 其它系数除主元的新值,将主元的原值存于temp
+        double temp = A[idxOfOut][idxOfIn];
+        for (int i = 0; i < n; i++) {
+            A[idxOfOut][i] /= temp;
+        }
+        b[idxOfOut] /= temp;
+
+        System.out.println("\n将主元系数化为1");
+        printVector();
+        //主元所在列其余元素系数要化为0,即:主元列中,非主元所在行均减去 主元系数分之一*A[m][n]
+        for (int i = 0; i < m; i++) {
+            //若是换出变量所对应行,则该行不用换算
+            double temp1 = A[i][idxOfIn]/A[idxOfOut][idxOfIn];
+            if(i != idxOfOut){
+                for (int j = 0; j < n; j++) {
+                    A[i][j] -= A[idxOfOut][j]*temp1;
+                }
+                b[i] -= b[idxOfOut] * temp1;
+            }
+        }
+        System.out.println("完成一次矩阵旋转运算...");
+    }
+
+    //输出系数矩阵
+    private static void printVector() {
+        for (int i = 0; i < m; i++) {
+            for (int j = 0; j < n; j++) {
+                System.out.print(A[i][j] + "\t");
+            }
+            System.out.println(b[i]);
+        }
+        System.out.println("-----------------------------------------------");
+    }
+
+    //输出最优解
+    private static void printOptimum() {
+        result = 0;
+        for (int i = 0; i < basedVar.length; i++) {
+            result += C[basedVar[i]-1] * b[i];
+        }
+        System.out.println("最优解:z = " + result);
+    }
+
+
+}
diff --git a/bagel-starter-pack/src/Tool.java b/bagel-starter-pack/src/Tool.java
new file mode 100644
index 0000000..19a7e29
--- /dev/null
+++ b/bagel-starter-pack/src/Tool.java
@@ -0,0 +1,26 @@
+import bagel.util.Point;
+
+public class Tool {
+    public int chooseDirection() {
+        int direction = 1 + (int) (Math.random() * (4));
+        return direction;
+    }
+
+    public void move(Point point[], int order, int direction, double speed) {
+        if (direction == 1) {
+            point[order] = new Point(point[order].x - speed, point[order].y);
+        }
+        if (direction == 2) {
+            point[order] = new Point(point[order].x + speed, point[order].y);
+            //point = new Point(point.x + speed, point.y);
+        }
+        if (direction == 3) {
+            point[order] = new Point(point[order].x, point[order].y - speed);
+            // point = new Point(point.x, point.y - speed);
+        }
+        if (direction == 4) {
+            point[order] = new Point(point[order].x, point[order].y + speed);
+            //point = new Point(point.x, point.y + speed);
+        }
+    }
+}
diff --git a/bagel-starter-pack/src/VideoGame.java b/bagel-starter-pack/src/VideoGame.java
new file mode 100644
index 0000000..aed9f30
--- /dev/null
+++ b/bagel-starter-pack/src/VideoGame.java
@@ -0,0 +1,74 @@
+import java.util.Arrays;
+
+public class VideoGame {
+    public final String name;
+    public final String platform;
+
+    private static final VideoGame[] games = new VideoGame[100];
+    private static int numGames = 0;
+
+    public VideoGame(String name, String platform) {
+        this.name = name;
+        this.platform = platform;
+
+        games[numGames++] = this;
+    }
+
+    public int compareTo(VideoGame other) {
+        int platformCompare = platform.compareTo(other.platform);
+        if (platformCompare != 0) {
+            return platformCompare;
+        } else {
+            return name.compareTo(other.name);
+        }
+    }
+
+    public static VideoGame[] getSortedVideoGames() {
+        // Create a copy of the array to sort
+        VideoGame[] sorted = Arrays.copyOf(games, games.length);
+
+        // Recursively sort the array
+        quickSort(sorted, 0, numGames - 1);
+        return sorted;
+    }
+
+    private static void quickSort(VideoGame[] array, int low, int high) {
+        if (low < high) {
+            // Choose a pivot
+            VideoGame pivot = array[high];
+
+            // Partition the array
+            int i = low;
+            for (int j = low; j < high; ++j) {
+                if (array[j].compareTo(pivot) < 0) {
+                    // Swap the elements
+                    VideoGame temp = array[i];
+                    array[j] = array[i];
+                    array[j] = temp;
+                    ++i;
+                }
+            }
+
+            // Swap the elements
+            VideoGame temp = array[i];
+            array[high] = array[i];
+            array[i] = temp;
+
+            quickSort(array, low, i - 1);
+            quickSort(array, i + 1, high - 1);
+        }
+    }
+
+    public String toString() {
+        return String.format("%s (%s)", name, platform);
+    }
+
+    public static void main(String[] args) {
+        new VideoGame("Halo", "Xbox");
+        new VideoGame("Ocarina of Time", "Nintendo 64");
+        new VideoGame("Red Dead Redemption 2", "Xbox One");
+        new VideoGame("Majora's Mask", "Nintendo 64");
+
+        System.out.println(Arrays.toString(VideoGame.getSortedVideoGames()));
+    }
+}
diff --git a/bagel-starter-pack/target/classes/BagelTest.class b/bagel-starter-pack/target/classes/BagelTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..8ee793345f8d4964433889064552b2c7a80cc4a1
GIT binary patch
literal 3048
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
B&&B`%

literal 0
HcmV?d00001

diff --git a/bagel-starter-pack/target/classes/Game.class b/bagel-starter-pack/target/classes/Game.class
new file mode 100644
index 0000000000000000000000000000000000000000..a0e649b24d3969dec369ed61080c6ebe8532cd7e
GIT binary patch
literal 490
zcmX^0Z`VEs1_pBmc`gPf24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk-
z5<5l)W)00Sb_Nbc22Q8M^wgY?)Z!8@26hH!5W&sEzys3HTvVFJ&cMgWz~Y{mo65+*
z;+&t7%E-X)lbM(5SDKrYS`?C)l#|NHAmo#uoR|}qSd<CkLj_q%GBS%98Q6S4nyncb
zSaK6H^B5V#G@^YF?g}m`%FIi*)(m50U`Z@WFJ@#A#v;wgz>*Gj0k;p_wbqObT&@+#
zsRbpO`FX|c3^I%i!eDbV^YuOb;WCU2T*3LJMaijdnIM;Pf*hj<Qpcdkz{|kI00K-5
zjGzExU}WHDU|`T^U}RuqU|?X?+RnhZk%57Mi9vvYfq@My$jl(fz`(!*X0tK~F$gm-
zFmN)6Fo-fRfi-(FFo6x_-Oa!rxt)R2M|&Fs7s3!e24;}S3>*w>3_J|%V8g^98W_YF
j#2FYEI2c$NBp4(a7#XA(7#LU>7#XA)7#U>2&X5BD?s-_9

literal 0
HcmV?d00001

diff --git a/bagel-starter-pack/target/classes/Linear_optimization.class b/bagel-starter-pack/target/classes/Linear_optimization.class
new file mode 100644
index 0000000000000000000000000000000000000000..bae20d3e79da53a1388015c449ad5ddea31f7d98
GIT binary patch
literal 4493
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
GK@tEo=MBjK

literal 0
HcmV?d00001

diff --git a/bagel-starter-pack/target/classes/Tool.class b/bagel-starter-pack/target/classes/Tool.class
new file mode 100644
index 0000000000000000000000000000000000000000..1c1738eff445837e680a9ad52564d146b6376c21
GIT binary patch
literal 844
zcmX^0Z`VEs1_pBmeJ%zj24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk-
z5<5l)W)00SE(Q(;PId+^9tLg(9!3T}gmT}+k_<)$wxYzml>A(<Viz_C0R}K&XAody
z5J*Z)PtDOUEy>K$56I8VE8%3|XAt6H5M~fzWMHgdWMFgwiHPwqh=WBcxfu8vBth<y
zVq{>|aB<NLV`q?IWMB!&&(C3GU~$e*No8c<_sPsl^()OyN-YXWOv*`RWDxSnPfpAU
zODxI+@u7k&B^jB;j0|i(AkEf{4E)I%`T51EE}2EC$t9Wjd0+>7GBR+cAVe5F85vk|
z^UG2h86-8LebAk6?dj>F8OF%KS^)A4BZDv&C5#NL`9&$IMT`ur#RaLUDU1xf!6k{w
z*}jPdP=|2^=a&{Gr@Cc=oX!byogOGm859|$8JNI<$IQS8iW>$-23ZCM27Lxb21W)3
z23D=@42&BY7#Nrs<QNzj*ua9!4Dt*N3_M^qD}w@qA_D^hBZCryGE}oG11s22UX~pU
z>>>=j*?kE%(re&`fYJg311keJ0~^>NF^FQQLEH>X3@Qw&VEfe=)S*UxXW(LBV_;yY
zlx11KAfqj_n}I)4TgGS$gP;UUI+!84ok1d4mK8%b8A+B6O%@_0!IBQv%Z@`f86*n|
z17>g-s4;LdFfed|Js`)x%b?7_$6&)C$l%Bz#1O?G$`H>W#!$f^3HF)^11reUP_HpC
vR5EBVXoAD7l0l0>73}d!uy>ik>a-a|7+4r|z#+{dCo3z<z{sEr4mdpkziW>>

literal 0
HcmV?d00001

diff --git a/bagel-starter-pack/target/classes/VideoGame.class b/bagel-starter-pack/target/classes/VideoGame.class
new file mode 100644
index 0000000000000000000000000000000000000000..3824ee33aa6fa856fb1fb99b6e74475dbc0b8f32
GIT binary patch
literal 2183
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
WQ#Pob0m_yf3>*xM47uPmmj?jvv#&+~

literal 0
HcmV?d00001

-- 
GitLab