import pygame import modele import numpy as np import random import os import shutil import astar pygame.init() # kolory BLACK = (0, 0, 0) WHITE = (255, 255, 255) GREEN = (0, 255, 0) RED = (255, 0, 0) BLUE = (40, 50, 200) GREY = (128, 128, 128) MAGENTA = (255, 0, 144) YELLOW = (255, 255, 0) # wysokosc i szerokosc kazdej kratki WIDTH = 60 HEIGHT = 60 # margines pomiedzy kratkami MARGIN = 5 # rozmiar kratki ILOSC_WIERSZY = 15 ILOSC_KOLUMN = 15 # rozmiar okna WINDOW_SIZE = [980, 980] def game(): obiekty = utworzObiekty() # Petla az uzytkownik zamknie program done = False clock = pygame.time.Clock() temp = True start = False # -------- Glowna petla programu ----------- while not done: # obsluga zdarzen typu nacisniecie klawisza lub przycisku myszy for event in pygame.event.get(): # User did something if event.type == pygame.QUIT: # If user clicked close done = True # Flag that we are done so we exit this loop elif event.type == pygame.MOUSEBUTTONDOWN: # Zapisywanie pozycji myszki po kliknieciu pozycja_myszki = pygame.mouse.get_pos() # Zamiana pozycji na konkretne koordy kolumna = pozycja_myszki[0] // (WIDTH + MARGIN) wiersz = pozycja_myszki[1] // (HEIGHT + MARGIN) print("Click ", pozycja_myszki, "Grid coordinates: ", wiersz, kolumna) elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: obiekty["smieciarka"].w_lewo() if event.key == pygame.K_RIGHT: obiekty["smieciarka"].w_prawo() if event.key == pygame.K_UP: obiekty["smieciarka"].w_gore() if event.key == pygame.K_DOWN: obiekty["smieciarka"].w_dol() # obiekty["smieciarka"].rand_move() while(temp): obiekty["smieciarka"].astar_move(obiekty) temp = False clock.tick(7) #start = obiekty["plansza"][0, 14] #koniec = obiekty["plansza"][14, 0] #print(astar.astar(obiekty, (0, 14), (14, 0))) #print(len(astar.astar(start, koniec))) pygame.quit() def rysowaniePlanszy(obiekty): obiekty["obraz"].fill(BLACK) # rysowanie planszy for i in range(ILOSC_WIERSZY): for j in range(ILOSC_KOLUMN): pygame.draw.rect(obiekty["obraz"], obiekty["plansza"][i, j].kolor, [(MARGIN + WIDTH) * obiekty["plansza"][i, j].pozY + MARGIN, (MARGIN + HEIGHT) * obiekty["plansza"][i, j].pozX + MARGIN, WIDTH, HEIGHT]) obiekty["sprajty"].draw(obiekty["obraz"]) pygame.display.update() def utworzObiekty(): # Tworzenie planszy i kratek plansza = np.array([[modele.Kratka(i, j) for i in range(ILOSC_KOLUMN)] for j in range(ILOSC_WIERSZY)]) all_sprites_list = pygame.sprite.Group() # smieciarka smieciarka = modele.Smieciarka(14, 14) plansza[14, 14].setKolor(BLUE) plansza[14, 14].setObiekt(smieciarka) # punkt docelowy plansza[0, 0].setKolor(MAGENTA) # tworzenie wyswietlanego okna os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (0, 30) obraz = pygame.display.set_mode(WINDOW_SIZE) smieciarka.setObraz(obraz) pygame.display.set_caption("Inteligentna śmieciarka") all_sprites_list.add(smieciarka) obiekty = { "plansza": plansza, "smieciarka": smieciarka, "obraz": obraz, "sprajty": all_sprites_list } smieciarka.setObiekty(obiekty) smieciarka.setPlansza(plansza) return obiekty