114 прочтений · 1 месяц назад
Год Змеи «2000 баксов за сигарету»: история одной трагедии
Описать конкретное событие в красивых, абстрактных песенных образах, не потеряв при этом почти документальной точности – редкий дар, но лидеру группы «Год Змеи» Алексею Марковникову это даётся легко. Его композиция «2 000 $ за сигарету», посвящённая столкновению над Боденским озером, стала известной не только среди поклонников рок-музыки. Её популярность вышла за пределы жанра, получив признание слушателей всех возрастов и социальных групп. Давайте узнаем, как создавался трек и какие события вдохновили на него авторов...
32 прочтения · 2 года назад
Классическая игра "Змейка" на Python. Наверное, уже существует миллион версий и вариаций кода игры "Змея", и я решил сделать миллион первую. Перед тем, как писать свою версию, посмотрел 3 кода с открытого доступа в интернете. Вероятнее всего, есть какая-то схожесть с ними. Код игры от Надила Вильдановича прикладываю ниже: import pygame import random # Инициалиация пайджем pygame.init() # Рабочая область WINDOW_WIDTH = 500 WINDOW_HEIGHT = 500 WINDOW_TITLE = "Snake Game" WINDOW = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) pygame.display.set_caption(WINDOW_TITLE) # цвета WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) GREEN = (0, 255, 0) # Шрифо FONT = pygame.font.SysFont(None, 48) # часы CLOCK = pygame.time.Clock() # Игровые переменные SNAKE_SIZE = 10 SNAKE_SPEED = 10 SNAKE_COLOR = GREEN FOOD_COLOR = RED SCORE = 0 # Настройка змейки snake = [(WINDOW_WIDTH/2, WINDOW_HEIGHT/2)] snake_direction = "right" # Настройка еды food = (random.randint(0, WINDOW_WIDTH/SNAKE_SIZE-1)*SNAKE_SIZE, random.randint(0, WINDOW_HEIGHT/SNAKE_SIZE-1)*SNAKE_SIZE) # игровой цикл while True: # Handle events for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() elif event.type == pygame.KEYDOWN: if event.key == pygame.K_UP and snake_direction != "down": snake_direction = "up" elif event.key == pygame.K_DOWN and snake_direction != "up": snake_direction = "down" elif event.key == pygame.K_LEFT and snake_direction != "right": snake_direction = "left" elif event.key == pygame.K_RIGHT and snake_direction != "left": snake_direction = "right" # движения змеи if snake_direction == "up": snake.insert(0, (snake[0][0], snake[0][1]-SNAKE_SIZE)) elif snake_direction == "down": snake.insert(0, (snake[0][0], snake[0][1]+SNAKE_SIZE)) elif snake_direction == "left": snake.insert(0, (snake[0][0]-SNAKE_SIZE, snake[0][1])) elif snake_direction == "right": snake.insert(0, (snake[0][0]+SNAKE_SIZE, snake[0][1])) # Проверка на пересечение с едой if snake[0] == food: SCORE += 1 food = (random.randint(0, WINDOW_WIDTH/SNAKE_SIZE-1)*SNAKE_SIZE, random.randint(0, WINDOW_HEIGHT/SNAKE_SIZE-1)*SNAKE_SIZE) else: snake.pop() # Проверка на столкновение со стенами и собственным телом if snake[0][0] < 0 or snake[0][0] >= WINDOW_WIDTH or snake[0][1] < 0 or snake[0][1] >= WINDOW_HEIGHT or snake[0] in snake[1:]: pygame.quit() sys.exit() # Фон WINDOW.fill(BLACK) # Змея for segment in snake: pygame.draw.rect(WINDOW, SNAKE_COLOR, (segment[0], segment[1], SNAKE_SIZE, SNAKE_SIZE)) # Еда pygame.draw.rect(WINDOW, FOOD_COLOR, (food[0], food[1], SNAKE_SIZE, SNAKE_SIZE)) # Счеь score_text = FONT.render("Score: "+str(SCORE), True, WHITE) score_rect = score_text.get_rect() score_rect.center = (WINDOW_WIDTH/2, 20) WINDOW.blit(score_text, score_rect) # Дислей pygame.display.update() # Часы CLOCK.tick(SNAKE_SPEED)