diff --git a/base64/move.png.64 b/base64/move.png.64
new file mode 100644
index 0000000..8564eb0
--- /dev/null
+++ b/base64/move.png.64
@@ -0,0 +1 @@
+iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAADpAAAA6QFUkhRLAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAA9VJREFUWIXtV1toXEUY/mbOye7Mf/berMZIGkxtSsWKNY0ltSWKl4iYh7ZQCgGLFCmSFxGkDxGkYgUrCBW1qNQnQbF46Wq0FiKBgLWNISnEXgJqTDSxqdk0u+nZs3vO7PiSxO2aPOxum6d8MC//zHeZ4fxzGAMVgIg6OeezSqnpSnTKgpRyLRGliej0ipsDABEliEgTkZZS7l1Rcynl3gXz+TEZiUQi5WgZpRKi0WhYKZUAECwoB5RSluu635Wqx0slZLPZ3QAumLHwoBkLa9q0/hpj7ARjLB4KhWKl6pWNlksnn6zd+Zh776dvDFaiU/IJ3GysBig7QN7zGsAYZ4yvqSQAK5Vwf++Hj3MhG5G63uWM/nWHWR3NG5HAYUNKv64PHxqobbcrDWAIIbY5jtNXPNHUe/yR7N/TX+VGJwIz3X0cngIA8GhQxzuegq+2eogF81sHthxwi7lEtNm27f91DC9a9AARneGcv7RUWm6J9c7IaGC25xz3rs5A3nMXuCXh/jnFJt/+hKlM7u5gU6NeZrOHLcvqDQaDGwqLJgBEIpGI67qHtNadAAwekD3NQ581FC7MX7c3upNTXalTP3GVmkP9my9AOVnwKhPOpT+Q7O7D7Ld9Pn9N9TvNI98cKXa/uG2fzNuZVqXUIBEdsW37dQA507Ksjlwu9xaA2xZTxSI7pt8/cfYGBcOwRGOd1DqPcFsLwAAzHAQYULW2Bmr6GuxffvOnfx5+Lnt5bHdxAHNNOJSzMwAgAbxCRDu11gdMrfUFAGOFAQzhc8WG+plCAWYYnAu/AMDy2SyQB/JpG3nPgxmywEgCWsMXj2kGdgMXAIwf+iUAX0GphnO+buEjNKWUnYyx1wAEAHTbtv10scjmU+99Pv7ysV1520HtwWfApB8GSSS/6IHz+wTCDzcno3sebTm3cddIMZeIEgDaAWit9cemab6YTqf/MefnvUwmc1QIkeCcH8My7WmEAnPx/e366vEEm/roJJTtQOc8mLEQdM5FoGUTkYiOLcWdx3mt9fOZTObM4skutWq5lmm6/HW1Hp/oV7Nzt1/54EvhzaSYVh7CrVvmwm0tVVyIgwOtzx5dSlMIscNxnB8BqMJ6yRfRfee/t6pcbnL3yul0//CDouFO5a+Lb/cC/OLAuj2zpeqVjdXf8WqAm4WSu4CI9jPG2qpq4jXac7cbocCc8+v4WQCOEKIjmUymbkHO/yClrJt/Eemi0VWOXsnvAs/zUj6fzwXwREF52LbtfSi6ZG4lTCIamt+5klI+tFLGi5BSbiUiRUTvrrj5Aojo1Wg0Gq5E41+gImj+YjLC1wAAAABJRU5ErkJggg==
\ No newline at end of file
diff --git a/dot.svg b/dot.svg
index 6d1485c..f82df78 100644
--- a/dot.svg
+++ b/dot.svg
@@ -8,37 +8,37 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="210mm"
- height="297mm"
- viewBox="0 0 210 297"
- version="1.1"
- id="svg8"
- inkscape:export-filename="C:\Users\sigon\OneDrive\Documents\ProjectM\ProjectM\pause.png"
- inkscape:export-xdpi="5.0500002"
- inkscape:export-ydpi="5.0500002"
+ inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="dot.svg"
- inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
+ inkscape:export-ydpi="5.0500002"
+ inkscape:export-xdpi="5.0500002"
+ inkscape:export-filename="C:\Users\sigon\OneDrive\Documents\ProjectM\ProjectM\pause.png"
+ id="svg8"
+ version="1.1"
+ viewBox="0 0 210 297"
+ height="297mm"
+ width="210mm">
+ inkscape:window-x="1980"
+ inkscape:window-height="1074"
+ inkscape:window-width="1274"
+ showgrid="false"
+ inkscape:document-rotation="0"
+ inkscape:current-layer="layer13"
+ inkscape:document-units="mm"
+ inkscape:cy="725.39498"
+ inkscape:cx="421.60463"
+ inkscape:zoom="0.70710678"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
@@ -52,183 +52,359 @@
+ inkscape:groupmode="layer"
+ style="display:none">
+ transform="matrix(1.0041135,0,0,1.0041135,-0.50185273,-0.61775949)"
+ style="stroke:#ffffff;stroke-width:0.263499;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
+ id="g2484">
+ x="57.680199"
+ width="10.835319"
+ height="10.835319"
+ preserveAspectRatio="none"
+ xlink:href="data:image/png;base64,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 "
+ id="image2473" />
Sig's Works Presents...
+ x="70.02462"
+ y="153.41272"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Comfortaa;-inkscape-font-specification:Comfortaa;stroke:#ffffff;stroke-width:0.263499;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill">Sig's Works Presents...
+ inkscape:label="Checkmark">
+ style="fill:#27841b;fill-opacity:1;stroke:#8c7e7e;stroke-width:2.64583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:export-xdpi="3.8018837"
+ inkscape:export-ydpi="3.8018837" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id="layer2"
+ inkscape:groupmode="layer">
-
-
+
+ transform="rotate(90)"
+ style="fill:#206476;fill-opacity:1;fill-rule:evenodd;stroke:#bcbcbc;stroke-width:0.964999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1010-9"
+ width="44.901279"
+ height="198.84853"
+ x="128.82391"
+ y="-205.79753"
+ ry="0" />
+
+ style="display:inline;fill:#206476;fill-opacity:1;stroke:#878787;stroke-width:0.26766px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:export-xdpi="4.0677924"
+ inkscape:export-ydpi="4.0677924" />
+ inkscape:groupmode="layer"
+ inkscape:label="Dot">
+ cx="104.04629"
+ id="path889"
+ style="fill:#a1a1a1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ inkscape:groupmode="layer"
+ style="display:none">
+ id="path833" />
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ inkscape:label="TrashCan"
+ style="display:none">
+ inkscape:export-ydpi="5.0500002">
+ width="88.198944"
+ height="106.90781"
+ x="70.054749"
+ y="113.17126" />
+ cx="113.08513"
+ cy="121.45661"
+ rx="43.030392"
+ ry="8.2853546" />
+ width="4.8108511"
+ height="82.051743"
+ x="87.694542"
+ y="134.5528" />
+ width="3.7417734"
+ height="82.853554"
+ x="112.81787"
+ y="134.5528" />
-
+ id="rect841"
+ width="3.2072344"
+ height="84.991714"
+ x="135.00124"
+ y="132.41466" />
+
+ d="m 101.29762,83.532737 -2.333172,15.193188 3.850092,14.468955 -15.170572,2.47597 -12.571053,8.13281 -7.042754,-13.66295 -11.619428,-9.44261 10.817909,-10.920138 5.389851,-13.968659 13.72859,6.913934 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="-0.039341711"
+ sodipodi:arg1="-0.67941381"
+ sodipodi:r2="17.335001"
+ sodipodi:r1="25.2651"
+ sodipodi:cy="99.407738"
+ sodipodi:cx="81.64286"
+ sodipodi:sides="5"
+ id="path845-0"
+ style="fill:#000000;fill-rule:evenodd;stroke:#999999;stroke-width:7.99999"
+ sodipodi:type="star"
+ transform="rotate(26.564727,96.570001,105.51357)" />
X
+ x="57.499897"
+ y="122.5257"
+ style="font-size:84.1219px;fill:#ff0000;fill-opacity:1;stroke-width:0.4929">X
+ inkscape:label="PlayArrow"
+ style="display:none">
+ style="fill:#007f19;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:export-xdpi="3.9423411"
+ inkscape:export-ydpi="3.9423411" />
-
+ id="layer8"
+ inkscape:label="Pause">
+
+ inkscape:groupmode="layer"
+ style="display:none">
+ cx="48.643051"
+ cy="130.96207"
+ r="59.868374"
+ inkscape:export-xdpi="19.709999"
+ inkscape:export-ydpi="19.709999" />
+ inkscape:export-xdpi="12.005341"
+ inkscape:export-ydpi="12.005341">
+ height="55.940475"
+ width="55.940475"
+ id="rect833-8"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#999999;stroke-width:10;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+ style="fill:#138951;fill-opacity:1;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ inkscape:export-xdpi="10.727505"
+ inkscape:export-ydpi="10.727505">
+ cx="109.23513"
+ id="path2777"
+ style="fill:#3b9067;fill-opacity:1;fill-rule:evenodd;stroke:#3db1c5;stroke-width:10;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ sodipodi:argument="-48.361485"
+ sodipodi:radius="25.369497"
+ sodipodi:revolution="7.95646"
+ sodipodi:expansion="1"
+ sodipodi:cy="224.13986"
+ sodipodi:cx="108.47916"
+ id="path2779"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583"
+ sodipodi:type="spiral" />
+ id="layer10"
+ inkscape:label="Gear">
+ style="display:inline"
+ inkscape:export-xdpi="71.290001"
+ inkscape:export-ydpi="71.290001">
-
+ height="225.04095"
+ x="138.07565"
+ y="-250.96609"
+ transform="rotate(90)" />
-
+
+ height="225.04095"
+ x="171.13419"
+ y="-23.265415"
+ transform="rotate(22.193825)" />
+ width="29.605049"
+ id="rect841-1-37"
+ style="display:inline;fill:#4c4c4c;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.05301;stroke-linejoin:round" />
+
+ cx="137.91107"
+ id="path839"
+ style="display:inline;fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.774999;stroke-linejoin:round" />
+ cx="138.44023"
+ cy="156.06389"
+ r="76.596184" />
+ inkscape:label="Reset"
+ style="display:none">
+ inkscape:export-ydpi="3.4793682">
+ style="fill:#000000;fill-opacity:1"
+ id="g1544">
+ id="path1538" />
+ id="path1540"
+ sodipodi:nodetypes="ccccc" />
+ style="fill:#000000;fill-opacity:1">
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ d="m 162.15178,126.24404 h -27.44794 l 41.64763,41.64763 35.4576,-41.69421 -24.33288,0.0466"
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ inkscape:groupmode="layer"
+ style="display:none">
+ style="fill:#c0c0c0;fill-opacity:1;stroke:#888888;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
diff --git a/game.js b/game.js
index 0c58c36..8a29f1d 100644
--- a/game.js
+++ b/game.js
@@ -128,6 +128,9 @@ var LAST_MOUSE_Y=0;
var DRAG_X = -1
var DRAG_Y = -1
var BOT_DID_NOT_REACH_EXIT = false
+var TOOLTIPDISPLAYED = undefined
+var MOVEMODE = false
+var STARTDRAG = undefined
var MESSAGETIMER = -1
var EXPECTED = true //True means the bot was supposed to accepted, false means the bot was supposed to be rejected.
@@ -218,12 +221,18 @@ var DELETE_BUTTON = {img:ID_DELETE,x:-1,y:-1,w:-1,h:-1,cb:toggleDeleteMode,toolt
}
var HOME_BUTTON = {img:ID_HOME,x:-1,y:-1,w:-1,h:-1,cb:goHome,tooltip:"Go back to the level selection menu."
}
+var MOVE_BUTTON = {img:ID_MOVE_BUTTON,x:2,y:2,w:32,h:32,cb:toggleMoveMode,tooltip:"Scroll the view area."
+}
var MENU = {
visible:false,
buttons:[CONVEYOR_BUILD_BUTTON,BRANCH_BUILD_BUTTON,WRITER_BUILD_BUTTON,ROTATE_COUNTERCLOCKWISE_BUTTON,ROTATE_CLOCKWISE_BUTTON,DELETE_BUTTON,PLAY_BUTTON,RESET_BUTTON,HOME_BUTTON]
}
+function toggleMoveMode() {
+ setMoveMode(!MOVEMODE)
+}
+
function saveLevelData() {
completedStages[gameStage.name].data=deepCopy(gameGrid)
localStorage.setItem("game",JSON.stringify(completedStages))
@@ -233,12 +242,16 @@ function goHome() {
saveLevelData()
MENU.visible=false
BRIDGEDBELT=false
+ setMoveMode(false)
+ GRID_X=20
+ GRID_Y=20
ITEM_SELECTED=undefined
for (var button of MENU.buttons) {
if (button.submenu_buttons) {
button.lastselected=button.default
}
}
+ gameGrid=[]
gameState=MAINMENU
}
@@ -406,6 +419,27 @@ var STAGE2 = {
return true;
}
}
+var STAGE3 = {
+ name:"Balance",
+ objective:"Accept bots with the same number of red and blue.",
+ level:createGrid(15,15,14,7),
+ start:{x:0,y:7},
+ accept:(tape)=>{
+ var reds=0;
+ var blues=0;
+ for (var i=0;i=500) {
+ if (MOBILE&&new Date().getTime()-MOUSEOVERTIME>=4000 || !MOBILE&&new Date().getTime()-MOUSEOVERTIME>=1000) {
mouseOverButton = button
}
}
@@ -1932,9 +2019,17 @@ function RenderMenu(ctx) {
if (!mousedOver) {
MOUSEOVERTIME=-1
}
+
+ if (gridModeIsAvailable()) {
+ AddButton(MOVE_BUTTON.img,MOVE_BUTTON.x,MOVE_BUTTON.y,ctx,MOVE_BUTTON,MOVE_BUTTON.cb)
+ }
}
}
+function gridModeIsAvailable() {
+ return (gameGrid.length>5||(gameGrid.length>0&&gameGrid[0].length>5))&&!DELETEMODE
+}
+
function AddButton(img,x,y,ctx,button,dir=0) {
ctx.fillStyle="#b5b5b5"
ctx.fillRect(x,y,32,32)
diff --git a/image_data.js b/image_data.js
index 468775f..a24fa59 100644
--- a/image_data.js
+++ b/image_data.js
@@ -41,6 +41,7 @@ const [IMAGE_SIG,ID_SIG] = addImageUTF8("SigsWorks.svg")
const [IMAGE_TITLE,ID_TITLE] = addImageUTF8("THE GREAT CONVERSION_old.png")
const [IMAGE_COLORTITLE,ID_COLORTITLE] = addImageUTF8("THE GREAT CONVERSION_color.png")
const [IMAGE_CHECKMARK,ID_CHECKMARK] = addImage("iVBORw0KGgoAAAANSUhEUgAAABUAAAAgCAYAAAD9oDOIAAAACXBIWXMAAACVAAAAlQGr+O8LAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAA0JJREFUSIml1l9oU1ccB/DvOTe2TSPae5ObP/1nervKiqBuDn0RfJuCID7YB58UHOxhqzLtg7S1HLD+QzGyMjaD4IsP4oOMTfBF8C9WQY2yMUS2JFubOJObpHFtbU3OPT5o60lMu+R6337f7+98uIeEEIKPeAbZt9tiiP/wmhb5XNZhBU3Hx6ApZHY+cERa52YqCAII/EztgoyxhizNrpOzZrTkfUsC52yjr0hqV5REPylBeeC3gYGjv9tGTWFunSLTZG6mgkCDeh8AbKGnGdNSNLVWztpEW94HNWwbHbfGe2M03iZnfuF/3M9OP7ON5pTcpgIK8zMFhSrU0fdzjQ9j3xkJmiy5ervVnvMUtbBtNI/8vjGMqXIWgC9yaPhUzDaaJuYGi4j5WYECN1fvyDs1ocPswMa/6dhqOQtaK0x1iT8sZzWhz5H+Ko2UU868whcZHDySsIVe6ulRTGKuE+R9psABjS+7Xb5bNfqoW98RpbFuOeu0gi/c9aVXrwnNkOyOl+SlImc69MjAwNEX5buO/qHeAwUyq5UXar37TH//sTQAnOzrc43SJ5/LfR3q0FRUb1V6AUeWZjZcd9zsKQmFgs2FL2cAHAaA9NLJPX8pUUPe6eDBZCttOVsJpc3cG/IL/39yWCQcEyK/fv7qyGyewUzJQQ88kf2MZSuiQ4fPjBq842F5kSf5VYyxxpOMeZ8rqc/krh51ULl6vRIIvPugvES/7BKNllzEaXzFa5jbkxjfFyfxgNwZ3PhHn1XPLYoaCf5Tl9X1h1xMkimaQ25LBpmNHMWSQ27hfnzwxIn8oujX4XDBL3w3aNk3bBrTXySVxBo5a0ADNOK+thA4jwKAXmg6bljGv3L5VHn26ThJLpczgxvxoPCdrwodPBJKtFotd+VygkwQAVFywAM18g1jk1WhABCA70cvvFMLLTvhFMuhXV0M/ABlLHTN4MFHCy13ciPaPOG8UBMKADrXf3XCKSota0KL7A+FXtWMtufqv1/JO5+W5y64LA9xX/k/sCK6d2Rk1iv8t0lZ1cmNPwMmvWgLBYAmRT9uiI6SnzRVNEX2jozMVoNW/Nc3fOhUrJftvueijWvfLjmoB55fqgEB4A0kVBrydGAbIQAAAABJRU5ErkJggg==")
+const [IMAGE_MOVE_BUTTON,ID_MOVE_BUTTON] = addImage("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAADpAAAA6QFUkhRLAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAA9VJREFUWIXtV1toXEUY/mbOye7Mf/berMZIGkxtSsWKNY0ltSWKl4iYh7ZQCgGLFCmSFxGkDxGkYgUrCBW1qNQnQbF46Wq0FiKBgLWNISnEXgJqTDSxqdk0u+nZs3vO7PiSxO2aPOxum6d8MC//zHeZ4fxzGAMVgIg6OeezSqnpSnTKgpRyLRGliej0ipsDABEliEgTkZZS7l1Rcynl3gXz+TEZiUQi5WgZpRKi0WhYKZUAECwoB5RSluu635Wqx0slZLPZ3QAumLHwoBkLa9q0/hpj7ARjLB4KhWKl6pWNlksnn6zd+Zh776dvDFaiU/IJ3GysBig7QN7zGsAYZ4yvqSQAK5Vwf++Hj3MhG5G63uWM/nWHWR3NG5HAYUNKv64PHxqobbcrDWAIIbY5jtNXPNHUe/yR7N/TX+VGJwIz3X0cngIA8GhQxzuegq+2eogF81sHthxwi7lEtNm27f91DC9a9AARneGcv7RUWm6J9c7IaGC25xz3rs5A3nMXuCXh/jnFJt/+hKlM7u5gU6NeZrOHLcvqDQaDGwqLJgBEIpGI67qHtNadAAwekD3NQ581FC7MX7c3upNTXalTP3GVmkP9my9AOVnwKhPOpT+Q7O7D7Ld9Pn9N9TvNI98cKXa/uG2fzNuZVqXUIBEdsW37dQA507Ksjlwu9xaA2xZTxSI7pt8/cfYGBcOwRGOd1DqPcFsLwAAzHAQYULW2Bmr6GuxffvOnfx5+Lnt5bHdxAHNNOJSzMwAgAbxCRDu11gdMrfUFAGOFAQzhc8WG+plCAWYYnAu/AMDy2SyQB/JpG3nPgxmywEgCWsMXj2kGdgMXAIwf+iUAX0GphnO+buEjNKWUnYyx1wAEAHTbtv10scjmU+99Pv7ysV1520HtwWfApB8GSSS/6IHz+wTCDzcno3sebTm3cddIMZeIEgDaAWit9cemab6YTqf/MefnvUwmc1QIkeCcH8My7WmEAnPx/e366vEEm/roJJTtQOc8mLEQdM5FoGUTkYiOLcWdx3mt9fOZTObM4skutWq5lmm6/HW1Hp/oV7Nzt1/54EvhzaSYVh7CrVvmwm0tVVyIgwOtzx5dSlMIscNxnB8BqMJ6yRfRfee/t6pcbnL3yul0//CDouFO5a+Lb/cC/OLAuj2zpeqVjdXf8WqAm4WSu4CI9jPG2qpq4jXac7cbocCc8+v4WQCOEKIjmUymbkHO/yClrJt/Eemi0VWOXsnvAs/zUj6fzwXwREF52LbtfSi6ZG4lTCIamt+5klI+tFLGi5BSbiUiRUTvrrj5Aojo1Wg0Gq5E41+gImj+YjLC1wAAAABJRU5ErkJggg==")
function addImage(base64){
var newImage = new Image()
diff --git a/move.png b/move.png
new file mode 100644
index 0000000..a92b267
Binary files /dev/null and b/move.png differ