adding ekran module
This commit is contained in:
parent
8dae8a4b20
commit
832094398c
63
ekran.py
Normal file
63
ekran.py
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
import pygame
|
||||||
|
import regal
|
||||||
|
import wozek
|
||||||
|
|
||||||
|
EKRAN_SZEROKOSC = 980
|
||||||
|
EKRAN_WYSOKOSC = 980
|
||||||
|
screen = pygame.display.set_mode((EKRAN_SZEROKOSC, EKRAN_WYSOKOSC))
|
||||||
|
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 narysuj_regaly():
|
||||||
|
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, 10, 2)
|
||||||
|
regal.Regal(6, 1, 10, 3)
|
||||||
|
regal.Regal(7, 1, 11, 2)
|
||||||
|
regal.Regal(8, 1, 11, 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, 10, 8)
|
||||||
|
regal.Regal(14, 1, 10, 9)
|
||||||
|
regal.Regal(15, 1, 11, 8)
|
||||||
|
regal.Regal(16, 1, 11, 9)
|
||||||
|
|
||||||
|
def drawGrid():
|
||||||
|
blockSize = 70 #Set the size of the grid block
|
||||||
|
WHITE = (200, 200, 200)
|
||||||
|
for x in range(0, EKRAN_SZEROKOSC, blockSize):
|
||||||
|
for y in range(0, EKRAN_WYSOKOSC, blockSize):
|
||||||
|
rect = pygame.Rect(x, y, blockSize, blockSize)
|
||||||
|
pygame.draw.rect(screen, WHITE, rect, 1)
|
||||||
|
def odswiez_ekran(wozek):
|
||||||
|
screen.fill((51, 51, 51)) # removes object trail
|
||||||
|
screen.blit(miejsce, (430, 400))
|
||||||
|
drawGrid()
|
||||||
|
narysuj_regaly()
|
||||||
|
wozek.draw()
|
||||||
|
# pygame.draw.rect(screen, (255,0,0),(70,70,10,10))
|
||||||
|
pygame.display.flip()
|
||||||
|
|
||||||
|
|
||||||
|
def sprawdz_ktory_wiersz(x):
|
||||||
|
nr_wiersza = 0
|
||||||
|
for i in range(70, EKRAN_WYSOKOSC + 70, 70):
|
||||||
|
if x < i:
|
||||||
|
return nr_wiersza
|
||||||
|
nr_wiersza = nr_wiersza + 1
|
||||||
|
def sprawdz_ktora_kolumna(y):
|
||||||
|
nr_kolumny = 0
|
||||||
|
for i in range(70, EKRAN_SZEROKOSC + 70, 70):
|
||||||
|
if y < i:
|
||||||
|
return nr_kolumny
|
||||||
|
nr_kolumny = nr_kolumny + 1
|
138
main.py
138
main.py
@ -3,16 +3,15 @@ import pygame
|
|||||||
import regal
|
import regal
|
||||||
import paczka
|
import paczka
|
||||||
from wozek import Wozek
|
from wozek import Wozek
|
||||||
from wyszukiwanie import wyszukiwanie_bfs, Stan, SearchSpace
|
import wyszukiwanie
|
||||||
|
import ekran
|
||||||
|
|
||||||
pygame.init()
|
pygame.init()
|
||||||
screen = pygame.display.set_mode((980, 980))
|
# screen = pygame.display.set_mode((980, 980))
|
||||||
miejsce = pygame.image.load('images/miejsce_paczek.png')
|
# miejsce = pygame.image.load('images/miejsce_paczek.png')
|
||||||
|
#
|
||||||
pygame.display.set_caption("Inteligentny wozek")
|
# pygame.display.set_caption("Inteligentny wozek")
|
||||||
icon = pygame.image.load('images/icon.png')
|
# icon = pygame.image.load('images/icon.png')
|
||||||
pygame.display.set_icon(icon)
|
# pygame.display.set_icon(icon)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -23,65 +22,86 @@ def main():
|
|||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
|
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
if event.type == pygame.MOUSEBUTTONDOWN:
|
||||||
grid = SearchSpace()
|
# lewy przycisk myszy
|
||||||
# create start and goal states
|
if event.button == 1:
|
||||||
start_state = Stan(x=1, y=0, kierunek=0) # for example
|
x = pygame.mouse.get_pos()[0]
|
||||||
goal_state = Stan(x=12, y=0, kierunek=0) # for example
|
y = pygame.mouse.get_pos()[1]
|
||||||
|
wiersz = ekran.sprawdz_ktory_wiersz(x)
|
||||||
|
kolumna = ekran.sprawdz_ktora_kolumna(y)
|
||||||
|
docelowy_stan = wyszukiwanie.Stan(wiersz*70, kolumna*70, 0)
|
||||||
|
# print(f'{docelowy_stan.x} + {docelowy_stan.y}')
|
||||||
|
# wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan)
|
||||||
|
# wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, wyszukiwanie.Stan(905, 527))
|
||||||
|
wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan)
|
||||||
|
sciezka = wyszukiwanie.znajdz_sciezke(wezel)
|
||||||
|
# print(sciezka)
|
||||||
|
wozek.przemiesc_wozek_po_sciezce(sciezka)
|
||||||
|
|
||||||
# perform BFS search
|
if event.type == pygame.KEYDOWN:
|
||||||
path = wyszukiwanie_bfs(start_state, goal_state, grid)
|
if event.key == pygame.K_DOWN:
|
||||||
|
wozek.y_change = 1
|
||||||
|
if event.key == pygame.K_UP:
|
||||||
|
wozek.y_change = -1
|
||||||
|
if event.key == pygame.K_RIGHT:
|
||||||
|
wozek.x_change = 1
|
||||||
|
if event.key == pygame.K_LEFT:
|
||||||
|
wozek.x_change = -1
|
||||||
|
|
||||||
# print the path, if found
|
if event.type == pygame.KEYUP:
|
||||||
if path:
|
if event.key == pygame.K_DOWN or event.key == pygame.K_UP:
|
||||||
for p in path:
|
wozek.y_change = 0
|
||||||
print(p.x, p.y)
|
if event.key == pygame.K_RIGHT or event.key == pygame.K_LEFT:
|
||||||
print("Path found:", path)
|
wozek.x_change = 0
|
||||||
else:
|
|
||||||
print("No path found.")
|
|
||||||
|
|
||||||
for state in path:
|
wozek.obecnyStan.x += wozek.x_change
|
||||||
pygame.time.delay(200)
|
wozek.obecnyStan.y += wozek.y_change
|
||||||
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)
|
|
||||||
|
|
||||||
|
if wozek.obecnyStan.x <= 0:
|
||||||
|
wozek.obecnyStan.x = 0
|
||||||
|
elif wozek.obecnyStan.x >= 916:
|
||||||
|
wozek.obecnyStan.x = 916
|
||||||
|
if wozek.obecnyStan.y <= 0:
|
||||||
|
wozek.obecnyStan.y = 0
|
||||||
|
elif wozek.obecnyStan.x >= 916:
|
||||||
|
wozek.obecnyStan.x = 916
|
||||||
|
|
||||||
# Drawing
|
# grid = SearchSpace()
|
||||||
screen.fill((51,51,51)) # removes object trail
|
# # create start and goal states
|
||||||
screen.blit(miejsce, (430, 400))
|
# start_state = Stan(x=1, y=0, kierunek=0) # for example
|
||||||
|
# goal_state = Stan(x=12, y=0, kierunek=0) # for example
|
||||||
|
|
||||||
# idRegału, Długość regału podana w kratkach, Współrzędne od których ma być tworzony regał (wiersz,kolumna) - poziomo
|
# # Drawing
|
||||||
# Współrzędne od (1,1) do (10,10)
|
# screen.fill((51, 51, 51)) # removes object trail
|
||||||
regal.Regal(1, 1, 2, 2)
|
# screen.blit(miejsce, (430, 400))
|
||||||
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)
|
# idRegału, Długość regału podana w kratkach, Współrzędne od których ma być tworzony regał (wiersz,kolumna) - poziomo
|
||||||
regal.Regal(10, 1, 2, 9)
|
# Współrzędne od (1,1) do (10,10)
|
||||||
regal.Regal(11, 1, 3, 8)
|
# regal.Regal(1, 1, 2, 2)
|
||||||
regal.Regal(12, 1, 3, 9)
|
# 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)
|
||||||
|
|
||||||
regal.Regal(13, 1, 8, 8)
|
# wozek.draw()
|
||||||
regal.Regal(14, 1, 8, 9)
|
#
|
||||||
regal.Regal(15, 1, 9, 8)
|
# pygame.display.flip() # updating frames
|
||||||
regal.Regal(16, 1, 9, 9)
|
ekran.odswiez_ekran(wozek)
|
||||||
|
|
||||||
wozek.draw()
|
|
||||||
|
|
||||||
pygame.display.flip() # updating frames
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user