2024-03-05 14:36:03 +01:00
|
|
|
import pygame
|
|
|
|
import sys
|
2024-03-22 16:59:39 +01:00
|
|
|
from elephant import Elephant
|
2024-03-22 20:11:58 +01:00
|
|
|
from giraffe import Giraffe
|
|
|
|
from penguin import Penguin
|
|
|
|
from parrot import Parrot
|
|
|
|
from bear import Bear
|
2024-03-22 16:59:39 +01:00
|
|
|
from agent import Agent
|
2024-03-05 14:36:03 +01:00
|
|
|
|
|
|
|
BLACK = (0, 0, 0)
|
|
|
|
|
2024-03-22 20:11:58 +01:00
|
|
|
GRID_SIZE = 50
|
2024-03-05 14:36:03 +01:00
|
|
|
GRID_WIDTH = 20
|
|
|
|
GRID_HEIGHT = 10
|
|
|
|
|
|
|
|
pygame.init()
|
|
|
|
|
|
|
|
WINDOW_SIZE = (GRID_WIDTH * GRID_SIZE, GRID_HEIGHT * GRID_SIZE)
|
|
|
|
screen = pygame.display.set_mode(WINDOW_SIZE)
|
|
|
|
pygame.display.set_caption("Mini Zoo")
|
|
|
|
|
2024-03-22 16:59:39 +01:00
|
|
|
|
2024-03-05 14:36:03 +01:00
|
|
|
|
2024-03-22 20:11:58 +01:00
|
|
|
background_image = pygame.image.load('images/tło.jpg')
|
2024-03-05 14:36:03 +01:00
|
|
|
background_image = pygame.transform.scale(background_image, WINDOW_SIZE)
|
|
|
|
|
2024-03-10 17:08:39 +01:00
|
|
|
|
2024-03-23 13:55:16 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
an1 = Parrot(16, 2)
|
|
|
|
an2 = Penguin(8, 6)
|
|
|
|
an3 = Bear(14, 9)
|
2024-03-22 20:11:58 +01:00
|
|
|
old_an2 = Giraffe(18,4, adult=True)
|
2024-03-23 13:55:16 +01:00
|
|
|
old_an1 = Elephant(4, 7, adult=True)
|
|
|
|
an4 = Elephant(4,3)
|
2024-03-10 17:08:39 +01:00
|
|
|
|
2024-03-23 13:55:16 +01:00
|
|
|
Animals = [an1, an2, an3, an4, old_an1, old_an2]
|
2024-03-10 17:40:26 +01:00
|
|
|
|
2024-03-05 14:36:03 +01:00
|
|
|
def draw_grid():
|
|
|
|
for y in range(0, GRID_HEIGHT * GRID_SIZE, GRID_SIZE):
|
|
|
|
for x in range(0, GRID_WIDTH * GRID_SIZE, GRID_SIZE):
|
|
|
|
rect = pygame.Rect(x, y, GRID_SIZE, GRID_SIZE)
|
|
|
|
pygame.draw.rect(screen, BLACK, rect, 1)
|
|
|
|
|
2024-03-23 13:55:16 +01:00
|
|
|
|
2024-03-22 16:59:39 +01:00
|
|
|
|
2024-03-22 17:16:34 +01:00
|
|
|
def draw_Animals():
|
|
|
|
for Animal in Animals:
|
|
|
|
Animal.draw(screen, GRID_SIZE)
|
|
|
|
if Animal.feed() == 'True':
|
2024-03-23 13:55:16 +01:00
|
|
|
Animal.draw_exclamation(screen, GRID_SIZE, Animal.x, Animal.y)
|
|
|
|
else:
|
|
|
|
Animal.draw_food(screen,GRID_SIZE,Animal.x,Animal.y)
|
2024-03-05 14:36:03 +01:00
|
|
|
|
2024-03-10 17:08:39 +01:00
|
|
|
|
2024-03-10 17:40:26 +01:00
|
|
|
|
2024-03-05 14:36:03 +01:00
|
|
|
def main():
|
2024-03-22 20:11:58 +01:00
|
|
|
agent = Agent(0, 0, 'images/avatar.png', GRID_SIZE)
|
2024-03-05 14:36:03 +01:00
|
|
|
clock = pygame.time.Clock()
|
|
|
|
|
|
|
|
while True:
|
|
|
|
for event in pygame.event.get():
|
|
|
|
if event.type == pygame.QUIT:
|
|
|
|
pygame.quit()
|
|
|
|
sys.exit()
|
2024-03-22 17:16:34 +01:00
|
|
|
agent.handle_event(event,GRID_HEIGHT,GRID_WIDTH,Animals)
|
2024-03-05 14:36:03 +01:00
|
|
|
|
2024-03-22 17:16:34 +01:00
|
|
|
|
2024-03-05 14:36:03 +01:00
|
|
|
|
|
|
|
screen.blit(background_image,(0,0))
|
|
|
|
draw_grid()
|
2024-03-22 17:16:34 +01:00
|
|
|
draw_Animals()
|
2024-03-22 16:59:39 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
agent.draw(screen)
|
2024-03-05 14:36:03 +01:00
|
|
|
pygame.display.flip()
|
|
|
|
clock.tick(10)
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|