#pygame - biblioteka do symulacji graficznych import pygame #system - klasy związane z pygame #minesweeper - klasy związane z samym saperem #ai - klasa wykonująca ruchy sapera from classes import system, minesweeper, ai #ustalenie wielkości pojedyńczych kawałków mapy, oraz wielkości mapy TILE_SIZE = 64 TILES_X = int(12) TILES_Y = int(10) #wł/wył muzyki MUSIC=True #ustalenie FPS FPS = 60 def main(): if MUSIC: pygame.mixer.init() pygame.mixer.Channel(0).play(pygame.mixer.Sound("assets/music.ogg"), -1) #utworzenie okna do gry window = system.Window(TILE_SIZE*TILES_X, TILE_SIZE*TILES_Y, "Intelligent Minesweeper", "icon.png") #utworzenie objektu mapy, wygenerowanie jej i narysowanie na ekranie map = minesweeper.Map(window, TILE_SIZE, TILES_X, TILES_Y) map.generate() map.draw_tiles() #utworzenie sapera saper = minesweeper.Minesweeper(0,0, TILE_SIZE) #pierwszy render map.draw_tiles() map.draw_objects() saper.draw(window.window, 0.1) pygame.display.update() #utworzenie objektu klasy AI AI = ai.AI(window, map, saper) #wykonanie funkcji ready() AI AI.ready() #główna pętla game_loop = True clock = pygame.time.Clock() while game_loop: #wdrożenie FPS, delta - czas od ostatniej klatki delta = clock.tick(FPS) #wykonanie funkcji update() AI AI.updateFPS() if saper.offset_x==0 and saper.offset_y==0: AI.updateTile() #narysowanie terenu i obiektów map.draw_tiles() map.draw_objects() saper.draw(window.window, delta) #odświeżenie ekranu pygame.display.update() #sprawdzanie różnych interakcji użytkownika for event in pygame.event.get(): if event.type == pygame.QUIT: game_loop = False pygame.quit() if __name__ == "__main__": main()