From f4da3bc9fa8e98ffff1187915c6730325406ab15 Mon Sep 17 00:00:00 2001 From: s464859 <@> Date: Thu, 24 Mar 2022 17:45:52 +0100 Subject: [PATCH] bardziej inteligentny robot? --- assets/sprites/mine_fun_sized.png | Bin 0 -> 10098 bytes assets/sprites/saper_fun_sized.png | Bin 0 -> 22791 bytes classes/ai.py | 1 + classes/minesweeper.py | 49 ++++++++++++++++------------- main.py | 6 ++-- 5 files changed, 32 insertions(+), 24 deletions(-) create mode 100644 assets/sprites/mine_fun_sized.png create mode 100644 assets/sprites/saper_fun_sized.png diff --git a/assets/sprites/mine_fun_sized.png b/assets/sprites/mine_fun_sized.png new file mode 100644 index 0000000000000000000000000000000000000000..96253ff8e75990dc1c332dbec60a55048609c161 GIT binary patch literal 10098 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�w(!7+3sxMTxRstISOyVs25ncD(j>y7?GvRP1H8Ho< z5UzHIuvodKotj3XD$B>!?UUU^e0AVb{BGD(W1ZecK9ZDyT0ms5N#PF^tFi6@any8A=gDS znQLIFhOd>3-H5i0;1-(#YUsu*S{p30q<{Au_7Tek$;pQmtv?QUgeg%W#B2l&ZEqJ& zpYg^uDIDLHu&xO`ahqgYFNp8Acl=M??)P^8QUbK#7+7KLp~rduvNa@AqM_c&Brmg) zmWGzs#m#xpMIUb@@LB~?WEYl_&2Li5>x!d#;Nk-ewsmv1z`*^rbl?W+$HJz*o6THK zjzCWSgN(Zzvha>MAzl7g$W3R=k*Fx>%e!nPiNYYPz$}OM&A^U@3^TJ|^)ltcmzpJX zzplR9J#Kdrp6^((izb@kRBR>w631XCc*Qz}{Qrn>_W$i2Xjb>TvCu^Pqk9m=HcMNF zT0Oq@Gbh(=rA=FRdDmK*);|q>r7z~PnX@R+#TjZ0$-=e{5(f4%q2lA=o z_T%H@bzkFgW#}n;DLIFx&wu~^EgHZ9@B(@pRtlc&5W+LO#Jihu<{n-YF_lBy>J=xo?wSNQv;| zNbl)BsFBCdU;FkWwWf`BV~^tL!qLw-vBZ4VLY>au-hap)sIi&n?al7i%cb1#)sIem z&D0?ozApXEUDhs+78l^_^9-WYMw0OW`!1yW%iVm0UXr{J7yG|C`e^U&8$Ua^5Q)pS R1-4#+G*n-zR4Q4&{~sv(WTOB8 literal 0 HcmV?d00001 diff --git a/assets/sprites/saper_fun_sized.png b/assets/sprites/saper_fun_sized.png new file mode 100644 index 0000000000000000000000000000000000000000..ef7fe38c5809431048371c7460588bc5513905b9 GIT binary patch literal 22791 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: - move_legal=False + next_y=self.position_y+1 elif dir==180: - if self.position_y-1 == -1: - move_legal=False - elif self.current_map.terrain_matrix[self.position_y-1][self.position_x]>9: - move_legal=False + next_y=self.position_y-1 elif dir==270: - if self.position_x-1 == -1: - move_legal=False - elif self.current_map.terrain_matrix[self.position_y][self.position_x-1]>9: - move_legal=False + next_x=self.position_x-1 elif dir==90: - if self.position_x+1 == self.current_map.tiles_x: - move_legal=False - elif self.current_map.terrain_matrix[self.position_y][self.position_x+1]>9: - move_legal=False + next_x=self.position_x+1 + + if next_x == self.current_map.tiles_x or next_x == -1: + move_legal=False + if next_y == self.current_map.tiles_y or next_y == -1: + move_legal=False + if self.current_map.terrain_matrix[next_y][next_x]>9: + move_legal=False + if self.current_map.terrain_matrix[next_y][next_x]>9: + move_legal=False + + for cliff in self.current_map.cliffs: + if (next_x, next_y) == (cliff.position_x, cliff.position_y): + if dir==0 and cliff.rotation==0: + cliff_jump=True + else: + move_legal=False if move_legal: - if cliff_jump: - pass pygame.mixer.Channel(1).set_volume(0.3) pygame.mixer.Channel(1).play(pygame.mixer.Sound("assets/sounds/moving.wav")) if dir==0: self.position_y+=1 self.offset_y=-self.size + if cliff_jump: + self.position_y+=1 + self.offset_y=-2*self.size elif dir==180: self.position_y-=1 self.offset_y=self.size diff --git a/main.py b/main.py index 7db7180..883b076 100644 --- a/main.py +++ b/main.py @@ -7,11 +7,11 @@ from classes import system, minesweeper, ai #ustalenie wielkości pojedyńczych kawałków mapy, oraz wielkości mapy TILE_SIZE = 64 -TILES_X = 16 -TILES_Y = 10 +TILES_X = int(12) +TILES_Y = int(10) #wł/wył muzyki -MUSIC=False +MUSIC=True #ustalenie FPS FPS = 60