import pygame import modele import numpy as np import random import os import shutil 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() # -------- 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) obiekty["plansza"][kolumna,wiersz].setKolor(BLACK) obiekty["smieciarka"].rand_move() clock.tick(7) 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