diff options
| author | omagdy7 <omar.professional8777@gmail.com> | 2023-05-07 11:32:10 +0300 |
|---|---|---|
| committer | omagdy7 <omar.professional8777@gmail.com> | 2023-05-07 11:32:10 +0300 |
| commit | 7f501d21772d96756a851421690db08387df3c26 (patch) | |
| tree | 39880a4410ab5defc74f0f27a8a6a9e1e5caa5fd /src/pinky.py | |
| parent | 7194ca65ae23d96960fe7edb619efb100db0a49c (diff) | |
| download | Macpan-7f501d21772d96756a851421690db08387df3c26.tar.xz Macpan-7f501d21772d96756a851421690db08387df3c26.zip | |
Finished clyde algorithm and added a debug mode to run the program
Diffstat (limited to 'src/pinky.py')
| -rw-r--r-- | src/pinky.py | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/pinky.py b/src/pinky.py index 42b5d91..191ff61 100644 --- a/src/pinky.py +++ b/src/pinky.py @@ -1,13 +1,14 @@ import pygame from typing_extensions import override from direction import DIRECTION +from settings import settings import math from ghost import Ghost + class Pinky(Ghost): def __init__(self, sprite_sheet, x, y): - super().__init__(sprite_sheet,"pink", x, y) - + super().__init__(sprite_sheet, "pink", x, y) def get_four_tiles_ahead_of_pacman(self, pacman): if pacman.direction == DIRECTION.UP: @@ -36,7 +37,7 @@ class Pinky(Ghost): return (pacman.x, pacman.y) @override - def get_next_move(self, target, maze, screen): + def get_next_move(self, target, maze, screen, blinky): dx = [1, 0, -1, 0] dy = [0, 1, 0, -1] @@ -54,20 +55,20 @@ class Pinky(Ghost): forbidden = 1 new_target = self.get_four_tiles_ahead_of_pacman(target) - pygame.draw.circle(screen, self.color, (new_target[0], new_target[1]), 15) - + if settings.debug: + pygame.draw.circle(screen, self.color, + (new_target[0], new_target[1]), 15) + for i in range(len(dx)): if i != forbidden: nx = self.x + dx[i] * self.speed ny = self.y + dy[i] * self.speed if self.check_collision(nx, ny, 30, 30, maze): - ret[i] = self.heuristic((nx, ny), new_target[0], new_target[1]) + ret[i] = self.heuristic( + (nx, ny), new_target[0], new_target[1]) + if settings.debug: + pygame.draw.line(screen, self.color, (new_target), + (self.x, self.y), 1) min_idx = ret.index(min(ret)) return min_idx - - - - - - |
