Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович
1-2-3 мая - Создай online игру!

Демо игры / Камень ножницы бумага

  • На этом уроке мы напишем игровую программу
    по мотивам детской игры на руках - «Камень-Ножницы-Бумага».

    Задание:
    Написать игру и победить компьютер.
  • Дата отправки отчёта: 1 декабря 2015 г.
  • Задание выполнено: за 2 час. 10 мин.
  • Чему научился: Повторил работу с панелями, pictureBox, загрузкой ресурсов. Понравился способ установки видимости необходимой картинки через проверку условия. Например, picture_rock.Visible = choice == Choice.rock;
  • Что было сложным: Все хорошо поясняется, проблем не было.
  • Комментарии: Сначала я написал версию по видео уроку, поиграл, оценил. Здорово, но это скорее игра на реакцию, а не привычная "камень-ножницы-бумага". Так как игрок может видеть примерный выбор компьютера, то он имеет возможность нечестно победить. Поэтому я решил слегка изменить начальную версию программы: убрал таймер и организовал принятие решения компьютера в момент клика по одной из трех картинок.

    Во время модификации программы я утомился работать со строковыми представлениями картинок и режимов игры, добавил отдельный класс GameLogic. В тот момент задумался, как можно усложнить игру? Ответ пришел быстро - разные варианты генерации решений компьютером. Например, компьютер будет учитывать предыдущие ходы игрока, сохранять их в коллекцию и далее по-хитрому медитируя пытаться угадать следующий шаг.

    Чтобы создать задел для разных версий генераторов, использовал полиформизм, добавил интерфейс IChoiceGenerable и реализовал его в классе RandomChoiceGenerator, который (как в видео уроке) рандомно принимает решение в полуоткрытом интервале [1, 4). Версию с AI пока что делать не стал, оставил на будущее)
  • Оценка видео-уроку:
Отчёт от 7276 за Демо игры / Камень ножницы бумага




Оцени работу

 
Сохранить страницу:

7276. Ильшат
Ильшат
ответить
→  Петя  # Наноигры / Камень ножницы бумага / 2015-12-13 00:24

Да, не видит, результат выводится только после выбора игрока. Я первоначально хотел сделать как тут  http://www.nytimes.com/interactive/science/rock-paper-scissors.html?_r=0 но потом решил сделать проще, без анимации)


7652. Петя
Петя
ответить
→  Ильшат  # Наноигры / Камень ножницы бумага / 2015-12-13 00:07

То есть получается игрок вообще не видит, что генерирует компьютер?


2146. Иван
Иван
ответить
→  Ильшат  # Наноигры / Камень ножницы бумага / 2015-12-02 01:21

Здорово! А казалось, что это не самая сложная программа(Камень ножницы бумага). А тут вся мощь ООП применена!


7276. Ильшат
Ильшат
ответить
→  Евгений Волосатов  # Наноигры / Камень ножницы бумага / 2015-12-01 22:39

Спасибо, Евгений Витольдович)


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Ильшат  # Наноигры / Камень ножницы бумага / 2015-12-01 22:09

Я в шоке. Чувствую, идея попала на плодородную почву


7276. Ильшат
Ильшат
ответить
→  Владимир  # Наноигры / Камень ножницы бумага / 2015-12-01 21:21

Спасибо, Владимир. На самом деле, добавлений мало, игра та же самая, просто немного изменил код)


6391. Владимир
Владимир
ответить
→  Ильшат  # Наноигры / Камень ножницы бумага / 2015-12-01 20:40

Ничего себе добавления! Это просто здорово!


24. Олюшка
Олюшка
ответить
→  Ильшат  # Наноигры / Камень ножницы бумага / 2015-12-01 20:36

Ильшат, спасибо и тебе! :)


7276. Ильшат
Ильшат
ответить
→  Denis  # Наноигры / Камень ножницы бумага / 2015-12-01 20:33

Спасибо, Денис)


7276. Ильшат
Ильшат
ответить
→  Олюшка  # Наноигры / Камень ножницы бумага / 2015-12-01 20:33

Спасибо, Оля. Мне понравились твои таблички в отчете по БД)


1947. Denis
Denis
ответить
→  Ильшат  # Наноигры / Камень ножницы бумага / 2015-12-01 20:31

Хорошие доработки. Отличные идеи!


24. Олюшка
Олюшка
ответить
→  Ильшат  # Наноигры / Камень ножницы бумага / 2015-12-01 20:30

Ильшат, здорово, я очень рада твоей работе, Молодец! :)



Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Использовать генератор случайных чисел.
Трудности: Разбираться с кодом.
Урок понравился, а сама программа никчемуха. Не понимаю, зачем делать уровни сложности, если все равно от твоих умений ничего не зависит, комп ведь свое значение выдает после того, как игрок нажимает свой вариант.
Трудности: Забыл сделать вызов мышки на любой из фигуры, значение по умолчанию kam. В этой связи работал только камень, другие фигуры ножницы и бумага не останавливались щелчком мыши. Не мог сразу понять в чем ошибка.
Понравилось!