Сегодня мы научимся кодировать несколько простых игр, используя распространенные модули Python.
Сегодня мы научимся кодировать несколько простых игр, используя распространенные модули Python.
Почему мы используем Python?
Python – это известный язык программирования. Python код очень легко понять и написать. Считается, что он удобен для разработчиков. Любой новичок может научиться кодировать на Python в течение короткого промежутка времени.
Вот некоторые из самых интересных особенностей этого языка:
- Python – это язык с открытым исходным кодом и распространяется свободно
- Портативный и динамический
- Python супер легко понять и т. д.
Создание простых игр в Python
Давайте теперь реализуем несколько простых игр в Python, которые вы можете построить как новичок, чтобы начать свой путь обучения!
1. Игра викторина в Python
Это очень простая текстовая игра на Python. Это маленькая викторина, которую вы можете сделать для себя или своих друзей. Нам не нужно импортировать какие-либо модули для этой игры, что облегчает её! Попробуйте сами.
СОЗДАЛ МАЙНКРАФТ НА PYTHON!
- Оператор if-else – Для проверки ответов
- Оператор print – для печати выходов
print(‘Welcome to AskPython Quiz’) answer=input(‘Are you ready to play the Quiz ? (yes/no) :’) score=0 total_questions=3 if answer.lower()==’yes’: answer=input(‘Question 1: What is your Favourite programming language?’) if answer.lower()==’python’: score += 1 print(‘correct’) else: print(‘Wrong Answer :(‘) answer=input(‘Question 2: Do you follow any author on AskPython? ‘) if answer.lower()==’yes’: score += 1 print(‘correct’) else: print(‘Wrong Answer :(‘) answer=input(‘Question 3: What is the name of your favourite website for learning Python?’) if answer.lower()==’askpython’: score += 1 print(‘correct’) else: print(‘Wrong Answer :(‘) print(‘Thankyou for Playing this small quiz game, you attempted’,score,»questions correctly!») mark=(score/total_questions)*100 print(‘Marks obtained:’,mark) print(‘BYE!’)
Welcome to AskPython Quiz Are you ready to play the Quiz ? (yes/no) :yes Question 1: What is your Favourite programming language?python correct Question 2: Do you follow any author on AskPython? yes correct Question 3: What is the name of your favourite website for learning Python?askpython correct Thankyou for Playing this small quiz game, you attempted 3 questions correctly!
Marks obtained: 100.0 BYE!
2. Игра в Pong на Python
Большинство из нас слышали о знаменитой игре в Pong. Многие из нас любят играть.
Сегодня мы научимся кодировать эту классическую игру с помощью языка программирования python!
Прежде чем начать кодировать, необходимо установить модуль turtle. Этот модуль представляет собой библиотеку Python, которая позволяет пользователям создавать картины и фигуры, предоставляя им виртуальный холст.
Если у вас его еще нет, вы можете установить библиотеку, используя pip.
1. Установка и настройка Minecraft + Python (в Windows)
C:UsersAdmin>pip install turtle
Вы можете узнать больше о библиотеке turtle из их официальной документации
Попробуйте код самостоятельно!
import turtle as t playerAscore=0 playerBscore=0 #create a window and declare a variable called window and call the screen() window=t.Screen() window.title(«The Pong Game») window.bgcolor(«green») window.setup(width=800,height=600) window.tracer(0) #Creating the left paddle leftpaddle=t.Turtle() leftpaddle.speed(0) leftpaddle.shape(«square») leftpaddle.color(«white») leftpaddle.shapesize(stretch_wid=5,stretch_len=1) leftpaddle.penup() leftpaddle.goto(-350,0) #Creating the right paddle rightpaddle=t.Turtle() rightpaddle.speed(0) rightpaddle.shape(«square») rightpaddle.color(«white») rightpaddle.shapesize(stretch_wid=5,stretch_len=1) rightpaddle.penup() rightpaddle.goto(-350,0) #Code for creating the ball ball=t.Turtle() ball.speed(0) ball.shape(«circle») ball.color(«red») ball.penup() ball.goto(5,5) ballxdirection=0.2 ballydirection=0.2 #Code for creating pen for scorecard update pen=t.Turtle() pen.speed(0) pen.color(«Blue») pen.penup() pen.hideturtle() pen.goto(0,260) pen.write(«score»,align=»center»,font=(‘Arial’,24,’normal’)) #code for moving the leftpaddle def leftpaddleup(): y=leftpaddle.ycor() y=y+90 leftpaddle.sety(y) def leftpaddledown(): y=leftpaddle.ycor() y=y+90 leftpaddle.sety(y) #code for moving the rightpaddle def rightpaddleup(): y=rightpaddle.ycor() y=y+90 rightpaddle.sety(y) def rightpaddledown(): y=rightpaddle.ycor() y=y+90 rightpaddle.sety(y) #Assign keys to play window.listen() window.onkeypress(leftpaddleup,’w’) window.onkeypress(leftpaddledown,’s’) window.onkeypress(rightpaddleup,’Up’) window.onkeypress(rightpaddledown,’Down’) while True: window.update() #moving the ball ball.setx(ball.xcor()+ballxdirection) ball.sety(ball.ycor()+ballxdirection) #border set up if ball.ycor()>290: ball.sety(290) ballydirection=ballydirection*-1 if ball.ycor() 390: ball.goto(0,0) ball_dx = ball_dx * -1 player_a_score = player_a_score + 1 pen.clear() pen.write(«Player A: <> Player B: <> «.format(player_a_score,player_b_score),align=»center»,font=(‘Monaco’,24,»normal»)) os.system(«afplay wallhit.wav) if(ball.xcor()) < -390: # Left width paddle Border ball.goto(0,0) ball_dx = ball_dx * -1 player_b_score = player_b_score + 1 pen.clear() pen.write(«Player A: <>Player B: <> «.format(player_a_score,player_b_score),align=»center»,font=(‘Monaco’,24,»normal»)) os.system(«afplay wallhit.wav) # Handling the collisions with paddles. if(ball.xcor() > 340) and (ball.xcor() < 350) and (ball.ycor() < paddle_right.ycor() + 40 and ball.ycor() >paddle_right.ycor() — 40): ball.setx(340) ball_dx = ball_dx * -1 os.system(«afplay paddle.wav) if(ball.xcor() < -340) and (ball.xcor() >-350) and (ball.ycor() < paddle_left.ycor() + 40 and ball.ycor() >paddle_left.ycor() — 40): ball.setx(-340) ball_dx = ball_dx * -1 os.system(«afplay paddle.wav)
3. Игра Hungry Snake на Python
Это была наша любимая игра, когда мы были детьми. На самом деле мы можем реализовать эту игру в python, импортируя всего два модуля! Как это круто!
Во-первых, нам нужно установить библиотеку turtle. Если у вас она еще не установлена, откройте свой cmd и введите следующую команду.
C:UsersAdmin>pip install turtle
Теперь мы установим случайное модуль. Случайный модуль используется для генерации случайных чисел. В вашем типе CMD в следующей команде.
Теперь мы установим модуль random2. Модуль random2 используется для генерации случайных чисел. Выполните в cmd следующую команду.
C:UsersAdmin>pip install random2
Попробуйте сами код ниже и наслаждайтесь игрой!
import turtle import random w = 500 h = 500 food_size = 10 delay = 100 offsets = < «up»: (0, 20), «down»: (0, -20), «left»: (-20, 0), «right»: (20, 0) >def reset(): global snake, snake_dir, food_position, pen snake = [[0, 0], [0, 20], [0, 40], [0, 60], [0, 80]] snake_dir = «up» food_position = get_random_food_position() food.goto(food_position) move_snake() def move_snake(): global snake_dir new_head = snake[-1].copy() new_head[0] = snake[-1][0] + offsets[snake_dir][0] new_head[1] = snake[-1][1] + offsets[snake_dir][1] if new_head in snake[:-1]: reset() else: snake.append(new_head) if not food_collision(): snake.pop(0) if snake[-1][0] > w / 2: snake[-1][0] -= w elif snake[-1][0] < — w / 2: snake[-1][0] += w elif snake[-1][1] >h / 2: snake[-1][1] -= h elif snake[-1][1] < -h / 2: snake[-1][1] += h pen.clearstamps() for segment in snake: pen.goto(segment[0], segment[1]) pen.stamp() screen.update() turtle.ontimer(move_snake, delay) def food_collision(): global food_position if get_distance(snake[-1], food_position) < 20: food_position = get_random_food_position() food.goto(food_position) return True return False def get_random_food_position(): x = random.randint(- w / 2 + food_size, w / 2 — food_size) y = random.randint(- h / 2 + food_size, h / 2 — food_size) return (x, y) def get_distance(pos1, pos2): x1, y1 = pos1 x2, y2 = pos2 distance = ((y2 — y1) ** 2 + (x2 — x1) ** 2) ** 0.5 return distance def go_up(): global snake_dir if snake_dir != «down»: snake_dir = «up» def go_right(): global snake_dir if snake_dir != «left»: snake_dir = «right» def go_down(): global snake_dir if snake_dir!= «up»: snake_dir = «down» def go_left(): global snake_dir if snake_dir != «right»: snake_dir = «left» screen = turtle.Screen() screen.setup(w, h) screen.title(«Snake») screen.bgcolor(«blue») screen.setup(500, 500) screen.tracer(0) pen = turtle.Turtle(«square») pen.penup() food = turtle.Turtle() food.shape(«square») food.color(«yellow») food.shapesize(food_size / 20) food.penup() screen.listen() screen.onkey(go_up, «Up») screen.onkey(go_right, «Right») screen.onkey(go_down, «Down») screen.onkey(go_left, «Left») reset() turtle.done()
Заключение
Вот и все! Это некоторые из простых игр в Python, которые вы можете создать как новичок и повеселиться! Мы любили создавать эти игры, и мы надеемся, что у вас тоже получиться!
Читайте ещё по теме:
- Разработка игр Rock Paper Scissors на Python
- Реализация Ханойской башни на Python
- Создайте MineSweeper, используя Python из основных для продвинутых
- Научите своих детей построить собственную игру с Python – 1
- Как я использовал Python, чтобы проанализировать игру престолов
- Улучшите свои навыки Python, кодируя игру змеи
- ПОСЛЕДНЯЯ часть – научите своих детей создавать свою собственную игру с помощью Python.
Источник: pythobyte.com
Стрелялка с Pygame №7: счет и рендеринг текста
Седьмая часть проекта «Стрелялка с Pygame». Если пропустили, обязательно вернитесь и начните с первой части. В этот раз начнем вести счет и научимся выводить текст на экран.
В этой серии уроков будет создана полноценная игра на языке Python с помощью библиотеки Pygame. Она будет особенно интересна начинающим программистам, которые уже знакомы с основами языка и хотят углубить знания, а также узнать, что лежит в основе создания игр.
Ведение счета
Ведение счет игрока — простая задача. Нужно переменная с начальным значением 0, к которой будет добавляться +1 при каждом уничтожении астероида. Поскольку астероиды разные, а в крупные попасть легче, чем в маленькие, есть смысл в том, чтобы давать больше очков за уничтожение тех, что поменьше.
Назовем переменную score и объявим ее до игрового цикла:
for i in range(8): m = Mob() all_sprites.add(m) mobs.add(m) score = 0 # Цикл игры running = True
Чтобы назначать очки в зависимости от размера астероида, можно использовать свойство radius . У самых крупных астероидов изображение больше 100 пикселей, а радиус 100 * 0.85 / 2 = 43 пикселя. В то же время радиус самого маленького астероида — всего 8 пикселей. Можно вычитать радиус из большего числа, например 50, чтобы получать количество очков. Так, большой будет давать всего 7 очков, а маленький — 42 очка.
# проверка, попала ли пуля в моб hits = pygame.sprite.groupcollide(mobs, bullets, True, True) for hit in hits: score += 50 — hit.radius m = Mob() all_sprites.add(m) mobs.add(m)
Рендеринг текста
Теперь, когда есть переменная со счетом, нужно отрисовывать ее на экране, и вот это уже посложнее. Делается все в несколько этапов. Если вы планируете выводить текст не один раз, тогда есть смысла создать функцию, которая будет называться draw_text . Ее параметры:
- surf — поверхность, на которой текст будет написан
- text — строка, которую нужно отображать
- x, y — положение
Также нужно выбрать шрифт. Проблема может возникнуть, если выбрать тот шрифт, который не установлен на компьютере. Решить это можно с помощью pygame.font.match_font() , которая ищет наиболее подходящий шрифт в системе.
Вот вся функция draw_text :
font_name = pygame.font.match_font(‘arial’) def draw_text(surf, text, size, x, y): font = pygame.font.Font(font_name, size) text_surface = font.render(text, True, WHITE) text_rect = text_surface.get_rect() text_rect.midtop = (x, y) surf.blit(text_surface, text_rect)
Отрисовка текста на экране — это, фактически, вычисление необходимой структуры пикселей. В компьютерной графике это называется «рендерингом». За это будет отвечать функция font.render() . В функции есть неизвестный параметр True , который отвечает за включение и отключение сглаживания.
Сглаживание
Если вы когда-нибудь пытались нарисовать что-нибудь пикселями (или, например, блоками в Minecraft), то знаете, насколько сложно изображать изогнутые линии на квадратной сетке. Максимум, что выходит, — зубчатая форма. Такая зубчатость называется «алиасингом». Вот как она выглядит:
Первая «a» выглядит чересчур угловатой из-за алиасинга. Сглаживание (анти-алиасинг) — это то, как современные компьютеры работают с текстом, чтобы он не был настолько зубчатым. Это происходит с помощью смешивания пикселей с фоном на границах объектов. В уменьшенном масштабе такой шрифт выглядит чисто и аккуратно.
Отображение счета
Теперь можно показывать счет на экране. Нужно лишь добавить его в раздел отрисовки в верхней части экрана по центру.
# Рендеринг screen.fill(BLACK) screen.blit(background, background_rect) all_sprites.draw(screen) draw_text(screen, str(score), 18, WIDTH / 2, 10)
Вот и все. В следующей раз будем работать с музыкой и звуками.
Источник: pythonru.com
10 игр на Python с исходниками
10 игр на Python с исходниками для тех, кто хочет изучать данный язык.
Dodger
Memory Puzzle
Sliding Puzzle
Simon
Nibbles
Tetris
Katamari Damacy
Sokoban
Othello
Flood It
Предыдущая статья DuckDuckGo в 2021 году: Создание суперприложения для защиты частной жизним
Следующая статья Исходный код DOOM Classic под iOS
ЭТО МОЖЕТ БЫТЬ ИНТЕРЕСНОЕЩЕ ОТ АВТОРА
Перевод с английского на немецкий с использованием моделей Seq2Seq в PyTorch
Правильный способ сравнения чисел с плавающей точкой в Python
Алгоритмы и структуры данных на Python
Популярное
Raspberry Pi Computer Architecture Essentials
Установка и настройка 1С на CentOS 8
Изучаем основы *nix man gzip chmod pid.
Как включить RDP на удаленной машине?
Горячее
Шпаргалка по Django
ВКонтакте» перешла на новый сетевой протокол QUIC
Собеседование по Java – исключения (exceptions) (вопросы и ответы)
Низкоуровневое программирование
Выбор редактора
Подросток создал модель Манхэттена из переработанных компьютерных деталей
Подборка часто используемых инструментов удаленного подключения
Парсинг веб-страниц с помощью C++
Популярные посты
Логическая задача про 51 рубль
Создаем многопользовательскую веб-игру Javascript
Топ самых сильных IT университетов в России 2021
ПОПУЛЯРНЫЕ КАТЕГОРИИ
- Новости 189
- Системный администратор 178
- Видео 96
- Программирование Java 86
- Книги по программированию 66
- Подборки 56
- Frontend 46
- Задачи 42
- Переводы 29
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций. Разработка игр #Gamedev, создание и верстка сайтов, дизайн, уроки по схемотехнике, уроки по созданию приложений для IOS и Android и многое другое! C++, C#, Java, Objective‑C, Perl, Python, Ruby, PHP, Lua, Scala, Erlang, Haskell, Lisp, OCaml, Clojure, F#, Prolog, Delphi, VB, 1C, Smalltalk, Fortran, Matlab, Javascript, Asm.
Свяжитесь с нами: [email protected]
Следуйте за нами
Источник: bookflow.ru