Сегодня мы научимся кодировать несколько простых игр, используя распространенные модули 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)

Читайте также:  Из чего делается белый краситель в Майнкрафте

Понг - Легкие игры в Python

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()

Читайте также:  Как построить лифт в minecraft из поршней

Змея - Легкие игры в Python

Заключение

Вот и все! Это некоторые из простых игр в 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 с исходниками

Sokoban

10 игр на Python с исходниками для тех, кто хочет изучать данный язык.

Dodger

Dodger

Memory Puzzle

Memory Puzzle

Sliding Puzzle

Sliding Puzzle

Simon

Simon

Nibbles

Nibbles

Tetris

Tetris

Katamari Damacy

Katamari Damacy

Sokoban

Sokoban

Othello

Othello

Flood It

Flood It

Предыдущая статья DuckDuckGo в 2021 году: Создание суперприложения для защиты частной жизним

Следующая статья Исходный код DOOM Classic под iOS

ЭТО МОЖЕТ БЫТЬ ИНТЕРЕСНОЕЩЕ ОТ АВТОРА

Перевод с английского на немецкий с использованием моделей Seq2Seq в PyTorch

Перевод с английского на немецкий с использованием моделей Seq2Seq в PyTorch

Правильный способ сравнения чисел с плавающей точкой в Python

Правильный способ сравнения чисел с плавающей точкой в Python

Алгоритмы и структуры данных на Python

Алгоритмы и структуры данных на Python

Вакансии для программистов

Популярное

Raspberry Pi Computer Architecture Essentials

Установка и настройка 1С на CentOS 8

Изучаем основы *nix man gzip chmod pid.

Как включить RDP на удаленной машине?

Горячее

Шпаргалка по Django

Шпаргалка по 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