172 lines
5.4 KiB
Python
172 lines
5.4 KiB
Python
import sys
|
|
import time
|
|
import pygame
|
|
import regal
|
|
import paczka
|
|
from wozek import Wozek
|
|
from wyszukiwanie import Stan, SearchSpace, Search, GridCellType
|
|
from typing import Tuple, Dict
|
|
|
|
|
|
pygame.init()
|
|
screen = pygame.display.set_mode((980, 980))
|
|
miejsce = pygame.image.load('images/miejsce_paczek.png')
|
|
|
|
pygame.display.set_caption("Inteligentny wozek")
|
|
icon = pygame.image.load('images/icon.png')
|
|
pygame.display.set_icon(icon)
|
|
|
|
# def draw(self):
|
|
# screen.blit(self.image, (self.state.x, self.y))
|
|
|
|
def main():
|
|
|
|
wozek = Wozek(0,0)
|
|
|
|
# for event in pygame.event.get():
|
|
# if event.type == pygame.QUIT:
|
|
# sys.exit(0)
|
|
# if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
|
|
# sys.exit(0)
|
|
|
|
grid_points = SearchSpace()
|
|
|
|
goal_state = Stan(5, 2, 0) # for example
|
|
# perform BFS search
|
|
path = Search(grid_points).wyszukiwanie_bfs(wozek.state, goal_state)
|
|
|
|
if path:
|
|
for p in path:
|
|
wozek._move(p)
|
|
screen.fill((51,51,51)) # removes object trail
|
|
screen.blit(miejsce, (430, 400))
|
|
regal.Regal(1, 1, 2, 2)
|
|
regal.Regal(2, 1, 2, 3)
|
|
regal.Regal(3, 1, 3, 2)
|
|
regal.Regal(4, 1, 3, 3)
|
|
|
|
regal.Regal(5, 1, 8, 2)
|
|
regal.Regal(6, 1, 8, 3)
|
|
regal.Regal(7, 1, 9, 2)
|
|
regal.Regal(8, 1, 9, 3)
|
|
|
|
regal.Regal(9, 1, 2, 8)
|
|
regal.Regal(10, 1, 2, 9)
|
|
regal.Regal(11, 1, 3, 8)
|
|
regal.Regal(12, 1, 3, 9)
|
|
|
|
regal.Regal(13, 1, 8, 8)
|
|
regal.Regal(14, 1, 8, 9)
|
|
regal.Regal(15, 1, 9, 8)
|
|
regal.Regal(16, 1, 9, 9)
|
|
wozek.draw()
|
|
pygame.display.flip()
|
|
time.sleep(1)
|
|
|
|
# wozek._drive(path)
|
|
# print(path)
|
|
|
|
# for action in path:
|
|
# x = wozek.state.x
|
|
# y = wozek.state.y
|
|
# direction = wozek.state.kierunek
|
|
|
|
# print(x)
|
|
|
|
# if action == "Left":
|
|
# wozek.state.kierunek = 3 if direction == 0 else direction - 1
|
|
|
|
# # always legal
|
|
# elif action == "Right":
|
|
|
|
# # self._truck_direction(direction, action)
|
|
# wozek.state.kierunek = (direction + 1) % 4
|
|
|
|
# # check if its legal
|
|
# elif action == "Forward":
|
|
# t_x = x + 1 if direction == 1 else (x - 1 if direction == 3 else x)
|
|
# t_y = y - 1 if direction == 0 else (y + 1 if direction == 2 else y)
|
|
|
|
# # if self.points_grid[t_y][t_x].is_available:
|
|
# wozek.state.x = t_x
|
|
# wozek.state.y = t_y
|
|
|
|
|
|
# screen.fill((51,51,51)) # removes object trail
|
|
# screen.blit(miejsce, (430, 400))
|
|
|
|
# regal.Regal(1, 1, 2, 2)
|
|
# regal.Regal(2, 1, 2, 3)
|
|
# regal.Regal(3, 1, 3, 2)
|
|
# regal.Regal(4, 1, 3, 3)
|
|
|
|
# regal.Regal(5, 1, 8, 2)
|
|
# regal.Regal(6, 1, 8, 3)
|
|
# regal.Regal(7, 1, 9, 2)
|
|
# regal.Regal(8, 1, 9, 3)
|
|
|
|
# regal.Regal(9, 1, 2, 8)
|
|
# regal.Regal(10, 1, 2, 9)
|
|
# regal.Regal(11, 1, 3, 8)
|
|
# regal.Regal(12, 1, 3, 9)
|
|
|
|
# regal.Regal(13, 1, 8, 8)
|
|
# regal.Regal(14, 1, 8, 9)
|
|
# regal.Regal(15, 1, 9, 8)
|
|
# regal.Regal(16, 1, 9, 9)
|
|
# wozek.draw()
|
|
|
|
# pygame.display.flip()
|
|
|
|
# for p in path:
|
|
# print(p.x, p.y)
|
|
# print("Path found:", path)
|
|
# else:
|
|
# print("No path found.")
|
|
|
|
# for state in path:
|
|
# pygame.time.delay(200)
|
|
# wozek.x = state.x
|
|
# wozek.y = state.y
|
|
# for event in pygame.event.get():
|
|
# if event.type == pygame.QUIT:
|
|
# sys.exit(0)
|
|
# if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
|
|
# sys.exit(0)
|
|
|
|
|
|
# # Drawing
|
|
# screen.fill((51,51,51)) # removes object trail
|
|
# screen.blit(miejsce, (430, 400))
|
|
|
|
# # idRegału, Długość regału podana w kratkach, Współrzędne od których ma być tworzony regał (wiersz,kolumna) - poziomo
|
|
# # Współrzędne od (1,1) do (10,10)
|
|
# regal.Regal(1, 1, 2, 2)
|
|
# regal.Regal(2, 1, 2, 3)
|
|
# regal.Regal(3, 1, 3, 2)
|
|
# regal.Regal(4, 1, 3, 3)
|
|
|
|
# regal.Regal(5, 1, 8, 2)
|
|
# regal.Regal(6, 1, 8, 3)
|
|
# regal.Regal(7, 1, 9, 2)
|
|
# regal.Regal(8, 1, 9, 3)
|
|
|
|
# regal.Regal(9, 1, 2, 8)
|
|
# regal.Regal(10, 1, 2, 9)
|
|
# regal.Regal(11, 1, 3, 8)
|
|
# regal.Regal(12, 1, 3, 9)
|
|
|
|
# regal.Regal(13, 1, 8, 8)
|
|
# regal.Regal(14, 1, 8, 9)
|
|
# regal.Regal(15, 1, 9, 8)
|
|
# regal.Regal(16, 1, 9, 9)
|
|
|
|
# wozek.draw()
|
|
|
|
# pygame.display.flip() # updating frames
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|