Проект: ООП на Ruby

Не забывайте использовать Git для фиксации изменений в ваших проектах!

Проект 1: Крестики-нолики

Все вспомнили правила игры? Итак, опираясь на полученные знания по ООП, нам предстоит создать программу для игры в крестики-нолики.

Ваша задача:

Создать игру с управлением из командной строки, где два игрока ходят по очереди. После каждого хода на экране должно отображаться игровое поле.

  1. Подумайте, как лучше реализовать различные элементы игры в коде... Что должно быть классом, что должно быть переменной класса или методом? Несколько минут таких размышлений могут спасти вас от часов раздумий над кодом.
  2. Создайте программу. Уделите внимание тому, чтобы чтобы обмен информацией между классами не был избыточен.

Решения

  • Методика решения этой задачи из блога codequizzes.
  • Пример решения на RosettaCode.org

Проект 2: Mastermind

Здесь вы должны угадать загаданные оппонентом 4 цвета с определенного количества попыток. С правилами игры можно ознакомиться в Википедии; у нас вариант этой игры известен как Быки и коровы. После каждого своего хода вы видите насколько были точны - либо абсолютно точно, либо просто угадали цвет, но ошиблись с его местонахождением.

Ваша задача

Создать игру Mastermind, работающую из командной строки, где у вас 12 шагов для решения загаданной комбинации. Для начала сделайте вариант, где человек отгадывает загаданную компьютером комбинацию.

  1. Подумайте, как лучше решить эту задачу.
  2. Игра строится на том, что компьютер случайным образом выбирает цвета (из 6 произвольных) и помещает их в 4 ячейки. Человек должен угадать расположение всех цветов. Помните, что после каждого хода вы должны указывать результативность попытки, в зависимости от ее точности! Есть три градации - такого цвета нет вообще, цвет есть, но в другой ячейке, и полное совпадение.
  3. Затем измените код, давая возможность человеку выбирать, будет ли он загадывать комбинацию, или же будет ее отгадывать.
  4. Добавьте возможность отгадывать компьютеру загаданную вами комбинацию. Начните с того, что компьютер будет делать предположения случайным образом, за исключением тех цветов, положение которых он угадал точно.
  5. Затем можно добавить компьютеру немного интеллекта. Например, если компьютер угадал цвет, но не место, то в следующем шаге этот цвет он должен указать в другой ячейке. Не стесняйтесь делать компьютер как можно более разумным.

Примеры решений

  • Решение 1
  • Решение 2
  • Решение 3
  • Решение 4
  • Решение 5

Дополнительные ресурсы

Этот раздел содержит полезные ссылки на дополнительные материалы. Они не обязательны, так что расценивайте их как нечто полезное, если вы хотите поглубже погрузиться в тему

  • Не применительно к этим задачам, но здесь находятся достаточно интересные игровые библиотеки для Ruby.

Поделиться уроком: