def stat(surface): """Отображает окно статистики """ image = pygame.image.load(stat_hist.histogramm()) finished = False while not finished: surface.fill(sett.WHITE) back_butt = Buttons.Button() surface.blit(image, (10, 150)) printer(surface, 'Статистика', 40, (300, 50)) rec_x = 378 - 8 * (len(str(stat_hist.record())) - 1 ) # Центрирование строки с рекордным результатом printer(surface, 'Рекорд: ' + str(stat_hist.record()), 25, (rec_x, 600)) back_butt.create_button(surface, sett.WHITE, 375, 660, 150, 60, 3, "Назад", sett.BLACK) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() elif event.type == MOUSEBUTTONDOWN: if back_butt.pressed(pygame.mouse.get_pos()): finished = True pygame.display.flip()
def pause(surface): """Отображает окно паузы. Примает поверхность вывода. """ finished = False while not finished: surface.fill(sett.WHITE) printer(surface, 'Пауза', 50, (360, 330)) cont_butt = Buttons.Button() cont_butt.create_button(surface, sett.WHITE, 325, 420, 250, 80, 3, "Продолжить", sett.BLACK) exit_butt = Buttons.Button() exit_butt.create_button(surface, sett.WHITE, 325, 520, 250, 80, 3, "Выйти из игры", sett.BLACK) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() elif event.type == MOUSEBUTTONDOWN: if cont_butt.pressed(pygame.mouse.get_pos()): finished = True elif exit_butt.pressed(pygame.mouse.get_pos()): main_menu.menu(surface) pygame.display.flip()
def menu(surface): """Оперирует окном главного меню. Примает поверхность вывода. """ finished = False vert_control_tick = 0 demo_fig = [] while not finished: surface.fill(sett.WHITE) printer(surface, 'Тетрис', 50, (340, 330)) play_butt = Buttons.Button() settings_butt = Buttons.Button() stat_butt = Buttons.Button() play_butt.create_button(surface, sett.WHITE, 350, 420, 200, 80, 3, "Играть", sett.BLACK) settings_butt.create_button(surface, sett.WHITE, 350, 520, 200, 80, 3, "Настройки", sett.BLACK) stat_butt.create_button(surface, sett.WHITE, 350, 620, 200, 80, 3, "Статистика", sett.BLACK) vert_control_tick, demo_fig = animation(surface, vert_control_tick, demo_fig) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() elif event.type == MOUSEBUTTONDOWN: if play_butt.pressed(pygame.mouse.get_pos()): new_game = Game(surface) new_game.driver() elif settings_butt.pressed(pygame.mouse.get_pos()): settings(surface) elif stat_butt.pressed(pygame.mouse.get_pos()): stat(surface) pygame.display.flip()
def runExperiemnt(detector, matcher, filesList, path, algorithmName): matches_set = seekMatches(detector, matcher, filesList, path) filtered = basicFormater(matches_set) dataFiltered = printer(filtered) saveToFile(algorithmName + "-filtered.csv", dataFiltered) dataGlobal = globalPrinter(matches_set, filesList, path) saveToFile(algorithmName + "-global.csv", dataGlobal) dataMatch = matchPrinter(filtered) saveToFile(algorithmName + "-match.csv", dataMatch)
def game_over(surface, lines, points): """Оперирует окном окончания игры. Записывает в txt-файлы дату, время игры и количество очков. Примает поверхность вывода, а также число уничтоженных линий и количество набранных очков. """ finished = False curr_sound.play('game_ov') file = open("tetris_datetime.txt", "a") t = datetime.datetime.now() file.write(str(t)[0:16] + '\n') file.close() file = open("tetris_score.txt", "a") file.write(str(points) + '\n') file.close() histogramm() while not finished: surface.fill(sett.WHITE) printer(surface, 'Игра окончена', 45, (245, 330)) lines_x = 365 - (len(str(lines)) - 1) * 8 # Центрирование строки с числом линий printer(surface, 'Линий: ' + str(lines), 30, (lines_x, 410)) points_x = 365 - (len(str(points)) - 1) * 8 # Центрирование строки с числом очков printer(surface, 'Очков: ' + str(points), 30, (points_x, 460)) curr_music.stop() ex_butt = Buttons.Button() ex_butt.create_button(surface, sett.WHITE, 350, 530, 200, 60, 3, "В меню", sett.BLACK) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() elif event.type == MOUSEBUTTONDOWN: if ex_butt.pressed(pygame.mouse.get_pos()): curr_music.play() main_menu.menu(surface) pygame.display.flip()
def draw(self): """Отрисовывает все объекты класса. """ self.screen.fill(sett.WHITE) # Фон self.glass.draw() self.next_box.draw() self.pause_butt.create_button(self.screen, sett.WHITE, 640, 420, 100, 80, 3, "Пауза", sett.BLACK) self.curr_fig.draw() self.next_fig.draw_next() for dead_cube in self.dead_cubes: # Отрисовка неподвижных кубиков dead_cube.draw() printer(self.screen, "Следующая:", 28, (585, 52)) printer(self.screen, "Линии: " + str(self.curr_lines), 28, (585, 320)) printer(self.screen, "Очки: " + str(self.curr_points), 28, (585, 365))
def __init__(self): population = list() if POPULATION_SIZE & 1 == 0: population = self.populate(population) population = self.iterate(population) printer(population)
def settings(surface): """Отображает окно пользовательских настроек и управляет им. Примает поверхность вывода. """ finished = False while not finished: surface.fill(sett.WHITE) # Вывод надписей на экран printer(surface, 'Настройки', 40, (320, 160)) printer(surface, 'Музыка', 32, (380, 260)) printer(surface, 'Звуки', 32, (153, 260)) printer(surface, 'Тема', 32, (645, 260)) # Создание кнопок. Впоследствии будет переделано! music0_butt = Buttons.Button() music1_butt = Buttons.Button() music2_butt = Buttons.Button() sounds0_butt = Buttons.Button() sounds1_butt = Buttons.Button() theme0_butt = Buttons.Button() theme1_butt = Buttons.Button() back_butt = Buttons.Button() # Форматирование кнопок music0_butt.create_button(surface, sett.WHITE, 350, 330, 200, 60, 3, "Без музыки", sett.BLACK) music1_butt.create_button(surface, sett.WHITE, 350, 430, 200, 60, 3, "Оригинальная", sett.BLACK) music2_butt.create_button(surface, sett.WHITE, 350, 530, 200, 60, 3, "Современная", sett.BLACK) sounds1_butt.create_button(surface, sett.WHITE, 135, 330, 150, 60, 3, "Включить", sett.BLACK) sounds0_butt.create_button(surface, sett.WHITE, 135, 430, 150, 60, 3, "Выключить", sett.BLACK) theme0_butt.create_button(surface, sett.WHITE, 615, 330, 150, 60, 3, "Светлая", sett.BLACK) theme1_butt.create_button(surface, sett.WHITE, 615, 430, 150, 60, 3, "Тёмная", sett.BLACK) back_butt.create_button(surface, sett.WHITE, 375, 650, 150, 60, 3, "Назад", sett.BLACK) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() elif event.type == MOUSEBUTTONDOWN: if back_butt.pressed(pygame.mouse.get_pos()): finished = True elif music0_butt.pressed(pygame.mouse.get_pos()): curr_music.stop() elif music1_butt.pressed(pygame.mouse.get_pos()): curr_music.change('original') elif music2_butt.pressed(pygame.mouse.get_pos()): curr_music.change('modern') elif theme0_butt.pressed(pygame.mouse.get_pos()): sett.BLACK, sett.WHITE, sett.WHITE_HEX = (0, 0, 0), ( 255, 255, 255), '#ffffff' elif theme1_butt.pressed(pygame.mouse.get_pos()): sett.BLACK, sett.WHITE, sett.WHITE_HEX = (255, 255, 255), ( 0, 0, 0), '#000000' elif sounds0_butt.pressed(pygame.mouse.get_pos()): curr_sound.is_sound_on = False elif sounds1_butt.pressed(pygame.mouse.get_pos()): curr_sound.is_sound_on = True pygame.display.flip()