From 674393a4d9ead32365b6a2f4e1df7f751c532a75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maksymilian=20Miko=C5=82ajczak?= Date: Wed, 3 May 2023 12:07:13 +0200 Subject: [PATCH] added priority for blocks --- __pycache__/bfs.cpython-310.pyc | Bin 0 -> 667 bytes __pycache__/garbage_truck.cpython-310.pyc | Bin 0 -> 1744 bytes __pycache__/main.cpython-310.pyc | Bin 0 -> 2616 bytes __pycache__/state.cpython-310.pyc | Bin 0 -> 519 bytes __pycache__/succ.cpython-310.pyc | Bin 0 -> 930 bytes bfs.py | 4 ++-- main.py | 13 +++++++------ state.py | 3 ++- succ.py | 2 +- 9 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 __pycache__/bfs.cpython-310.pyc create mode 100644 __pycache__/garbage_truck.cpython-310.pyc create mode 100644 __pycache__/main.cpython-310.pyc create mode 100644 __pycache__/state.cpython-310.pyc create mode 100644 __pycache__/succ.cpython-310.pyc diff --git a/__pycache__/bfs.cpython-310.pyc b/__pycache__/bfs.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f9f8ace0b0cf92919487d8962cd4d0c931f02ae7 GIT binary patch literal 667 zcmZuvy^a$x5cb&K-{b@Zx}&EG1p!fl&`H2aG*@ul33M{Cv-q;RUhK^&k-QQTJOGc7 zl)MIy;g*V)k^(VaC{i%id^4WUGag%Gj*d!#^5x-cnK44X$IYQo+?=Aiy9kmp$$#s$8OnCjLk+lRChR<(U7f-QB$&~&9 DW@)J% literal 0 HcmV?d00001 diff --git a/__pycache__/garbage_truck.cpython-310.pyc b/__pycache__/garbage_truck.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d4dcb18111ae34ac264d3c6cc7cf81f6f0a09965 GIT binary patch literal 1744 zcma)6OK;Oa5Z<*nj*})WkI?cGh}Xg5QHcvZAXEuTse}R&NJzO@#&%OTew4M-(ki#| z1Na-g@q6~lDd*le@y)t%leS1~w3C^go!QxMKTph>w`dMg}AjePTzv>lmuB>w7z%9~Jwm zkxW#_R3Z=KO|`I_#ls|YCl1w4ygaYWBPI!$KWocdSrRTM-XPykqB!!>Dw8WpY!j9E^?;!S?gnY!Y$$(HVsp#7Ri=y-6RW!G3hPW{WkRC(j!~QqKljobF@bI&^)GdY}Vp>#fLF7CT}1~0p8YH+KUVPKuV|yWJ%c_u4+5kUML+y)?v%5BxqwPbUjpP12d;gxb;GL(CLL`y9ziH zdIb)foR>+E_0MbMPvAXIC1Ph!l)UWKf_h-Xwt@yI)>N$t{`5|M4GAWLbizTPIWy3toomvU{BJ!&?ZLat$Z(>c} zB5?*%dJV!mpNFt`3p}*+4=;0V8jtFId=y;`(kn*L*E?d{XbIQR5EkjuXcG7U&F+{s zj)@~jT-Sj=&5+r0RHGQm)Q!WF4#5*@&Zt~1|g!o2E2DpyyC|M=~&8#2)(8wh*mh1$-59^LJefl&rJ`n_;=NOyRr8E&6kZgpWi9If8p)xo0;76 zWN;fHnhs6g0UgTOF;3f)Zeu5#yG~sabtJJ`Qu{4C(F4*Rk$6nv6lksKMnH5S`sK7_ tGn?BD+iaPV*1L|74*vDWpg#k>d{G`{zbsqgE8+ik~5Cdo`PS(Xe8AcH0Wg!TatFq7K^4H-y+kPN8RaaBC+wA)T~ zWrsv<3CaA6eQ_T7OZBwUKILtn_l5mV*_jJetE$eW>U7n2F4dozi5Ob&;eqh$jQxk0 zSDOdsEA--1&X{0=XRI}ud5eR0GNd>rCHLF(hH!;(CLo`}{7qhK5cbS+I^S?1M zKXO`Y;+9zWjkWHHMX`kWEpc1i!Th#Z7Au(V%Xh@xQ%C(v-XGCz`JwI2)oVg^zsZez zd{SWY4|Sp?i281#j+2f&Qs?c{rgOdKGNybizIOj_oe z0^xe@W^WtBYs~@o6?(CVK{E1w%Mn~SxV0RFG=(D!G#IqIL%WX$E&baP;>`8;+GA3@bw$zKJJ2* zdD4?{Y@#^s^~HHcbUlvG&Xa7SQ5G#al|9;Im?gG~;V!!UL&)mfN?yaX0yR0w0wX|Z zrnz>s+wq31!-gE)(VpNVzQumNH*{an3qw!)vwqr^#!qu0e=$Ka7|2{SE2egm%1jh-mKNH~SSC)CN-pA$US~fxJT<&)7A6)q zt-YrwkFtLI)XWZ4+E=N*mzz@V%iIfiE9B2u^2(mF@~E8)iqii{NNPl|q#}i_Sb+r`?iu zy)Mwl7)*4!(hbK|TjLPcO>cs43ApiS@`IQE|#?>I{}Qf7C1|Hy{9;lCJu zVS>R$2Z3iQA}t140>Sw}P_00Ip-$x51QXoV8kxRF!^;??@G~``lIQW{KMx=%D1iv7 zce(S&veV#d1A;ak?WPe;-NHnemAHhWnqZALxmv%WU>K2B<1KHVVFkx**`;gby+O zCDuhDx*1d%cLcZThMvV^1gGNjN4^MzJ93dcK5R6RIzboD z4J>?zB$_7|<_lI9LiQtMx2&vcWmU)oWD6vF!DDeCsNVco2%FYJ3&(e!m;Ac|x z{v4Ga72!u%SA2pYLbl$eoOL4JKxlg0`85Q+?1VO>DXSw+be%hngTSr3>TCK7Dl=J% z6gy%!w-nPRV}{y}SJrjKN7AIT|p^a2?FhrO+%$0m5ZP1vgstmQ&#s`XO6 zLu`%Mb~2y`3DvKM>@!~0PlT!3tc~}+*#&y2PX(~*;qUDvlj=Qdipnc3Q1o7!s;#q@ zU$SZ{xR#|_W}->uwSqeks86kQXK(w-*5=di_m50uX?te-mRR3UJWAPSkx}zRy{rY6 yvIQaheDZ>QK_OUtfgxlefUN^ybU;35Ida77-GgI1-f%)cY=pN$H@pYO{qcXU1!#Q$ literal 0 HcmV?d00001 diff --git a/__pycache__/state.cpython-310.pyc b/__pycache__/state.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b39f4348da82751c4e5be3a998b9224ff7861b84 GIT binary patch literal 519 zcmY+By-ve05P;9lk3wk~5Kq9CrFj8Bl^7692fAgktk{6n#3^Wd$(S2uM?#E}hi^U93zVjy)F@PW1OeMn23e{gC9zcO&N7PSVg5n#aP$QN~WOXiYb1CGEx!d#39*qveQ+H5htNFrQW0ZYedg_5YR_R*2hTRC&;Mh$XEdu zV(UB!=}tOryAZ$cS|8#A@w{~geX=vH4XLci=4pt%uAd!san#Pya4se!h%ay%n%~>v zwQY3K$gMv#rZ&v+CWNu36N379y4{qG-;8}+ z41+IEA#1z~jJLAULWG$RO{?}bt>;3#?PWdwaa3hE+yrOj!zTk$Pg7(tXM<;*k9HDG SlQ~KW+0EGGZpfoUUcw(m>~8Y_ literal 0 HcmV?d00001 diff --git a/__pycache__/succ.cpython-310.pyc b/__pycache__/succ.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6927dcf0b724af09de00d341c5983c48bed9782c GIT binary patch literal 930 zcmZva&x;c=6vtmO$+V8UAYHL#4;~i=#EKw$S;S@Ax`m|+ZKY5I8Jf6`ogXEc1qFRL*eZ9)YP%anO~yN@ zT-JeTA|)!dDoUYM@GDBeM@q&sSKRBsLs&vhrABKbp+<9%_U#T@QFEJCoz>aisoK4z z*!%2s#deM(<@X(wLhClA;A4+>?o_GdwDx~m*&TdsZ)C{Gu#5g+YRJs+@$mIIdVPhD z38pc)9M4Y2JwqlN8}J+EeyT#5;Lixt#JIs~B@?0SpD^sxD%FOqt@Q@O{zY##>`l*e z|LpS3XzDu(zbTl#RiL#LgHT2Si}m$lA+=7G{t4<47W_Twen?~4jf16L$6*u(Nms|A zT!evI2Hjzj$tb+SVS3BwyMtX&22NG)as811(w7hyVZp literal 0 HcmV?d00001 diff --git a/bfs.py b/bfs.py index 58d7f4e..dc4a11f 100644 --- a/bfs.py +++ b/bfs.py @@ -1,6 +1,6 @@ from succ import succ as successors -def bfs(istate, goalx, goaly): +def bfs(istate, goalx, goaly, passedFields): fringe = [istate] explored = [] steps = [] @@ -13,7 +13,7 @@ def bfs(istate, goalx, goaly): steps.insert(0, state) return steps - element = successors(state) + element = successors(state, passedFields) explored.append((state.xpos, state.ypos, state.orientation)) for value in element : val = (value.xpos, value.ypos, value.orientation) diff --git a/main.py b/main.py index b33ffb2..e22a4e9 100644 --- a/main.py +++ b/main.py @@ -34,7 +34,9 @@ def randomize_map(): # tworzenie mapy z losowymi polami field_array_2 = [] for i in range(16): for j in range(16): - field_array_2.append(random.choice(fields_list)) + randomChoiceOfBlock = random.choice(fields_list) + priorityOfBlock = fields_list.index(randomChoiceOfBlock) + field_array_2.append([randomChoiceOfBlock,priorityOfBlock]) field_array_1.append(field_array_2) field_array_2 = [] return field_array_1 @@ -43,7 +45,7 @@ def randomize_map(): # tworzenie mapy z losowymi polami def draw_window(agent, fields): for i in range(16): for j in range(16): - window.blit(fields[i][j], (i * 50, j * 50)) + window.blit(fields[i][j][0], (i * 50, j * 50)) window.blit(AGENT, (agent.rect.x, agent.rect.y)) # wyswietlanie agenta pygame.display.update() @@ -58,7 +60,6 @@ def draw_window(agent, fields): # if keys_pressed[pygame.K_DOWN] and agent.y < 750: # agent.y += 50 - def main(): clock = pygame.time.Clock() run = True @@ -71,13 +72,13 @@ def main(): run = False #keys_pressed = pygame.key.get_pressed() draw_window(agent, fields) - steps = bfs(State(None, None, 0, 0, 'E'), 450, 600) + steps = bfs(State(None, None, 0, 0, 'E'), 100, 50, fields) for interm in steps: if interm.action == 'LEFT': agent.turn_left() - if interm.action == 'RIGHT': + elif interm.action == 'RIGHT': agent.turn_right() - if interm.action == 'FORWARD': + elif interm.action == 'FORWARD': agent.forward() draw_window(agent, fields) time.sleep(0.5) diff --git a/state.py b/state.py index a6b5e2b..56e67df 100644 --- a/state.py +++ b/state.py @@ -4,4 +4,5 @@ class State: self.xpos = xpos self.ypos = ypos self.orientation = orientation - self.action = action \ No newline at end of file + self.action = action + # self.priority = priority \ No newline at end of file diff --git a/succ.py b/succ.py index 8ebe570..a01b49a 100644 --- a/succ.py +++ b/succ.py @@ -1,7 +1,7 @@ from state import State FIELDWIDTH, FIELDCOUNT = 50, 16 -def succ(st: State): +def succ(st: State, passedFields): successors = [] if st.orientation == 'N':