Inteligentny_Wozek/main.py
2023-05-06 12:57:48 +02:00

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