Найти в Дзене
Классическая игра "Змейка" на 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)
2 года назад
Игра "Ловец яиц" на языке Python от Надила Вильдановича А. # Ввод пайджейм pygame.init() # Рабочее пространство screen_width = 400 screen_height = 600 screen = pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("Ловец яичек") # Настройка часов clock = pygame.time.Clock() # Ввод цвета white = (255, 255, 255) black = (0, 0, 0) red = (255, 0, 0) # Ввод игрока player_width = 50 player_height = 50 player_x = screen_width / 2 - player_width / 2 player_y = screen_height - player_height player_speed = 5 # Рандомно падающее яйцо и его размеры egg_width = 30 egg_height = 30 egg_x = random.randint(0, screen_width - egg_width) egg_y = 0 egg_speed = 3 # Счет score = 0 font = pygame.font.SysFont(None, 30) # Основное игровой цикл running = True while running: # Обработка события for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: running = False # Движение игрока keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and player_x > 0: player_x -= player_speed if keys[pygame.K_RIGHT] and player_x < screen_width - player_width: player_x += player_speed # Движение яйца egg_y += egg_speed # Поймано ли яйцо? if egg_y + egg_height > player_y and egg_x + egg_width > player_x and egg_x < player_x + player_width: egg_x = random.randint(0, screen_width - egg_width) egg_y = 0 score += 1 egg_speed += 0.1 # Не пропущено ли яйцо? if egg_y > screen_height: egg_x = random.randint(0, screen_width - egg_width) egg_y = 0 score -= 1 egg_speed += 0.1 # Изображение screen.fill(white) pygame.draw.rect(screen, black, (player_x, player_y, player_width, player_height)) pygame.draw.ellipse(screen, red, (egg_x, egg_y, egg_width, egg_height)) score_text = font.render("Score: " + str(score), True, black) screen.blit(score_text, (10, 10)) pygame.display.update() # Limit the frame rate clock.tick(60) # Выход pygame.quit() Ниже прилагаю скрин работы компилированного файла. Более подробно можно прочитать в моём паблике по ссылке: vk.com/...138 PS: если Вами найдены грамматические, лексические или даже физические и математические ошибки, то, прошу Вас, сообщайте о них на почту: akhmerov.nadil@gmail.com
2 года назад
Программа "Кубические уравнения" на языке Python. С одним из учеников старшей школы изучали тему уравнений высших степеней, и я ему дал задание написать программу на языке Python по решению кубических уравнений, с которой он справился. Немного отшлифовал некоторые корявые моменты и некоторые ошибки, и, по-моему, всё работает шикарно. Код программы прикладываю ниже: import math a = float(input("Введите коэф-т a при x^3: ")) b = float(input("Введите коэф-т b при x^2: ")) c = float(input("Введите коэф-т c при x: ")) d = float(input("Введите свободный член d: ")) p = (3*a*c - b**2)/(3*a**2) q = (2*b**3 - 9*a*b*c + 27*a**2*d)/(27*a**3) discriminant = q**2/4 + p**3/27 if discriminant > 0: r = -q/2 + math.sqrt(discriminant) s = -q/2 - math.sqrt(discriminant) u = r**(1/3) if r >= 0 else -(-r)**(1/3) v = s**(1/3) if s >= 0 else -(-s)**(1/3) x1 = u + v - b/(3*a) x2 = -(u + v)/2 - b/(3*a) + (u - v)*math.sqrt(3)/2j x3 = -(u + v)/2 - b/(3*a) - (u - v)*math.sqrt(3)/2j print("Реальный корень: x1 =", x1) print("Комплексные корни: x2 =", x2, "и x3 =", x3) elif discriminant == 0: if q >= 0: x1 = -2*q**(1/3) - b/(3*a) x2 = q**(1/3) - b/(3*a) print("Все три корня реальны, два из них совпадают: x1 =", x1, "и x2 = x3 =", x2) else: x1 = q**(1/3) - b/(3*a) x2 = x3 = -(q**(1/3) + b/(3*a))/2 print("Все три корня реальны, два их них совпадают: x1 =", x1, "и x2 = x3 =", x2) else: alpha = (-q/2 + discriminant**(1/2))**(1/3) beta = (-q/2 - discriminant**(1/2))**(1/3) x1 = alpha + beta - b/(3*a) x2 = -(alpha + beta)/2 - b/(3*a) + (alpha - beta)*math.sqrt(3)/2j x3 = -(alpha + beta)/2 - b/(3*a) - (alpha - beta)*math.sqrt(3)/2j print("Корень №1: x1 =", x1) print("Корни №2 и №3: x2 =", x2, "и x3 =", x3) Скрин по работе программы прикладываю ниже. PS: если Вами найдены грамматические, лексические или даже физические и математические ошибки, то, прошу Вас, сообщайте о них на почту: akhmerov.nadil@gmail.com
996 читали · 2 года назад
Задача из всероссийской олимпиады школьников 2011-2012 уч. года. Региональный этап. 9 класс. В тот самый год я как раз был на обучении в 9-ом классе. Выиграл школьную олимпиаду, завалил муниципальную, и потому до регионального этапа не дошел, но был максимально заинтересован решением задач всеросса любых этапов, так как мой учитель физики, В.Л.Харитонов, постоянно давал задачки на дом подобного характера. И вот мне 26 лет, и я решил посмотреть (а может даже и вспомнить), что же всё-таки там было в 2011-2012 уч. году регионального этапа всеросса по физике. Завлекла задача №4, и я её решил. (Задачи №1, №2, №3 и №5 приложу позже)
2 года назад
Вопрос: "Почему при дифференцировании по r производная от площади круга (S =pir^2) равна длине окружности (L = 2pir)?" Ответ читайте, пожалуйста, ниже. Доказательство неформальное и простое. Можно пойти и дальше и доказать (хотя бы неформально), что производная от объема шара - есть площадь поверхности сферы. Изящное доказательство для последнего случая я видел тут: www.youtube.com/...u4e PS: если Вами найдены грамматические, лексические или даже физические и математические ошибки, то, прошу Вас, сообщайте о них на почту akhmerov.nadil@gmail.com или в личные сообщения в группе vk.com/...111
2 года назад
Вопрос: "Всё ли по порядке?" 1. Длина диаметра 2. Площадь круга 3. Объема шара 4. Гиперобъем гипершара 5. Гипергиперобъем гипергипершара 6. и так далее
2 года назад
Вопрос: "В какое время суток звук в воздухе распространяется быстрее?" Это простейшая задача о том, при какой температуре звук от говорящего до слушателя долетит быстрее. Ответ на данный вопрос читайте в приложенном файле. PS: если Вами найдены грамматические, лексические или даже физические и математические ошибки, то, прошу Вас, сообщайте о них на почту akhmerov.nadil@gmail.com или в личные сообщения по ссылке vk.com/..._32
2 года назад
Задача о колебаниях сферы в параболлистической яме. Чтобы представить эту ситуацию, нужно взять маленький шарик и бросить его в наполненную воздухом чашку с округлым (желательно парабаллистическим) дном и наблюдать за его колебаниями из стороны в сторону. Но если всё же нет шарика и нет чашки, зато есть интернет, то можно посмотреть это видео с прекрасным преподавателем Гервидс В. И. Ссылка на видео: www.youtube.com/...%98 Решение задачи представлено на листе А4 с введением лагранжиана. Если слегка усложнить задачу, то с помощью легкого школьного преобразования, из последней полученной мною формулы можно получить и период колебений данного шарика. PS: если Вами найдены грамматические, лексические или даже физические и математические ошибки, то, прошу Вас, сообщайте о них на почту akhmerov.nadil@gmail.com или в личные сообщения в сообществе vk.com/..._56
2 года назад
Вопрос: "Как быстро птицы машут своими крыльями?" Ответ: в некотором приближении всё зависит от их массы. Читай более подробно в прикреплённых файлах PS: если Вами найдены грамматические, лексические или даже физические и математические ошибки, то, прошу Вас, сообщайте о них на почту akhmerov.nadil@gmail.com или по ссылке в личные сообщения vk.com/..._47
2 года назад
Вопрос: "Какова максимальная громкость в децибелах?" Ответ: 195 децибел, если брать давление воздуха P = Pатм. Подробное решение можно посмотреть на прикреплённом фото. PS: если Вами найдены грамматические, лексические или даже физические и математические ошибки, то, прошу Вас, сообщайте о них на почту akhmerov.nadil@gmail.com или в личные сообщения по ссылке vk.com/..._51
2 года назад
Вопрос: "Можно ли теоретически и практически увеличить продолжительность времени суток?" Ответ: "Да, можно, но с помощью землятрясений достаточной амплитуды. Более подробно читай в приложенных файлах." PS: если Вами найдены грамматические, лексические или даже физические и математические ошибки, то, прошу Вас, сообщайте о них на почту akhmerov.nadil@gmail.com или в личные сообщения по ссылке vk.com/..._42
2 года назад
Вопрос: "Как подсчитать скорость любого чиха?" Причем человечьего или животного - это не важно. Также не важно, в какой среде - в воздухе или в воде. Для всего "чихачьего" сработает одна формула. И о ней ниже. PS: если Вами найдены грамматические, лексические или даже физические и математические ошибки, то, прошу Вас, сообщайте о них на почту akhmerov.nadil@gmail.com или в личные сообщения по ссылке hvk.com/..._64
2 года назад