AL-2020/main.py

78 lines
2.5 KiB
Python

import pygame
import functions
import sys
import time
from agent import Agent
from settings import Settings
from board import create_board, draw_board
from random import randint
# Inicjalizacja programu i utworzenie obiektu ekrany
def run():
pygame.init()
settings = Settings()
screen = pygame.display.set_mode((settings.screen_width, settings.screen_height))
pygame.display.set_caption("Inteligentny wózek widłowy")
agent = Agent(screen, 50, 50, "Down")
board = create_board(screen)
for row in board:
for field in row:
print(field.cost_of_travel)
path = []
next_step = None
# Rozpoczęcie głównej pętli programu
while True:
# functions.check_events(agent, board)
# functions.update_screen(board, screen, agent)
#
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
agent.turn_right()
elif event.key == pygame.K_LEFT:
agent.turn_left()
elif event.key == pygame.K_UP:
agent.move_forward(board)
print(agent.x, agent.y)
elif event.key == pygame.K_SPACE:
field = board[randint(0, 9)][randint(0, 9)]
if not field.is_shelf:
path = functions.a_star(board[agent.y][agent.x], field, board)
path.pop(len(path) - 1)
next_step = path.pop(len(path) - 1)
if next_step is not None:
time.sleep(0.5)
if functions.check_turn(agent, next_step):
agent.move_forward(board)
if len(path) != 0:
next_step = path.pop()
else:
next_step = None
print(next_step, path)
for row in board:
for field in row:
if not field.is_shelf:
field.image = pygame.image.load('img/Field.png')
for row in board:
for field in row:
print(field.g, field.h, field.f, field.previous)
else:
functions.change_turn(agent, next_step)
print(agent.x, agent.y)
draw_board(board)
agent.blitme()
pygame.display.flip()
run()