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()