5 игр, которые должен создать каждый начинающий программист Обучение через развлечение. Многих из нас в профессию программиста привела детская любовь к играм и головоломкам. Поэтому нет ничего удивительного, что едва получив свои первые знания, мы начинаем придумывать им развлекательное применение. Вот 5 игр, которые помогут вам пройти путь от новичка до зрелого программиста (и будущего создателя игровых бестселлеров). Быки и коровы Суть игры: ваш соперник, будь то компьютер или друг, загадывает 4-значное число, состоящее из неповторяющихся цифр. Ваша задача - угадать его за ограниченное число ходов. В качестве подсказок выступают “коровы” (цифра угадана, но её позиция - нет) и “быки” (когда совпадает и цифра и её позиция). То есть если загадано число “1234”, а вы называете “6531”, то результатом будет 1 корова (цифра “1”) и 1 бык (цифра “3”) . Чем полезно: создание игры не потребует от вас углубленного знания языка, а сам язык может быть практически любой. При этом вам придётся использовать практически все базовые упражнения с циклами и операторами, да и на выходе получится весьма интересная игра. Как усложнить: сохранение результатов, круговое соревнование на несколько игроков, режим турнира, игра по сети. Текстовый квест Суть игры: строгих принципов нет, это может быть как линейный сюжет, требующий минимальных действий от игрока, так и полностью интерактивная забава, где количество возможных исходов исчисляется десятками. Классический пример первого типа - телевизионное шоу “Кто хочет стать миллионером?”, второго типа - настольная игра “Dungeons & Dragons”. Чем полезно: плох тот программист, который никогда не пытался создать некое подобие ИИ. Текстовые квесты как нельзя лучше для этого подходят, ведь здесь придётся просчитывать вероятности, оперировать данными и прогнозировать дальнейшие действия. Можно обойтись и без этого, но в любом случае придётся научиться работать с классами, объектами и модулями. Как усложнить: нет ничего более сложного в ИИ, чем возможность импровизировать. Крестики-нолики Суть игры: перед вами минимальное игровое поле 3 х 3 клетки. Каждому игроку присваивается своя фигура (крестик или нолик), после чего они поочередно заполняют ими поле. Первый ход за крестиками. Побеждает тот, кто соберёт 3 своих фигуры в ряд (по горизонтали, вертикали или диагонали). Чем полезно: Переход от текстовых приложений к графическому интерфейсу, хоть и на достаточно примитивном уровне. С точки зрения самого кода, в простейшем случае создатель игры потратит уйму времени на описание всевозможных однотипных ситуаций, просто набив руку. Но есть и сложный путь создания функционального кода. Как усложнить: увеличение размеров поля, регулировка сложности. Пятнашки (Змейка) Суть игры: Пятнашки (она же “Игры в 15”) - головоломка, цель которой за минимальное количество ходов упорядочить костяшки с нанесёнными числами от 1 до 15, расположенные на игровом поле 4 х 4 с одной свободной ячейкой. Собственно упорядочение должно происходить перемещением костяшек на соседнюю пустую ячейку. Змейка - игра, в которой игровой объект (собственно, змейка), перемещаясь по игровому полю в вертикальном и горизонтальном направлениях, увеличивает свою длину после столкновения с единичными объектами (едой). Суть игры заключается в необходимости избегать препятствия, границы игрового поля, а также собственный “хвост”. Чем полезно: переход на новый уровень в графической составляющей, при этом алгоритмы действий и их анализ остаются относительно простыми. Как усложнить: манипуляции с игровым полем и временем. Арканоид (Бильярд) Суть игры: взаимодействие большого числа объектов, каждое из которых обладает своими уникальными физическими и инерционными характеристиками. Чем полезно: качественная работа с графическими объектами, которая должна учитывать точную форму, траекторию движения, скорость, массу и т. д. Главная проблема - расчётное значение редко бывает целым, в отличии от количества пикселов, поэтому необходимо оперировать погрешностями и создавать модели поведения, включающие несколько факторов. Как усложнить: просто попробуйте сделать арканоид с классическими бонусами и изменением скорости полёта шарика. Бильярд сделать русским, а также учитывать взаимодействие шаров с покрытием.

Теги других блогов: обучение игры программирование