예제 #1
0
def play():
    pygame.init()  # инициализируем библиотеку pygame
    window = pygame.display.set_mode((441, 480))  # создание окна c размером
    pygame.display.set_caption("Змейка")  # задаём название окна
    control = Control()
    snake = Snake()
    bot = Bot()
    #is_basic True -- запуск обычный, False -- запуск рандомной карты из файлов
    gui = Gui(is_basic=False)
    food = Food()
    gui.init_field()
    food.get_food_position(gui, snake.body, bot.body)
    var_speed = 0  # переменная для регулировки скорости выполнения программы

    #gui.create_image()

    while control.flag_game:
        gui.check_win_lose(snake.body)
        control.control()
        window.fill(pygame.Color(
            "Black"))  # закрашивание предыдущего квадрата чёрным цветом
        if gui.game == "GAME":  # если флаг равен "GAME"
            snake.draw_snake(
                window)  # то вызываем метод отрисовки змеи на экране
            bot.draw_snake(window)  #отрисовка бота-змеи
            if (food.timer <= 0):  # проверка на жизнь еды
                food.get_food_position(gui, snake.body, bot.body)
            food.draw_food(window)  # и метод отрисовки еды
        elif gui.game == "WIN":  # если флаг равен "WIN"
            if (bot.points <=
                    snake.points):  #проверка очков, кто больше набрал
                gui.draw_win(window)
            else:
                gui.draw_lose(window)
        elif gui.game == "LOSE":  # если флаг равен "LOSE"
            gui.draw_lose(window)  # то отрисовываем избражение поражения
        gui.draw_indicator(window)
        gui.draw_level(window)
        if var_speed % 50 == 0 and control.flag_pause:  # если делится без остатка, то производим изменение координаты квадрата and реакция на паузу
            snake.moove(control.flag_direction)
            snake.check_barrier(gui)

            mv = ""  #проверка бота, все ли работает правильно (можно убрать, но так спокойнее)
            try:
                mv = bot.move(food.food_position, gui.level)
            except:
                mv = bot.move(food.food_position, gui.level)
            #print(mv)
            bot.moove(mv)
            #не трубуется, тк бот никогда к ним не подлезет bot.check_barrier(gui)
            #проверка на съедение и генерация новой еды вне тела змеи
            if snake.eat(food, gui) or bot.eat(food, gui):
                food.get_food_position(gui, snake.body, bot.body)

            bot.check_end_window()
            snake.check_end_window()
            bot.animation()
            snake.animation()
        var_speed += 1
        pygame.display.flip()  # метод отображения окна
예제 #2
0
from food import Food

pygame.init()
window = pygame.display.set_mode((441, 441))
pygame.display.set_caption("Змейка")
"""Создаем объекты"""
control = Control()
snake = Snake()
gui = Gui()
food = Food()
gui.init_field()
food.get_food_position(gui)
var_speed = 0

while control.flag_game:
    gui.check_win_lose()
    control.control()
    window.fill(pygame.Color("Black"))
    if gui.game == "GAME":
        snake.draw_snake(window)
        food.draw_food(window)
    elif gui.game == "WIN":
        gui.draw_win(window)
    elif gui.game == "LOSE":
        gui.draw_lose(window)
    gui.draw_indicator(window)
    gui.draw_level(window)
    snake.check_end_window()
    if var_speed % 12 == 0 and control.flag_pause and gui.game == "GAME":
        snake.moove(control)
        snake.chech_barrier(gui)
예제 #3
0
파일: main.py 프로젝트: sanyonk/Projects
from gui import Gui
from food import Food

pygame.init()
window = pygame.display.set_mode((441,441))
pygame.display.set_caption("Змейка")
control = Control()
snake = Snake()
gui = Gui()
food = Food()
gui.init_field()
food.get_food_position(gui)
var_speed = 0

while control.flag_game:
	gui.check_win_lose(window)
	control.control()
	window.fill(pygame.Color("Black"))

	if gui.game == "GAME":
		snake.draw_snake(window)
		food.draw_food(window)
	elif gui.game == "WIN":
		gui.draw_win(window)
	elif gui.game == "LOSE":
		gui.draw_lose(window)

	gui.draw_indicator(window)
	gui.draw_level(window)
	gui.draw_level(window)