Многие разработчики приходят в разработку ПО, потому что хотят создавать игры. Не все могут стать профессиональными разработчиками игр, но любой может создавать собственные игры из интереса (а может быть, и с выгодой). В этом туториале, состоящем из пяти частей, я расскажу вам, как создавать двухмерные однопользовательские игры с Python 3 и замечательного фреймворка PyGame.
(Остальные части туториала: вторая, третья, четвёртая, пятая.)
Мы создадим версию классической игры Breakout. Освоив этот туториал, вы будете чётко понимать, что необходимо для создания игры, познакомитесь с возможностями Pygame и напишете собственный пример игры.
Мы реализуем следующие функции и возможности:
простые стандартные GameObject и TextObject
простой стандартный Game object
простая стандартная кнопка
файл конфигурации
обработка событий клавиатуры и мыши
кирпичи, ракетка и мяч
управление движением ракетки
обработка коллизий мяча с объектами игры
фоновое изображение
звуковые эффекты
расширяемая система спецэффектов
Не стоит ожидать, что игра будет очень красива графически. Я программист, а не художник, меня больше интересует эстетика кода. Созданный мной дизайн может неприятно удивить. С другой стороны, у вас будут почти неограниченные возможности по улучшению графики этой версии Breakout. Если вы отважитесь повторять за мной, посмотрите на скриншот:
Многие разработчики приходят в разработку ПО, потому что хотят создавать игры. Не все могут стать профессиональными разработчиками игр, но любой может создавать собственные игры из интереса (а может быть, и с выгодой). В этом туториале, состоящем из пяти частей, я расскажу вам, как создавать двухмерные однопользовательские игры с Python 3 и замечательного фреймворка PyGame.
(Остальные части туториала: вторая, третья, четвёртая, пятая.)
Мы создадим версию классической игры Breakout. Освоив этот туториал, вы будете чётко понимать, что необходимо для создания игры, познакомитесь с возможностями Pygame и напишете собственный пример игры.
Мы реализуем следующие функции и возможности:
простые стандартные GameObject и TextObject
простой стандартный Game object
простая стандартная кнопка
файл конфигурации
обработка событий клавиатуры и мыши
кирпичи, ракетка и мяч
управление движением ракетки
обработка коллизий мяча с объектами игры
фоновое изображение
звуковые эффекты
расширяемая система спецэффектов
Не стоит ожидать, что игра будет очень красива графически. Я программист, а не художник, меня больше интересует эстетика кода. Созданный мной дизайн может неприятно удивить. С другой стороны, у вас будут почти неограниченные возможности по улучшению графики этой версии Breakout. Если вы отважитесь повторять за мной, посмотрите на скриншот:
# подключаем модуль, чтобы использовать случайные числа
from random import *
a = [0]*32 # Создание списка
for i in range (0, 32):
a[i] = randint(1, 101) # заполнение случайными числами
a.sort() # сортировка
print(a) # вывод на экран
b = int(input('Введите число для поиска : ')) # ввод числа для поиска
mid = len(a) // 2 # определяем средний элемент списка
low = 0 # определяем верхнюю границу списка
high = len(a) - 1 # определяем верхнюю границу списка
step = 0 # обнуляем счётчик шагов
while a[mid] != b and low <= high: # в цикле пока не нашли искомый элемент
if b > a[mid]: # если искомый элемент > среднего элемента в диапазоне
low = mid + 1 # то нижнюю границу выставим в середину диапазона
else: # если искомый элемент <= среднего элемента в диапазоне
high = mid - 1 # то верхнюю границу выставим в середину диапазона
mid = (low + high) // 2 # считаем новый средний элемент диапазона
step += 1 # увеличиваем счётчик на 1
if low > high:
print('Нет числа')
else:
print('Количество шагов = ', step)
print('Индекс = ', mid)