From 831c4799d4f16f001f656591ab0b4755d967e890 Mon Sep 17 00:00:00 2001 From: ClemW <clement.wang@student-cs.fr> Date: Mon, 7 Jun 2021 18:30:44 +0200 Subject: [PATCH] add imperfections in maze generator --- __pycache__/gen_algo.cpython-38.pyc | Bin 9332 -> 9607 bytes gen_algo.py | 15 ++++++++++++++- main.py | 3 ++- main_seq.py | 3 ++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/__pycache__/gen_algo.cpython-38.pyc b/__pycache__/gen_algo.cpython-38.pyc index 405cda6c515797b0d78076361d961454e2fab437..e443f1958249d7a16fd85be2d5794cce403be55b 100644 GIT binary patch delta 2276 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 ImKF#H08~WNSO5S3 delta 1997 zcmZqo{^G$G%FD~ez`($e7q~Y;SA8R24P(7<3R4Pm3u6>>ibx7;3R??f6iX^=3VRAi z3qvzw6k94=7JCXOoX48NmBI~{;Yj7kVo%|L^H@`OQ~1C#oT;2y>?!;(UW!19U<*SO zSBg+DgQn;$7Wc&5)RjyxnHd-uUa~XDF)$=Eft&=z><kPHAneS*z))<*I9Z43G9%L@ zX7O<55}q37X2uluY~~4!MM^cy3wTr57c$ne)G*bsG&9z+*08!T#0u21)i5vMt6^Kn z$jC5(v5>FuRSI(rLl$=pLl(OYLkfrnVGbLH6oz01O`gpbESniQqFBpPi%K%1CVyrv zU@ziiU|`VXpIpq=!>`GHi={X<C#^`3fq|h&bh0A5#AG*iIYzC?sqDI&SFk5A`A9P` zFx+BGPtD8EO)U}uDFdsO0I?)NgcOKS01@IKLJp*!xj40?NDRbf0}(PH8##&;Cx>up z%d3J!R6qm^oL~iMVkyW;taP6|kE=^k5iSE(1ClNRIizZ`BexT;E=X37fq`KqQ<382 z3EUE_Ai289Yq|B+L2@e@Z?VRwR%DhG>4Q{)jQ|s1b3l%1n#{~&rwmeCWCT)T03yIj zzyw@f8<Lq(tns;tRjF9b1cgi2<Xtc`O+dzBGZUn)Z}M7h>B;XzIVaom3X6c;pviQL zwV)_7uLKgl`jgXm<rF7@QV2NdFjnz{5|tiU3D^yOnv6vplUMQT>ZpNi(gB4YM?q13 zL26M+B{-mNu@$G5l%y6FfqV-w)@*X1s`z9nK0!u{%{qK<nHkk5O9>e>uAA&9WW=a3 zxlzb3TpMH%PikIDd_jJ3W=Up#-YwRm#Ju#>A`OrXr(a@js%ueEeo>JS$X;O(0g7); z&LU8Z-Qq|tN=*c7<H}8}h|fvQOE1YN(wM9wY{v?6>Eg}l!l8^xAT3}Mi$K{xlNGEv zimAddimAfr7Grji%H(?@Qj7;D{}l1j1O?Da#whl9XcEL0r6AW`n4Bl-1c_1~kh`!2 zKS<pbXz)A9xqy^mGY%9CHzxauxvGLJ*JLd61*yblAV}pssDYZ3|A?vMHq?oMf#K0) zM{%D_sG)wi3<art0grtqP3|IdkWvc}VF`){_W1ae{N(ufB2btXd4t5QKm^EpMb;n| z$X!KFpa^FxvSDCgm^N8h!jREsass2s<QP8A%}Elq%u=o(m2RM{$p}`Y$y8(qGM+Jh z@^5JwRtE+K2HwdsGBF$=2d`u-(w^KPqsAyQdAUrvAt>UC<Ut025?>L-K9FXX;{2i# zXnH7004WFu5lNH%WyMqyLCh!+fyn=1ATBt=fqe6yVRNUfFJpou$XU!qU?;kRRCq8j zF!*V5A|<>ekTA$|5O;v>LUjx@W!+-SE6q(xEh>T=RHQQ5OkSB$Y;%<SJ4S1;U%;lN zf{e_97AzpP7l;5C319-`%v)T^Mft_W@%d$`MXHmV6)zZoeFY8+a8zJ(2s1c|7iEHs zQ<>bXq{wJAd8yK3QLxo1AW^XWxgb{d<XB}HMw`i1%IzAUkS~e=iAI75up__($R$P5 z3=9k|j0_A#F_Se_l<H$aVa8IF15%j>BEW7+1F^8A@>^^v`Jg=I$jHD@3@W7=7&#a@ z7^^tl9rYkGnyh|Bfgs&MAR-t<gn+EzLQ9WD{vateaAg1rJctXxegQipACe9O7#JAd mPEu9m2Qf4`Zn5T-<`z^I$xb#<m1YCSW5DD<Rbys8fp7rB#ft#| diff --git a/gen_algo.py b/gen_algo.py index 5aba5f0..2c5be11 100644 --- a/gen_algo.py +++ b/gen_algo.py @@ -12,7 +12,7 @@ class Game(object): # entrance : 2 # exit : 3 - def __init__(self, shape=(3, 7)): + def __init__(self, shape=(3, 7), holes=0): self.dist_factor = 5 self.exploration_factor = 6 @@ -65,6 +65,19 @@ class Game(object): for i in temp: queue.append(i) + for _ in range(holes): + if random.random() < 0.5: + verti = 2 * random.randint( + 1, self.maze.shape[1] // 2 - 1 + ) # odd between 0 and shape[1]-1 + hori = 2 * random.randint(0, self.maze.shape[0] // 2 - 1) + 1 + else: + hori = 2 * random.randint(1, self.maze.shape[0] // 2 - 1) + verti = 2 * random.randint(0, self.maze.shape[1] // 2 - 1) + 1 + + if self.maze[hori, verti] == 1: + self.maze[hori, verti] = 0 + self.maze[self.entrance] = 2 self.maze[self.exit] = 3 diff --git a/main.py b/main.py index 5aef399..af17180 100644 --- a/main.py +++ b/main.py @@ -18,6 +18,7 @@ show_path_color = (160, 225, 55) #### Back shape = (10, 10) +holes = 5 number_of_generations = 1000 pop_card = 3000 elite = 0.01 @@ -33,7 +34,7 @@ pygame.init() # Init game t0 = time.time() -game = Game(shape) +game = Game(shape=shape, holes=holes) algo = GA( game, genome_length=max_moves, diff --git a/main_seq.py b/main_seq.py index ad07dc4..307c032 100644 --- a/main_seq.py +++ b/main_seq.py @@ -18,6 +18,7 @@ show_path_color = (160, 225, 55) #### Back shape = (10, 20) +holes = 10 number_of_generations = 1000 pop_card = 3000 elite = 0.01 @@ -33,7 +34,7 @@ pygame.init() # Init game t0 = time.time() -game = Game(shape) +game = Game(shape=shape, holes=holes) algo = GA( game, genome_length=max_moves, -- GitLab