From 5b826a77ceaeb8dcdeaca446b5d8240a84a6a449 Mon Sep 17 00:00:00 2001
From: c7h-alb-u1 <ibrahim.zakari@stud.hs-hannover.de>
Date: Wed, 13 Oct 2021 22:35:20 +0200
Subject: [PATCH] Update src/GameFrame.java, src/GamePanel.java, src/Main.java,
 src/Walls.java, src/ReadFile.java, res/ggwp.png, res/walls1.txt,
 res/walls2.txt, res/walls3.txt, res/walls4.txt, res/walls5.txt,
 res/walls6.txt, .classpath, .project, bin/GameFrame.class,
 bin/GamePanel.class, bin/ggwp.png, bin/Main.class, bin/ReadFile.class,
 bin/Walls.class, bin/walls1.txt, bin/walls2.txt, bin/walls3.txt,
 bin/walls4.txt, bin/walls5.txt, bin/walls6.txt files Deleted
 src/GameObject.java

---
 .classpath          |   7 +++
 .project            |  17 ++++++
 bin/GameFrame.class | Bin 0 -> 2803 bytes
 bin/GamePanel.class | Bin 0 -> 3781 bytes
 bin/Main.class      | Bin 0 -> 439 bytes
 bin/ReadFile.class  | Bin 0 -> 2137 bytes
 bin/Walls.class     | Bin 0 -> 2158 bytes
 bin/ggwp.png        | Bin 0 -> 6248 bytes
 bin/walls1.txt      |  16 ++++++
 bin/walls2.txt      |  16 ++++++
 bin/walls3.txt      |  16 ++++++
 bin/walls4.txt      |  16 ++++++
 bin/walls5.txt      |  16 ++++++
 bin/walls6.txt      |  16 ++++++
 res/ggwp.png        | Bin 0 -> 6248 bytes
 res/walls1.txt      |  16 ++++++
 res/walls2.txt      |  16 ++++++
 res/walls3.txt      |  16 ++++++
 res/walls4.txt      |  16 ++++++
 res/walls5.txt      |  16 ++++++
 res/walls6.txt      |  16 ++++++
 src/GameFrame.java  |  60 +++++++++++++++-----
 src/GameObject.java |  19 -------
 src/GamePanel.java  |  74 ++++++++++++------------
 src/ReadFile.java   |  65 +++++++++++++++++++++
 src/Walls.java      | 134 +++++++++++++++-----------------------------
 26 files changed, 410 insertions(+), 158 deletions(-)
 create mode 100644 .classpath
 create mode 100644 .project
 create mode 100644 bin/GameFrame.class
 create mode 100644 bin/GamePanel.class
 create mode 100644 bin/Main.class
 create mode 100644 bin/ReadFile.class
 create mode 100644 bin/Walls.class
 create mode 100644 bin/ggwp.png
 create mode 100644 bin/walls1.txt
 create mode 100644 bin/walls2.txt
 create mode 100644 bin/walls3.txt
 create mode 100644 bin/walls4.txt
 create mode 100644 bin/walls5.txt
 create mode 100644 bin/walls6.txt
 create mode 100644 res/ggwp.png
 create mode 100644 res/walls1.txt
 create mode 100644 res/walls2.txt
 create mode 100644 res/walls3.txt
 create mode 100644 res/walls4.txt
 create mode 100644 res/walls5.txt
 create mode 100644 res/walls6.txt
 delete mode 100644 src/GameObject.java
 create mode 100644 src/ReadFile.java

diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..74f62e7
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,7 @@
+<?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="src"/>
+	<classpathentry kind="src" path="res"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/.project b/.project
new file mode 100644
index 0000000..86872b1
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>MazeGame</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/bin/GameFrame.class b/bin/GameFrame.class
new file mode 100644
index 0000000000000000000000000000000000000000..7ddad53284790d0e768677b4b4d4c385702466ec
GIT binary patch
literal 2803
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

literal 0
HcmV?d00001

diff --git a/bin/GamePanel.class b/bin/GamePanel.class
new file mode 100644
index 0000000000000000000000000000000000000000..f97b802e1acc2a824a8fe6aa934476c6883e1644
GIT binary patch
literal 3781
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

literal 0
HcmV?d00001

diff --git a/bin/Main.class b/bin/Main.class
new file mode 100644
index 0000000000000000000000000000000000000000..fe4dcc691dedccd7463f01b4e0ba6bd0eb82d839
GIT binary patch
literal 439
zcmX^0Z`VEs1_l!bX?6xCMg|t&#LPT)1{OvJfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk-
z5<5l)W)00SMg|t={FGEK24)6M9tKthHbw@1pUk{eztY^K)S{5Yq?}Yn1|gsP<iwn?
z#G*_PA1cUFl95@=$iU_Uvdfy0fh9LFGmnu$Oe5L{VP|kjQD$DcwPqMQgCHXVr+Z><
zs#{TFZYl?ZFe3w}Z(>!d0!WODL4ZLNWW5+8gSdvLCpHrp8CVjF(u)}xgt1t_$iNkx
zUs{x$>Xr#|Fek`OdLU;oC^9fIFf)Jv69Xg2gA9xe><kPH`V5Q=j0_A6tXkU{I5sjc
zFfcK2F)%Q&fdv^ExEUB2c))B{1|9}p1_lOB20jLUsAgLR7O))uZUzBCW)nf?Y$2iT
i3?c|)xEPo~W;5_Hup=48&mhhq!N9=4$RG)}PznIrk5A_S

literal 0
HcmV?d00001

diff --git a/bin/ReadFile.class b/bin/ReadFile.class
new file mode 100644
index 0000000000000000000000000000000000000000..e7ab8f9608e4e81c3c5c16f156bc9309c428c037
GIT binary patch
literal 2137
zcmX^0Z`VEs1_l#`9CijKMh1?c)Wj6G%$!tq1{OvJfvm)`ME#t^ymWp4q^#8B5=I90
z;^f4<ywoB_24NqtY-vemj(#vi(3+8fIXORvk%7^Zk%2ikv4D|5I2xi1Y)EiPQD$Dc
zH6sI?O=ezZi5(*Yvxa6EBLj<beo87A12Y3Z4+A#?4<`d7gCGwBI|BzhgD{FKAO?Ws
zMR^!F8Mqi3_<b_-QvFJElTwR95|eUL85x9p@{<#D!V-%zL42qnOG!p%F(U()56pko
zj0_z41*v%;zcMngXn1Odu`|drG6-UL3gj+%9tH&lMMegW^wbjPoW$Z{Mh0OGO(dUz
z1+BRllo?dn8B`b<_`$}2Jq?!PVNhdGXJp`m>G#P`OaTR=B&I14DQgY}O-2T;^2D5+
zVne->iV`jcZ3bO-1|3EQQ8cq58h9A=81xw#gws<?f>Mj~ON)|I9gBlYic%AE85uM+
zklYFhL~E$?GxPO5^9o8!AWE&d7-Sd>L9t-O$RGjLg{DL^3={z-JPfQ1Y@7^c3>NGR
z=BTk$SzMBu%fn#FV8zJ5oL^eP$RG-_KQmuHpeQpBW*G;A4I_haa(-z}ib7s~i9%Xt
zUWx)JMz|R47#!Fc>=_w^!Jb9c$HU;r;KazlUH~#GCy$Xq6zWiLc*DFG#=+nM3qd1L
z2y!sE!T81yz6XqN0^xhX_@)rP4~%aH;<GdO!Q2D3$h9IlwV)(3KaY`tB{#9akCA~f
z74B1171oRlyul@j$=SY%1<(}9o}O9~k_k$%Vj7;F(8vJmf_i|9L5LxYhasFHgpq->
zxHPF4oOu`-7%LbV7%LeWSTpldQY%2|9UMf+S{WHQilF%z6rXWC4Dk#Jj0`M!sTC!R
z3?e9L4sM$aLlO@|GD8X@1A9hdu^(6|vxa6ABLib5BLio0PJVGJByMCFGI$s=8F&~O
zSiz!<3|ztB1P794WZ;G6F+GsO7!(;88JHOu7?>HDKq-cSfq@Z}wHZKwlYxtYfq|8Q
z5tQv27#VmO7#KVmm>3ut7#M`LwlnZ)v20}!&=L^X%OJFsL1ZHX0|OI-7y|=?5CaPX
z0|N^K3j-SiCj&c}FV4Wgzys0BAi*FBwn&OW8e%MyIs+@n8H|k5EDIPkwRSVeL~3ng
zklV(fB&4y8L2EmM!Bz(2<qS`JH!+wBS#M*oUCwYrniXBCGm_GsNJ`gAv!N?>MN-;_
zq_jzz9bKtAlG0=(rQy;X=t@12lv*Gu)sYrpTfm@(;xBI`wLEaO8yVObSQ%s(<QaS!
z3>e%Qycm2Lq8W-9N*R0^+8E|CEMV|u*vN2#;WUFU!(E0i4Br`i8JNL=o(2w7E(TTx
z9tIf(UIqmQJ_Zd20R{sGAqIB_VFqso5r$v}F@|Uc35FsDNro~8DTX=*8HP3nIfl6m
z@(c?Z6c|=AC^2kgP+>U1pvrKDL5<-Gg9gK01}%m!4B8AoK&2alJ_9HsgBUm%7#JC$
z5eZ`XGjK34GAJ-`Fa$6JGB7cC!&zl;)<QVz44m}?&I)2+U{GM-iDzf<<&MKbfFwY6
z1T%y{5)DHPIEgVZ2xx6#5RoyGmS#!V#t`bKy8)gMxfqxj7#NHg_!x}A?$!b)OaYj?
z83Y(2!0u*X5MYR8;9y{4;A3E7h+>FlU}j)shyf>9P^xbN=MM%3&E*Vo%r?szgh4h+
zYi(gL-o_9c+``BxEg-P)|67Pa;;jGoKzRWYEm90@3=9nB49pA`3>*xW45ADc3~~(S
z3>pkJU?+)zou~<Q5-WowLn_!wpy1$UU}65lz{1G?3!Dqn;O;SFU<79+4v3BEAnPDm
a58`8c26hGqu<?*A#{o5-ks%8lHrW8C4ZimP

literal 0
HcmV?d00001

diff --git a/bin/Walls.class b/bin/Walls.class
new file mode 100644
index 0000000000000000000000000000000000000000..2fc35d2197f20890fe5155e7b6f4c008e56a08c5
GIT binary patch
literal 2158
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

literal 0
HcmV?d00001

diff --git a/bin/ggwp.png b/bin/ggwp.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee41f582dc6ee5ad4bfacc21daec4b79b1c42bfb
GIT binary patch
literal 6248
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

literal 0
HcmV?d00001

diff --git a/bin/walls1.txt b/bin/walls1.txt
new file mode 100644
index 0000000..5070330
--- /dev/null
+++ b/bin/walls1.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+gggggggggggggggw
+gggggggggggggggw
+gggggggggggggggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwwggw
+wwwwwwwwwwwwwwgw
+wwwwwwwwwwwwwwgw
\ No newline at end of file
diff --git a/bin/walls2.txt b/bin/walls2.txt
new file mode 100644
index 0000000..24c9985
--- /dev/null
+++ b/bin/walls2.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+ggwwwwwwwwwwwwww
+wgggggwwwwwwwwww
+wwwwwgwwwwwwwwww
+wwwwwgggwwwwwwww
+wwwwwwwgwwwwwwww
+wwwwwwwgwwwwwwww
+wwwwwwwgwwwwwwww
+wwwwwwwgwwgggwww
+wwwwwwwgwwgwgwww
+wwwwwwwggggwgwww
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwwwgw
+wwwwwwwwwwwwwwgw
+wwwwwwwwwwwwwwgw
+wwwwwwwwwwwwwwgw
\ No newline at end of file
diff --git a/bin/walls3.txt b/bin/walls3.txt
new file mode 100644
index 0000000..d1ab37d
--- /dev/null
+++ b/bin/walls3.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+ggwggggwwwgggwww
+wgggwwgggwgwgggw
+wwwwwwwwgggwwwgw
+wwwwwwwwwwwwgggw
+wwwwwwwggggwgwww
+wwwwwwwgwwgggwww
+wwggggggwwwwwwww
+wwgwgwwwwwwwwwww
+wwgggwwwwwwwwwww
+wwwgwwwggggwwwww
+wgggwwwgwwgwgggw
+wgwwwwwgwwgwgwgw
+wgggwwggwwgwgwgw
+wwwggggwwwgggwgw
+wwwwwwwwwwwwwwgg
\ No newline at end of file
diff --git a/bin/walls4.txt b/bin/walls4.txt
new file mode 100644
index 0000000..e590ddd
--- /dev/null
+++ b/bin/walls4.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+ggggwwwwwwwwwwww
+wwwgwwgggwwwwwww
+wwwgwwgwggwwwwww
+wwwgwwgwwgwwwwww
+wwwggggwwgwwwwww
+wwwwwwwwwgwwwwww
+wwwwwwwwwgwwwwww
+wwwwwwggggwwwwww
+wwwwwwgwwwwwwwww
+wwwwwwgggwwwwwww
+wwwwwwwwgwwwwwww
+wwwwwwwwgwwwwwww
+wwwwwwwwgggggggw
+wwwwwwwwwwwwwwgw
+wwwwwwwwwwwwwwgw
\ No newline at end of file
diff --git a/bin/walls5.txt b/bin/walls5.txt
new file mode 100644
index 0000000..65ab082
--- /dev/null
+++ b/bin/walls5.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+ggggwgggwgggwwww
+wwwgwgwgwgwgwwww
+wwwgwgwgwgwgwwww
+wgggwgwgwgwgwwww
+wgwwwgwgwgwgwwww
+wgggggwgwgwgwwww
+wwwwwwwgwgwgwwww
+wgggggggwgwgwwww
+wgwwwwwwwgwgwwww
+wgggggggggwgwwww
+wwwwwwwwwwwgwwww
+wgggggggggggwwww
+wgwwwwwwwwwwwwww
+wggggggggggggggw
+wwwwwwwwwwwwwwgw
\ No newline at end of file
diff --git a/bin/walls6.txt b/bin/walls6.txt
new file mode 100644
index 0000000..cb32e5e
--- /dev/null
+++ b/bin/walls6.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+ggwwwgggggggggww
+wgwwggwwwwwwwgww
+wgwggwwgggwgggww
+wgwgwwggwgggwwww
+ggwggwgwwwwwwwww
+gwwwgwggggggggww
+gwwggwwwwwwwwggw
+ggwgwwwwwwwwwwgw
+wgwggwgggggggggw
+ggwwgwgwwwwwwwww
+gwwggwgggggggggw
+ggwgwwwwwwwwwwgw
+wgwgwwgggggggggw
+wgggwwgwwwwwwwww
+wwwwwwgggggggggw
diff --git a/res/ggwp.png b/res/ggwp.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee41f582dc6ee5ad4bfacc21daec4b79b1c42bfb
GIT binary patch
literal 6248
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

literal 0
HcmV?d00001

diff --git a/res/walls1.txt b/res/walls1.txt
new file mode 100644
index 0000000..5070330
--- /dev/null
+++ b/res/walls1.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+gggggggggggggggw
+gggggggggggggggw
+gggggggggggggggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwwggw
+wwwwwwwwwwwwwwgw
+wwwwwwwwwwwwwwgw
\ No newline at end of file
diff --git a/res/walls2.txt b/res/walls2.txt
new file mode 100644
index 0000000..24c9985
--- /dev/null
+++ b/res/walls2.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+ggwwwwwwwwwwwwww
+wgggggwwwwwwwwww
+wwwwwgwwwwwwwwww
+wwwwwgggwwwwwwww
+wwwwwwwgwwwwwwww
+wwwwwwwgwwwwwwww
+wwwwwwwgwwwwwwww
+wwwwwwwgwwgggwww
+wwwwwwwgwwgwgwww
+wwwwwwwggggwgwww
+wwwwwwwwwwwwgggw
+wwwwwwwwwwwwwwgw
+wwwwwwwwwwwwwwgw
+wwwwwwwwwwwwwwgw
+wwwwwwwwwwwwwwgw
\ No newline at end of file
diff --git a/res/walls3.txt b/res/walls3.txt
new file mode 100644
index 0000000..d1ab37d
--- /dev/null
+++ b/res/walls3.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+ggwggggwwwgggwww
+wgggwwgggwgwgggw
+wwwwwwwwgggwwwgw
+wwwwwwwwwwwwgggw
+wwwwwwwggggwgwww
+wwwwwwwgwwgggwww
+wwggggggwwwwwwww
+wwgwgwwwwwwwwwww
+wwgggwwwwwwwwwww
+wwwgwwwggggwwwww
+wgggwwwgwwgwgggw
+wgwwwwwgwwgwgwgw
+wgggwwggwwgwgwgw
+wwwggggwwwgggwgw
+wwwwwwwwwwwwwwgg
\ No newline at end of file
diff --git a/res/walls4.txt b/res/walls4.txt
new file mode 100644
index 0000000..e590ddd
--- /dev/null
+++ b/res/walls4.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+ggggwwwwwwwwwwww
+wwwgwwgggwwwwwww
+wwwgwwgwggwwwwww
+wwwgwwgwwgwwwwww
+wwwggggwwgwwwwww
+wwwwwwwwwgwwwwww
+wwwwwwwwwgwwwwww
+wwwwwwggggwwwwww
+wwwwwwgwwwwwwwww
+wwwwwwgggwwwwwww
+wwwwwwwwgwwwwwww
+wwwwwwwwgwwwwwww
+wwwwwwwwgggggggw
+wwwwwwwwwwwwwwgw
+wwwwwwwwwwwwwwgw
\ No newline at end of file
diff --git a/res/walls5.txt b/res/walls5.txt
new file mode 100644
index 0000000..65ab082
--- /dev/null
+++ b/res/walls5.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+ggggwgggwgggwwww
+wwwgwgwgwgwgwwww
+wwwgwgwgwgwgwwww
+wgggwgwgwgwgwwww
+wgwwwgwgwgwgwwww
+wgggggwgwgwgwwww
+wwwwwwwgwgwgwwww
+wgggggggwgwgwwww
+wgwwwwwwwgwgwwww
+wgggggggggwgwwww
+wwwwwwwwwwwgwwww
+wgggggggggggwwww
+wgwwwwwwwwwwwwww
+wggggggggggggggw
+wwwwwwwwwwwwwwgw
\ No newline at end of file
diff --git a/res/walls6.txt b/res/walls6.txt
new file mode 100644
index 0000000..773c783
--- /dev/null
+++ b/res/walls6.txt
@@ -0,0 +1,16 @@
+gwwwwwwwwwwwwwww
+ggwwwgggggggggww
+wgwwggwwwwwwwgww
+wgwggwwgggwgggww
+wgwgwwggwgggwwww
+ggwggwgwwwwwwwww
+gwwwgwggggggggww
+gwwggwwwwwwwwggw
+ggwgwwwwwwwwwwgw
+wgwggwgggggggggw
+ggwwgwgwwwwwwwww
+gwwggwgggggggggw
+ggwgwwwwwwwwwwgw
+wgwgwwgggggggggw
+wgggwwgwwwwwwwww
+wwwwwwgggggggggw
\ No newline at end of file
diff --git a/src/GameFrame.java b/src/GameFrame.java
index 68b715d..cf333e9 100644
--- a/src/GameFrame.java
+++ b/src/GameFrame.java
@@ -11,6 +11,9 @@ public class GameFrame extends JFrame implements ActionListener {
     JPanel start;
     JButton resetButton;
     JButton startGame;
+    JButton nextMap;
+    JButton previousMap;
+    int mapN = 1;
 
     public GameFrame(int width, int height, String title) {
 
@@ -20,52 +23,83 @@ public class GameFrame extends JFrame implements ActionListener {
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.setLocationRelativeTo(null);
 
-
         resetButton = new JButton();
         resetButton.setText("Reset");
-        resetButton.setSize(100,30);
+        resetButton.setSize(100, 30);
         resetButton.addActionListener(this);
         resetButton.setFocusable(false);
 
         startGame = new JButton();
         startGame.setText("Start");
-        startGame.setSize(200,200);
-        startGame.setLocation(250,250);
         startGame.addActionListener(this);
         startGame.setFocusable(false);
 
+        nextMap = new JButton();
+        nextMap.setText("Next Map");
+        nextMap.addActionListener(this);
+        nextMap.setFocusable(false);
+
+        previousMap = new JButton();
+        previousMap.setText("Previous Map");
+        previousMap.addActionListener(this);
+        previousMap.setFocusable(false);
+
         score = new JPanel();
         score.setBackground(Color.black);
+        score.add(previousMap);
         score.add(resetButton);
+        score.add(nextMap);
         score.setFocusable(true);
 
         start = new JPanel();
         start.setBackground(Color.black);
-        start.setSize(getWidth(),getHeight());
-        start.setLocation(0,0);
-        start.add(startGame);
-
+        start.setSize(getWidth(), getHeight());
+        start.setLocation(0, 0);
+        start.add(startGame, BorderLayout.CENTER);
         this.add(start);
         this.setVisible(true);
+
     }
 
     @Override
     public void actionPerformed(ActionEvent e) {
-        if(e.getSource() == resetButton){
+        if (e.getSource() == resetButton) {
             this.remove(game);
-            game = new GamePanel();
+            game = new GamePanel(mapN);
             this.add(game);
             SwingUtilities.updateComponentTreeUI(this);
             game.requestFocus();
         }
-        if(e.getSource() == startGame){
+        if (e.getSource() == startGame) {
             this.remove(start);
-            game = new GamePanel();
-            this.add(score,BorderLayout.NORTH);
+            mapN = 1;
+            game = new GamePanel(mapN);
+            this.add(score, BorderLayout.NORTH);
             this.add(game);
             SwingUtilities.updateComponentTreeUI(this);
             game.requestFocus();
         }
+        if (e.getSource() == nextMap) {
+            if (mapN < 6) {
+                this.remove(game);
+                mapN++;
+                game = new GamePanel(mapN);
+                this.add(game);
+                SwingUtilities.updateComponentTreeUI(this);
+                game.requestFocus();
+            }
+
+        }
+        if (e.getSource() == previousMap) {
+            if (mapN >= 1) {
+                this.remove(game);
+                mapN--;
+                game = new GamePanel(mapN);
+                this.add(game);
+                SwingUtilities.updateComponentTreeUI(this);
+                game.requestFocus();
+            }
+        }
     }
 
 }
diff --git a/src/GameObject.java b/src/GameObject.java
deleted file mode 100644
index fe33303..0000000
--- a/src/GameObject.java
+++ /dev/null
@@ -1,19 +0,0 @@
-import java.awt.*;
-import java.awt.event.*;
-
-public class GameObject extends Rectangle{
-
-    Color color;
-
-    GameObject(int x, int y, int width, int height, Color color){
-        this.x=x;
-        this.y=y;
-        this.width=width;
-        this.height=height;
-        this.color=color;
-    }
-    public void draw(Graphics g) {
-        g.setColor(this.color);
-        g.fillRect(this.x, this.y, this.width, this.height);
-    }
-}
diff --git a/src/GamePanel.java b/src/GamePanel.java
index 364208a..7ce8836 100644
--- a/src/GamePanel.java
+++ b/src/GamePanel.java
@@ -4,79 +4,81 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
 import java.awt.event.KeyListener;
-import java.util.concurrent.TimeUnit;
 
 public class GamePanel extends JPanel implements ActionListener, KeyListener {
 
     private static final long serialVersionUID = 1L;
+    ImageIcon ggwp;
+    ImageIcon ground;
+    ImageIcon steve;
 
     Timer timer = new Timer(5, this);
-    int x = 0, y = 0, velX = 0, velY = 0, veldX = 0, veldY = 0;
-    int playerSize = 22;
+    int x = 10, y = 10, velX = 0, velY = 0, veldX = 0, veldY = 0;
+    int playerSize = 27;
     int movmentSpeed = 4;
     int faildRounds;
 
-    ImageIcon ggwp;
-
-    private Walls finishWall;
     private Walls walls;
-    private boolean play = true;
+    private boolean running;
+    private boolean nextMap = false;
 
-    public GamePanel() {
+    public GamePanel(int mapN) {
         timer.start();
         addKeyListener(this);
         setFocusable(true);
         setFocusTraversalKeysEnabled(false);
-        walls = new Walls();
-        ggwp = new ImageIcon("res\\ggwp.png");
-        this.setSize(817,840);
-        this.setLocation(100,0);
+        running = true;
+        walls = new Walls(mapN);
+        ggwp = new ImageIcon(getClass().getClassLoader().getResource("ggwp.png"));
+        this.setSize(817, 840);
+        this.setLocation(100, 0);
         this.requestFocus(true);
+
     }
 
     public void paintComponent(Graphics g) {
         super.paintComponent(g);
 
-        g.setColor(Color.black);
-        g.fillRect(0,0,getWidth(),getWidth());
+        // Background;
+        g.setColor(Color.cyan);
+        g.fillRect(0, 0, getWidth(), getWidth());
 
-        //Walls
-        walls.draw(this,g);
+        // Walls
+        walls.draw(this, g);
 
-        //Player
-        if(play) {
-            g.setColor(Color.red);
-            g.fillOval(x, y, playerSize, playerSize);
+        // Player
+        if (running) {
+            g.setColor(Color.blue);
+            g.fillRect(x, y, playerSize, playerSize);
         }
-        if(walls.wallsCollision(x,y,playerSize,playerSize)){
-            x = 0;
-            y=0;
+        if (walls.wallsCollision(x, y, playerSize, playerSize)) {
+            x = 10;
+            y = 10;
         }
-        if(walls.finishWallsCollision(x,y,playerSize,playerSize)){
-            play=false;
+        if (walls.finishWallsCollision(x, y, playerSize, playerSize)) {
+            running = false;
         }
-        if(!play) {
-            gameOver(g);
+        if (!running) {
+            RoundFinishe(g);
         }
 
     }
 
-    public void gameOver(Graphics g) {
-        if(!play){
+    public void RoundFinishe(Graphics g) {
+        if (!running) {
             g.setColor(Color.black);
-            g.fillRect(0,0,getWidth(),getHeight());
-            ggwp.paintIcon(this,g,280,250);
+            g.fillRect(0, 0, getWidth(), getHeight());
+            ggwp.paintIcon(this, g, 280, 250);
             faildRounds++;
+            nextMap = true;
+
         }
     }
-    public int getFailedRounds(){
-        return faildRounds;
-    }
 
     @Override
     public void keyPressed(KeyEvent e) {
         int c = e.getKeyCode();
-        if(play) {
+        if (running) {
             if (c == KeyEvent.VK_LEFT || c == KeyEvent.VK_A)
                 veldX = -movmentSpeed;
             if (c == KeyEvent.VK_RIGHT || c == KeyEvent.VK_D)
@@ -92,7 +94,7 @@ public class GamePanel extends JPanel implements ActionListener, KeyListener {
     @Override
     public void keyReleased(KeyEvent e) {
         int c = e.getKeyCode();
-        if(play) {
+        if (running) {
             if (c == KeyEvent.VK_LEFT || c == KeyEvent.VK_A)
                 veldX = 0;
             if (c == KeyEvent.VK_RIGHT || c == KeyEvent.VK_D)
diff --git a/src/ReadFile.java b/src/ReadFile.java
new file mode 100644
index 0000000..4b57897
--- /dev/null
+++ b/src/ReadFile.java
@@ -0,0 +1,65 @@
+import java.io.File;
+import java.util.Scanner;
+
+public class ReadFile {
+    private Scanner scanner;
+    public int col = 1;
+    String[] map = new String[16];
+
+    public void openFile(int mapN) {
+        if (mapN == 1) {
+            try {
+                scanner = new Scanner(getClass().getClassLoader().getResourceAsStream("walls1.txt"));
+            } catch (Exception e) {
+                System.out.println("could not find File");
+            }
+        } else if (mapN == 2) {
+            try {
+                scanner = new Scanner(getClass().getClassLoader().getResourceAsStream("walls2.txt"));
+            } catch (Exception e) {
+                System.out.println("could not find File");
+            }
+        } else if (mapN == 3) {
+            try {
+                scanner = new Scanner(getClass().getClassLoader().getResourceAsStream("walls3.txt"));
+            } catch (Exception e) {
+                System.out.println("could not find File");
+            }
+        } else if (mapN == 4) {
+            try {
+                scanner = new Scanner(getClass().getClassLoader().getResourceAsStream("walls4.txt"));
+            } catch (Exception e) {
+                System.out.println("could not find File");
+            }
+        } else if (mapN == 5) {
+            try {
+                scanner = new Scanner(getClass().getClassLoader().getResourceAsStream("walls5.txt"));
+            } catch (Exception e) {
+                System.out.println("could not find File");
+            }
+        } else if (mapN == 6) {
+            try {
+                scanner = new Scanner(getClass().getClassLoader().getResourceAsStream("walls6.txt"));
+            } catch (Exception e) {
+                System.out.println("could not find File");
+            }
+        }
+    }
+
+    public String getTile(int x, int y) {
+        String index = map[y].substring(x, x + 1);
+        return index;
+    }
+
+    public void readFile() {
+        while (scanner.hasNext()) {
+            for (int i = 0; i < 16; i++) {
+                map[i] = scanner.next();
+            }
+        }
+    }
+
+    public void closeFile() {
+        scanner.close();
+    }
+}
\ No newline at end of file
diff --git a/src/Walls.java b/src/Walls.java
index 6596f44..5ede959 100644
--- a/src/Walls.java
+++ b/src/Walls.java
@@ -1,119 +1,73 @@
 import java.awt.*;
+import java.util.Scanner;
 
 public class Walls {
     public int unit_size = 50;
 
-    int[] wallXPos = {
-            //upper wall
-            1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
-            //left wall
-            ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-            //down wall
-            1,2,3,4,5,6,7,8,9,10,11,12,13,
-            //right wall
-            15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
-            //rest
-            1,1,1,1,
-            2,2,2,2,
-            3,3,3,3,3,
-            4,4,4,4,4,4,
-            5,5,5,5,5,5,5,5,5,
-            6,6,6,6,
-            7,7,7,7,7,7,7,
-            8,8,8,8,8,8,
-            9,9,9,9,9,9,9,9,
-            10,10,10,10,10,
-            11,11,11,11,11,11,11,
-            12,12,12,12,
-            13,13,13,
-            14,14,14
+    private Scanner scanner;
+    private String Map[] = new String[16];
+    ReadFile r = new ReadFile();
 
-            };
-    int[] wallYPos = {
-            //upper wall
-            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-            //left wall
-            2,3,4,5,6,7,8,9,10,11,12,13,14,15,
-            //down wall
-            15,15,15,15,15,15,15,15,15,15,15,15,15,
-            //right wall
-            1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
-            //rest
-            //1
-            3,8,9,12,
-            //2
-            1,3,6,12,
-            //3
-            3,6,7,10,14,
-            //4
-            2,3,7,8,10,12,
-            //5
-            2,3,4,8,9,10,11,12,13,
-            //6
-            4,8,9,13,
-            //7
-            1,2,4,6,7,8,11,
-            //8
-            4,8,11,12,13,14,
-            //9
-            1,2,4,5,6,8,10,11,
-            //10
-            1,4,8,11,13,
-            //11
-            4,6,7,8,9,11,13,
-            //12
-            8,11,13,4,
-            //13
-            8,11,13,
-            //14
-            3,8,13
-    };
+    int[][] walls = new int[16][17];
 
+    public Walls(int mapN) {
+        r.openFile(mapN);
+        r.readFile();
+        r.closeFile();
 
-    public Walls() {
+        for (int y = 0; y < 16; y++) {
+            for (int x = 0; x < 16; x++) {
+                if (r.getTile(x, y).equals("w")) {
+                    walls[y][x] = 1;
+                }
+                if (r.getTile(x, y).equals("g")) {
+                    walls[y][x] = 0;
+                }
 
+            }
+        }
     }
 
-
     public void draw(Component c, Graphics g) {
 
-        for(int i=0; i< wallXPos.length;i++)
-        {
-                g.setColor(Color.GRAY);
-                g.fillRect(wallXPos[i]*unit_size,wallYPos[i]*unit_size,unit_size,unit_size);
+        for (int i = 0; i < walls.length; i++) {
+            for (int j = 0; j < walls.length; j++) {
+                if (walls[i][j] == 1) {
+                    g.setColor(Color.black);
+                    g.fillRect(j * unit_size, i * unit_size, unit_size, unit_size);
+                }
             }
-        g.setColor(Color.yellow);
-        g.fillRect(14*unit_size,15*unit_size,2*unit_size,unit_size);
+        }
+        g.setColor(Color.red);
+        g.fillRect(14 * unit_size, 15 * unit_size, 2 * unit_size, unit_size);
+
     }
 
-    public boolean wallsCollision(int x, int y,int width,int height)
-    {
+    public boolean wallsCollision(int x, int y, int width, int height) {
         boolean collided = false;
-        for(int i=0; i< wallXPos.length;i++)
-        {
-            if(new Rectangle(x, y, width, height).intersects(new Rectangle(wallXPos[i]*unit_size, wallYPos[i]*unit_size, 50, 50)))
-            {
-                collided = true;
-                break;
+        for (int i = 0; i < walls.length; i++) {
+            for (int j = 0; j < walls.length; j++) {
+                if (walls[i][j] == 1) {
+                    if (new Rectangle(x, y, width, height)
+                            .intersects(new Rectangle(j * unit_size, i * unit_size, 50, 50))) {
+                        collided = true;
+                        break;
+                    }
+                }
             }
         }
 
         return collided;
     }
 
-    public boolean finishWallsCollision(int x, int y,int width,int height)
-    {
+    public boolean finishWallsCollision(int x, int y, int width, int height) {
         boolean finishCollided = false;
-            if(new Rectangle(x, y, width, height).intersects(new Rectangle(14*unit_size, 15*unit_size, 50, 50)))
-            {
-                finishCollided = true;
-            }
+        if (new Rectangle(x, y, width, height)
+                .intersects(new Rectangle(14 * unit_size, 15 * unit_size, 2 * unit_size, unit_size))) {
+            finishCollided = true;
+        }
 
         return finishCollided;
     }
 
-
-
-
-
 }
-- 
GitLab