Игра "Мудрый старец" на C# (Аналог "Magic 8 ball")

Magic 8 ball - игрушка, о которой не знает только ленивый. Принцип работы прост. Игрок задает вопрос и трясет шар в руках. После тряски в специальном месте на шаре (или на экране, в зависимости от "технологичности" игрушки) отображается случайный ответ (ответы делятся на 4 группы: положительные, нерешительно положительные, отрицательные, нейтральные). Версий игры множество, в их числе есть и десктопные.


В этой статье мы разберем процесс создания десктопного аналога этой игрушки на C# (Windows Forms) в Microsoft Visual Studio 2015.
Нам понадобится одна единственная форма (назовем ее MainForm.cs) со следующими элементами:
  • PictureBox1 (PictureBox) - в свойствах выберем значение Top для поля "Dock"
  • Label1 (labelT) - "Задай свой вопрос"
  • Button1 (ButAnswer) - "Получить ответ"
  • TextBox1 (tbAnswer) - в свойствах укажем полю "ReadOnly" значение True, полю "TextAlign" значение Center
Подберем изображение старца в гугле, я остановился на этом:


В описании игры на Википедии приведен список возможных ответов игрушки. Можно воспользоваться ими.

Положительные:
  • Бесспорно
  • Предрешено
  • Никаких сомнений
  • Определенно да
  • Можешь быть уверен в этом
Нерешительно-положительные:
  • Мне кажется - «да»
  • Вероятнее всего
  • Хорошие перспективы
  • Знаки говорят - «да»
  • Да

Нейтральные:
  • Пока не ясно, попробуй снова
  • Спроси позже
  • Лучше не рассказывать
  • Сейчас нельзя предсказать
  • Сконцентрируйся и спроси опять

Отрицательные:
  • Даже не думай
  • Мой ответ - «нет»
  • По моим данным - «нет»
  • Перспективы не очень хорошие
  • Весьма сомнительно

Теперь закидываем в PictureBox наше изображение и переходим к коду обработки клика по ButAnswer:

Random randomAnswer = new Random();
int n = randomAnswer.Next(0,19);
string[] answer = new string[20] { "Бесспорно", "Предрешено", "Никаких сомнений", "Определённо да", "Можешь быть уверен в этом", "Мне кажется — «да»", "Вероятнее всего", "Хорошие перспективы", "Знаки говорят — «да»", "Да", "Пока не ясно, попробуй снова", "Спроси позже", "Лучше не рассказывать", "Сейчас нельзя предсказать", "Сконцентрируйся и спроси опять", "Даже не думай", "Мой ответ — «нет»", "По моим данным — «нет»", "Перспективы не очень хорошие", "Весьма сомнительно" };
tbAnswer.Text = answer[n];

В этом коде мы сперва генерируем случайное число от 0 до 19 (количество чисел соответствует количеству возможных ответов). Затем мы создаем массив из 20 возможных ответов. В конце выводим в TextBox содержимое массиво, находящееся на случайно сгенерированной позиции.

На этом создание игры завершено. Можно выбрать для формы подходящую иконку (а также для итогового файла в свойствах проекта), собрать её в виде релиз-версии и играть в свое удовольствие. Готовый проект игры можно скачать на странице проектов и статей. Спасибо за внимание!