Какие игры написаны на пайтоне
В этой статье рассмотрим игры, для написания которых использовался пайтон . Python курсы обучают детей создавать собственные игры на пайтоне и других языках.
Sims 4
Игра, что уже много лет держится в лидерах среди игр по симуляции жизни. И по показателям Симс 4 стала самой покупаемой игрой среди женщин. После выхода игры в мир за первые четверо суток было куплено 408,150 экземпляров в разных странах. Всего на сегодня куплено более 1.1 миллиона копий этой игры. Sims 4 использует пайто н для реализации игрового моддинга , что дало возможность без проблем дополнять игру и изменять ее параметры.
Battlefield
Battlefield — любимая игра многих. Она не написана всецело на Python. Но разработчики использовали этот язык для серверных элементов и отдельных скриптов для управления логикой игры. Пайтон помог ускорить процесс создания игры и не отразился на производительности. Battlefield вышла в 2005 году и имеет спрос в жанре симулятор войны.

EVE Online
Игра EVE Online многопользовательская. Каждый выбирает для себя роль и переноситься в мир научной-фантастики. На данный момент база игры насчитывает около 500 000 участников. Написана игра всецело на StacklessPython, поэтому эта игра является одним из самых ярких представителей игр написанных на Python.
Mount & Blade
Компьютерная ролевая игра, что не имеет аналогов. Игрок помещается в эпоху среднего века. Отправляется в путешествие по широкомасштабной карте, собирает армию и сражается с противниками в реальном времени. Все скрипты игры написаны на пайтоне . Благодаря этому игра может быть модульной, к ней можно легко сделать дополнение и внести изменения в механизм игры, анимацию и текстуры. При этом системные файлы останутся без изменений. Интересный факт, что Mount & Blade создали всего два человека — муж с женой.
Программист обучение
Если ваш ребенок увлекается играми, то направление программирования откроет для него цифровой мир. В котором он сможет создать собственную игру. В этом поможет питон для школьников, как вы уже убедились, этот язык используют даже всемирно известные игры.
Civilization IV
Игра в жанре пошаговой стратегии. Каждый выбирает свою стратегию: быть дипломатом, что мирным путем завоюет весь мир или идти в наступление и отвоевать мир у противников.
Для создания этой игры разработчики в большей части использовали Python. Это дает игрокам возможность сделать свою модификацию игры.

Frets On Fire (FoF)
Игра код, который может просмотреть кто угодно. Это музыкальная игра, что имитирует подобную игру Guitar Hero. FoF полностью создана на пайтоне , что позволяет начинающим разработчикам использовать игру как платформу для практики и изучения кодинга .
Если после прочтения этой статьи вы вдохновились на изучение языка программирования Python, то IT курсы обучают детей с нуля.
Программирование с онлайн школой программирования для детей — это самый быстрый и эффективный способ научиться кодингу . Мы имеем широкий выбор различных направлений для разного возраста и уровня знаний. У нас есть 2 формата обучения: онлайн и в офисе. IT школа находиться на м. Академгородок, м. Житомирская.
Оставьте номер и мы поможем подобрать курс
Сделай шаг к успешному будущему
Игры, в которых использовался Python
Сегодня вашему вниманию представляется статья и небольшая инфографика, которая покажет вам на конкретных примерах, что Python столь же эффективен в разработке игр, как и в других областях.
Вот некоторые из самых известныx игр, в которых был в той или иной мере использован Python:
Battlefield
(2005 / Digital Illusions CE (DICE) / Стокгольм)
Все серии Python используется в игре для различных нужд, от серверных элементов управления до внутренней логики игры. Battlefield — это одна из самых популярных игр в жанре симулятора войны, которая хорошо известна на весь мир.
EVE Online
(2003 / CCP Games / Исландия)
Это многопользовательская онлайн ролевая игра (MMORPG), действие которой разворачивается в антураже научно-фантастического пространства. Пользовательская база насчитывает более 500 000 игроков. EVE Online полностью написана на StacklessPython, что делает ее одной из крупнейших игр, использующих Python для своих нужд.
Mount & Blade
(2008 / Tale Worlds / Турция)
Ролевая игра, действие которой происходит в средние века. Игра была разработана всего лишь двумя людьми, мужем и женой, они использовали скрипты на языке Python для обеспечения модульности игры. Особенности игры — это огромный игровой мир и эпические сражения в реальном времени.
Sims 4
(2014 / Е.А. Maxis Sims Studio / США)
По праву является самой известной игрой в жанре симуляции жизни. Sims 4 — первая компьютерная игра, которая занимала лидирующие позиции на всевозможных игровых чартах на протяжении двух лет, и продалась в объеме 408,150 экземпляров по всему миру в течение первых четырех дней. На сегодняшний день продано более 1.1 миллиона копий по всему миру, что делает Sims 4 одной из самых продаваемых игр, которые использует Python — для обеспечения внутриигрового моддинга, открывающего пользователям огромные возможности по изменению параметров игры.
Civilization IV
(2005 / Firaxis Games / США)
Это компьютерная игра в жанре пошаговой стратегии. Цель игрока — подчинить себе весь мир путем дипломатических переговоров или кровожадной войны. Большая часть игры написана на Python, и Boost Python, что дает возможность пользователям собственноручно создавать модификации для игры.
Frets On Fire (FoF)
(2006 / Unreal Voodoo / Финляндия)
Музыкальная игра с открытым и свободным исходным кодом, которая сама по себе имитирует коммерческую игру Guitar Hero. Игра полностью написана на Python с использованием библиотеки Pygame. Благодаря открытости и простоте кода, игра представляется как хорошая площадка для изучения и практики программирования.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Спасибо CheckiO за интересную статью.
Три крутые игры на Python с исходниками
Уверен, что вы хоть раз играли в эту интересную, но простую игру.
Цель этой игры, отбивать мяч от платформы и не упустить его.
При создании игры используются такие библиотеки как:
- tkinter, эта библиотека предустановленна на большинстве версиях Python и используется для создания самого оконного приложения.
- time, в нашем случае будет использоваться, что бы задать скорость мячу и платформе. Для установки зайдите в командную строку от имени администратора и напишите: pip install time проверьте что pip у вас установлен.
- random, в нашем случае будет использоваться , что бы мяч отскакивал в разных направлениях. Эта библиотека так же предустановленна на всех версиях Python.
- pygame, используется для создания графического интерфейса нашей игры. Эту библиотеку нужно скачать через командную строку, прописав: pip install pygame
from tkinter import * import time import random import pygame class Ball(): def __init__(self, canvas, platform, color): self.canvas = canvas self.platform = platform self.oval = canvas.create_oval(200, 200, 215, 215, fill=color) self.dir = [-3, -2, -1, 1, 2, 3] self.x = random.choice(self.dir) self.y = -1 self.touch_bottom = False def touch_platform(self, ball_pos): platform_pos = self.canvas.coords(self.platform.rect) if ball_pos[2] >= platform_pos[0] and ball_pos[0] <= platform_pos[2]: if ball_pos[3] >= platform_pos[1] and ball_pos[3] <= platform_pos[3]: return True return False def draw(self): self.canvas.move(self.oval, self.x, self.y) pos = self.canvas.coords(self.oval) if pos[1] <= 0: self.y = 3 if pos[3] >= 400: self.touch_bottom = True if self.touch_platform(pos) == True: self.y = -3 if pos[0] <= 0: self.x = 3 if pos[2] >= 500: self.x = -3 class Platform(): def __init__(self, canvas, color): self.canvas = canvas self.rect = canvas.create_rectangle(230, 300, 330, 310, fill=color) self.x = 0 self.canvas.bind_all(», self.left) self.canvas.bind_all(», self.right) def left(self, event): self.x = -2 def right(self, event): self.x = 2 def draw(self): self.canvas.move(self.rect, self.x, 0) pos=self.canvas.coords(self.rect) if pos[0] <= 0: self.x = 0 if pos[2] >= 500: self.x = 0 window = Tk() window.title(«Аркада») window.resizable(0, 0) window.wm_attributes(«-topmost», 1) canvas = Canvas(window, width=500, height=400) canvas.pack() platform = Platform(canvas, ‘green’) ball = Ball(canvas, platform, ‘red’) while True: if ball.touch_bottom == False: ball.draw() platform.draw() else: break window.update() time.sleep(0.01) window.mainloop()=>
Вот и весь код для этой интересной, простой и увлекательной игры. Вы так же можете модернизировать игру, добавив в неё например количество балов за отбитые мячи, или второй мяч.
Игра №2. Тетрис.
Эту игру знают все! Главная задача игрока не дать разным, геометрическим фигурам достигнуть «ФИНИША».
import sys, random from PyQt5.QtWidgets import QMainWindow, QFrame, QDesktopWidget, QApplication from PyQt5.QtCore import Qt, QBasicTimer, pyqtSignal from PyQt5.QtGui import QPainter, QColor
Вы видите библиотеки, которые будут использоваться при создании данной игры, всех их нужно загрузить через командную строку вашего компьютера.
После того как установили нужные нам библиотеки, создаём класс с нашими переменными. класс назовём Tetris и будем использовать свойства отцовского класса, чтобы каждый раз не прописывать все переменные заново для каждого последующего класса.
class Tetris(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.tboard = Board(self) self.setCentralWidget(self.tboard) self.statusbar = self.statusBar() self.tboard.msg2Statusbar[str].connect(self.statusbar.showMessage) self.tboard.start() self.resize(180, 380) self.center() self.setWindowTitle(‘Tetris’) self.show() def center(self): screen = QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2)
После создания отцовского класса Tetris, создаём все остальные классы и переменные для уже других функций.
class Board(QFrame): msg2Statusbar = pyqtSignal(str) BoardWidth = 10 BoardHeight = 22 Speed = 300 def __init__(self, parent): super().__init__(parent) self.initBoard() def initBoard(self): self.timer = QBasicTimer() self.isWaitingAfterLine = False self.curX = 0 self.curY = 0 self.numLinesRemoved = 0 self.board = [] self.setFocusPolicy(Qt.StrongFocus) self.isStarted = False self.isPaused = False self.clearBoard() def shapeAt(self, x, y): return self.board[(y * Board.BoardWidth) + x] def setShapeAt(self, x, y, shape): self.board[(y * Board.BoardWidth) + x] = shape def squareWidth(self): return self.contentsRect().width() // Board.BoardWidth def squareHeight(self): return self.contentsRect().height() // Board.BoardHeight def start(self): if self.isPaused: return self.isStarted = True self.isWaitingAfterLine = False self.numLinesRemoved = 0 self.clearBoard() self.msg2Statusbar.emit(str(self.numLinesRemoved)) self.newPiece() self.timer.start(Board.Speed, self) def pause(self): if not self.isStarted: return self.isPaused = not self.isPaused if self.isPaused: self.timer.stop() self.msg2Statusbar.emit(«paused») else: self.timer.start(Board.Speed, self) self.msg2Statusbar.emit(str(self.numLinesRemoved)) self.update()
def paintEvent(self, event): painter = QPainter(self) rect = self.contentsRect() boardTop = rect.bottom() — Board.BoardHeight * self.squareHeight() for i in range(Board.BoardHeight): for j in range(Board.BoardWidth): shape = self.shapeAt(j, Board.BoardHeight — i — 1) if shape != Tetrominoe.NoShape: self.drawSquare(painter, rect.left() + j * self.squareWidth(), boardTop + i * self.squareHeight(), shape) if self.curPiece.shape() != Tetrominoe.NoShape: for i in range(4): x = self.curX + self.curPiece.x(i) y = self.curY — self.curPiece.y(i) self.drawSquare(painter, rect.left() + x * self.squareWidth(), boardTop + (Board.BoardHeight — y — 1) * self.squareHeight(), self.curPiece.shape()) def keyPressEvent(self, event): if not self.isStarted or self.curPiece.shape() == Tetrominoe.NoShape: super(Board, self).keyPressEvent(event) return key = event.key() if key == Qt.Key_P: self.pause() return if self.isPaused: return elif key == Qt.Key_Left: self.tryMove(self.curPiece, self.curX — 1, self.curY) elif key == Qt.Key_Right: self.tryMove(self.curPiece, self.curX + 1, self.curY) elif key == Qt.Key_Down: self.tryMove(self.curPiece.rotateRight(), self.curX, self.curY) elif key == Qt.Key_Up: self.tryMove(self.curPiece.rotateLeft(), self.curX, self.curY) elif key == Qt.Key_Space: self.dropDown() elif key == Qt.Key_D: self.oneLineDown() else: super(Board, self).keyPressEvent(event) def timerEvent(self, event): if event.timerId() == self.timer.timerId(): if self.isWaitingAfterLine: self.isWaitingAfterLine = False self.newPiece() else: self.oneLineDown() else: super(Board, self).timerEvent(event) def clearBoard(self): for i in range(Board.BoardHeight * Board.BoardWidth): self.board.append(Tetrominoe.NoShape) def dropDown(self): newY = self.curY while newY > 0: if not self.tryMove(self.curPiece, self.curX, newY — 1): break newY -= 1 self.pieceDropped() def oneLineDown(self): if not self.tryMove(self.curPiece, self.curX, self.curY — 1): self.pieceDropped() def pieceDropped(self): for i in range(4): x = self.curX + self.curPiece.x(i) y = self.curY — self.curPiece.y(i) self.setShapeAt(x, y, self.curPiece.shape()) self.removeFullLines() if not self.isWaitingAfterLine: self.newPiece()
def removeFullLines(self): numFullLines = 0 rowsToRemove = [] for i in range(Board.BoardHeight): n = 0 for j in range(Board.BoardWidth): if not self.shapeAt(j, i) == Tetrominoe.NoShape: n = n + 1 if n == 10: rowsToRemove.append(i) rowsToRemove.reverse() for m in rowsToRemove: for k in range(m, Board.BoardHeight): for l in range(Board.BoardWidth): self.setShapeAt(l, k, self.shapeAt(l, k + 1)) numFullLines = numFullLines + len(rowsToRemove) if numFullLines > 0: self.numLinesRemoved = self.numLinesRemoved + numFullLines self.msg2Statusbar.emit(str(self.numLinesRemoved)) self.isWaitingAfterLine = True self.curPiece.setShape(Tetrominoe.NoShape) self.update() def newPiece(self): self.curPiece = Shape() self.curPiece.setRandomShape() self.curX = Board.BoardWidth // 2 + 1 self.curY = Board.BoardHeight — 1 + self.curPiece.minY() if not self.tryMove(self.curPiece, self.curX, self.curY): self.curPiece.setShape(Tetrominoe.NoShape) self.timer.stop() self.isStarted = False self.msg2Statusbar.emit(«Game over») def tryMove(self, newPiece, newX, newY): for i in range(4): x = newX + newPiece.x(i) y = newY — newPiece.y(i) if x < 0 or x >= Board.BoardWidth or y < 0 or y >= Board.BoardHeight: return False if self.shapeAt(x, y) != Tetrominoe.NoShape: return False self.curPiece = newPiece self.curX = newX self.curY = newY self.update() return True def drawSquare(self, painter, x, y, shape): colorTable = [0x000000, 0xCC6666, 0x66CC66, 0x6666CC, 0xCCCC66, 0xCC66CC, 0x66CCCC, 0xDAAA00] color = QColor(colorTable[shape]) painter.fillRect(x + 1, y + 1, self.squareWidth() — 2, self.squareHeight() — 2, color) painter.setPen(color.lighter()) painter.drawLine(x, y + self.squareHeight() — 1, x, y) painter.drawLine(x, y, x + self.squareWidth() — 1, y) painter.setPen(color.darker()) painter.drawLine(x + 1, y + self.squareHeight() — 1, x + self.squareWidth() — 1, y + self.squareHeight() — 1) painter.drawLine(x + self.squareWidth() — 1, y + self.squareHeight() — 1, x + self.squareWidth() — 1, y + 1)
После создаём класс уже для самих объектов( фигур), назовём его Tetrominoe.
class Tetrominoe(object): NoShape = 0 ZShape = 1 SShape = 2 LineShape = 3 TShape = 4 SquareShape = 5 LShape = 6 MirroredLShape = 7
И ещё один класс, но уже будем задавать координаты фигурам.
class Shape(object): coordsTable = ( ((0, 0), (0, 0), (0, 0), (0, 0)), ((0, -1), (0, 0), (-1, 0), (-1, 1)), ((0, -1), (0, 0), (1, 0), (1, 1)), ((0, -1), (0, 0), (0, 1), (0, 2)), ((-1, 0), (0, 0), (1, 0), (0, 1)), ((0, 0), (1, 0), (0, 1), (1, 1)), ((-1, -1), (0, -1), (0, 0), (0, 1)), ((1, -1), (0, -1), (0, 0), (0, 1)) ) def __init__(self): self.coords = [[0,0] for i in range(4)] self.pieceShape = Tetrominoe.NoShape self.setShape(Tetrominoe.NoShape) def shape(self): return self.pieceShape def setShape(self, shape): table = Shape.coordsTable[shape] for i in range(4): for j in range(2): self.coords[i][j] = table[i][j] self.pieceShape = shape def setRandomShape(self): self.setShape(random.randint(1, 7)) def x(self, index): return self.coords[index][0] def y(self, index): return self.coords[index][1] def setX(self, index, x): self.coords[index][0] = x def setY(self, index, y): self.coords[index][1] = y def minX(self): m = self.coords[0][0] for i in range(4): m = min(m, self.coords[i][0]) return m
И завершаем наш код
def maxX(self): m = self.coords[0][0] for i in range(4): m = max(m, self.coords[i][0]) return m def minY(self): m = self.coords[0][1] for i in range(4): m = min(m, self.coords[i][1]) return m def maxY(self): m = self.coords[0][1] for i in range(4): m = max(m, self.coords[i][1]) return m def rotateLeft(self): if self.pieceShape == Tetrominoe.SquareShape: return self result = Shape() result.pieceShape = self.pieceShape for i in range(4): result.setX(i, self.y(i)) result.setY(i, -self.x(i)) return result def rotateRight(self): if self.pieceShape == Tetrominoe.SquareShape: return self result = Shape() result.pieceShape = self.pieceShape for i in range(4): result.setX(i, -self.y(i)) result.setY(i, self.x(i)) return result if __name__ == ‘__main__’: app = QApplication([]) tetris = Tetris() sys.exit(app.exec_())
Прикрепил код по кусочкам, код длинный единым кодом его не прикрепить.
Это немного не то, о чём вы подумали, это танки «на бумаге» они работают без графического интерфейса, выводя информацию на экран.
Для создания данной игры нам потребуется всего ода библиотека, random.
Создадим два обычных танка, которые будут иметь рандомный домаг, и один супер танк, у которого будет много xp и урона. У всех танков будет определённое количество xp, урона и брони, а так же свой экипаж.
import random class Tank: «»»Template of tanks»»» def __init__(self, model, armor, min_damage, max_damage, health): self.model = model self.armor = armor self.damage = random.randint(min_damage, max_damage) self.health = health def print_info(self): print(f»
Но если вы запустите нашу игру, ничего не произойдёт. Нужно прописать команду, которой танки будут стрелять друг по другу.
tank1 = Tank(«T-34», 90, 20, 30, 100) tank2 = Tank(«Tiger», 120, 10, 50, 120) tank1.print_info() tank2.print_info() tank1.shot(tank2) tank1.shot(tank2) tank1.shot(tank2) tank1.shot(tank2) tank1.shot(tank2) tank1.shot(tank2) tank1.shot(tank2)
Вот полный код программы:
import random class Tank: «»»Template of tanks»»» def __init__(self, model, armor, min_damage, max_damage, health): self.model = model self.armor = armor self.damage = random.randint(min_damage, max_damage) self.health = health def print_info(self): print(f»
Вы можете менять количество выстрелов и т.п.
Если хотите больше крутых кодов на Python, поддержите копеечкой 🙂 вот если что, номер карты: 2202 2067 9305 7600
Какие игры написаны на python

Code Combat – платформа, позволяющая изучать разные языки программирования, в том числе, Python. Содержит много уровней, интересный сюжет, красочную анимацию, взаимодействие с другими игроками. Подходит для детей от 10 лет. На каждом уровне для игрока ставится задача, например, собрать все кристаллы, победить противника или выбраться из темницы. Игрок выполняет задания с помощью команд выбранного языка. В процессе игры команды усложняются.
Стоимость подписки (на апрель 2022 года):
- $3,99/месяц.
- $39,60/год.
- Бесплатная версия.
Языки программирования:
- Python (бесплатный).
- JS (бесплатный).
- CoffeScript (бесплатный/экспериментальный).
- Lua (бесплатный/экспериментальный).
- C++ (по подписке).
- Java (по подписке/экспериментальный).
Локализация: поддержка очень большого количества языков, включая Русский и Английский.
2. CheckiO

CheckiO – браузерная игра в жанре «Приключения». Перед началом игры на сайте нам предлагают выбрать язык программирования TypeScript или Python. В игре предстоит писать код для решения задач. Перед задачей всегда есть описание с подсказкой для решения данной задачи. На первом этапе представлен ряд задач от легкой к сложной. По мере прохождения уровней, будут открываться островки с новыми задачами.
Стоимость подписки (на апрель 2022 года):
- $2,99/мес.
- $14,99/6 мес.
- $24,99/год.
- $99,99/год – аккаунт для учителя.
- Бесплатная версия.
Языки программирования:
Локализация:
- Английский.
- Польский.
- Испанский.
- Французский.
- Японский.
- Русский.
- Шведский.
3. CodeMonkey

CodeMonkey – онлайн-платформа, ориентированная на детей от 5 до 14 лет для обучения программированию. Содержит 10 ступеней обучения: от блочного программирования до текстового программирования.
Стоимость подписки (на апрель 2022 года):
- Индивидуальный (1 аккаунт ребенка, 1 аккаунт родителя) – $6/месяц.
- Семейный (3 аккаунта, 1 аккаунт родителя) – $12/месяц.
- Домашняя школа – $20 (3 аккаунта ребенка, 1 аккаунт родителя)/месяц.
- Бесплатная версия.
Языки программирования :
Локализация: доступен на 20 языках мира, включая русский, английский и испанский.
4. CodinGame

CodinGame – онлайн-платформа, включающая более 25 языков программирования, в том числе и Python. Данная платформа подойдет как новичкам для обучения с нуля, так и профи. Раз в месяц можно поучаствовать в онлайн-турнире, решить задачу и отправить решение в одну из компаний-спонсоров, чтобы принять участие в конкурсе на вакансию.
Стоимость: для изучения программирования данная платформа бесплатна, для рекрутеров есть несколько тарифов, если интересно можно посмотреть тут .
Языки программирования: более 25, включая Python.
Локализация :
- Английский.
- Французский.
5. Tynker

Tynker – образовательная платформа для детей от 6 лет с забавными игровыми персонажами, в которой базовые принципы программирования преподносятся в простой и доступной форме. В процессе обучения ребенок учится рисовать, создавать анимацию и разрабатывать свои собственные проекты – игры и мультики.
Стоимость подписки (на апрель 2022 года):
| Самостоятельные курсы | Индивидуальный план | Поквартально $15/месяц | Годовой тариф $8.75/месяц | На 3 года $8.5/месяц |
| Самостоятельные курсы | Семейный план(3 аккаунта) | Поквартально $24/месяц | Годовой тариф $14/месяц | На 3 года $13.6/месяц |
| Частное обучение | от $289 до $3959 | |||
| Бесплатный аккаунт |
Языки программирования:
Локализация: Английский.
6. Empire of Code

Empire of Code – это мобильная и одновременно браузерная MMORTS. Сюжет игры сводится к противостоянию двух лагерей – Python и JavaScript.
Стоимость: Бесплатно (с наличием монетизации).
Языки программирования :
Локализация: Английский.
7. Codewars

Codewars – образовательное сообщество по программированию. На платформе разработчики программного обеспечения обучаются программированию задач, известных как ката.
Стоимость: Бесплатно.
Языки программирования: 29 языков программирования (включая Python) и 26 дополнительных языков.
Локализация: Английский.
8. CodeFights

CodeFights – это обучающая программированию игра, в которой игроку предстоит сражаться, решая задачи. Каждый бой состоит из 3 раундов, где нужно исправить баг или дописать недостающие строки кода. За верные решения пользователь копит опыт и повышает уровень, за неправильные – теряет очки. Играть можно вместе с друзьями или случайными игроками на сервере.
Стоимость: Бесплатно.
Языки программирования: 38 языков программирования, включая Python 2/3.
Локализация: Английский.
9. Python Challenge

Python Challenge – это браузерная игра, в которой каждый уровень может быть решен с помощью программирования на языке Python. Python Challenge была написана Надавом Саметом. Все уровни могут быть решены с помощью коротких скриптов. Python Challenge приветствует программистов всех языков. Вы сможете решить большинство загадок на любом языке программирования, но для некоторых из них потребуется Python.
Стоимость: Бесплатно.
Языки программирования: ориентировано на Python, однако для решения большинства задач подойдет любой язык программирования.
Локализация: Английский.
10. Cyber Dojo

Cyber Dojo – пространство, где разработчики могут собираться и изучать языки программирования, такие как Python, Java, JS, PHP и другие. Сайт поддерживает более 35 языков программирования.
Стоимость: Бесплатно.
Языки программирования: Более 35 языков программирования.
Локализация: Английский.
Материалы по теме
- Куда отдать ребенка учиться программированию и какой язык выбрать?
- Как заинтересовать ребенка программированием и с чего начать обучение
- Изучай программирование играя: ТОП-20 обучающих игр для детей
