Проект: ООП на Ruby
Не забывайте использовать Git для фиксации изменений в ваших проектах!
Проект 1: Крестики-нолики
Все вспомнили правила игры? Итак, опираясь на полученные знания по ООП, нам предстоит создать программу для игры в крестики-нолики.
Ваша задача:
Создать игру с управлением из командной строки, где два игрока ходят по очереди. После каждого хода на экране должно отображаться игровое поле.
- Подумайте, как лучше реализовать различные элементы игры в коде... Что должно быть классом, что должно быть переменной класса или методом? Несколько минут таких размышлений могут спасти вас от часов раздумий над кодом.
- Создайте программу. Уделите внимание тому, чтобы чтобы обмен информацией между классами не был избыточен.
Решения
- Методика решения этой задачи из блога codequizzes.
- Пример решения на RosettaCode.org
Проект 2: Mastermind
Здесь вы должны угадать загаданные оппонентом 4 цвета с определенного количества попыток. С правилами игры можно ознакомиться в Википедии; у нас вариант этой игры известен как Быки и коровы. После каждого своего хода вы видите насколько были точны - либо абсолютно точно, либо просто угадали цвет, но ошиблись с его местонахождением.
Ваша задача
Создать игру Mastermind, работающую из командной строки, где у вас 12 шагов для решения загаданной комбинации. Для начала сделайте вариант, где человек отгадывает загаданную компьютером комбинацию.
- Подумайте, как лучше решить эту задачу.
- Игра строится на том, что компьютер случайным образом выбирает цвета (из 6 произвольных) и помещает их в 4 ячейки. Человек должен угадать расположение всех цветов. Помните, что после каждого хода вы должны указывать результативность попытки, в зависимости от ее точности! Есть три градации - такого цвета нет вообще, цвет есть, но в другой ячейке, и полное совпадение.
- Затем измените код, давая возможность человеку выбирать, будет ли он загадывать комбинацию, или же будет ее отгадывать.
- Добавьте возможность отгадывать компьютеру загаданную вами комбинацию. Начните с того, что компьютер будет делать предположения случайным образом, за исключением тех цветов, положение которых он угадал точно.
- Затем можно добавить компьютеру немного интеллекта. Например, если компьютер угадал цвет, но не место, то в следующем шаге этот цвет он должен указать в другой ячейке. Не стесняйтесь делать компьютер как можно более разумным.
Примеры решений
- Решение 1
- Решение 2
- Решение 3
- Решение 4
- Решение 5
Дополнительные ресурсы
Этот раздел содержит полезные ссылки на дополнительные материалы. Они не обязательны, так что расценивайте их как нечто полезное, если вы хотите поглубже погрузиться в тему
- Не применительно к этим задачам, но здесь находятся достаточно интересные игровые библиотеки для Ruby.