На этом уроке мы напишем игровую программу по мотивам детской игры на руках - «Камень-Ножницы-Бумага».
Задание: Написать игру и победить компьютер.
Дата отправки отчёта:
14 января 2019 г.
Задание выполнено: за
2 час. 54 мин.
Чему научился:
Научился корректно подписывать каждый элемент, чтобы не возникало проблем в будущем коде. Ну и делать игру КНБ =)
Оценка видео-уроку:
Оцени работу
Сохранить страницу:
Отчёт оценивали: 8275. Tekashnik+111019. Trira+110895. Danil42Russia+117947. Dmitry Sinitsin+120619. Артём Нагорный+11. Евгений Волосатов+117606. Виктор+13922. Александр+1Посетитель+120659. no name+1791. Валерий Жданов+120071. New programist+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Повторил работу с панелями, pictureBox, загрузкой ресурсов. Понравился способ установки видимости необходимой картинки через проверку условия. Например, picture_rock.Visible = choice == Choice.rock; Трудности: Все хорошо поясняется, проблем не было. Сначала я написал версию по видео уроку, поиграл, оценил. Здорово, но это скорее игра на реакцию, а не привычная "камень-ножницы-бумага". Так как игрок может видеть примерный выбор компьютера, то он имеет возможность нечестно победить. Поэтому я решил слегка изменить начальную версию программы: убрал таймер и организовал принятие решения компьютера в момент клика по одной из трех картинок.
Во время модификации программы я утомился работать со строковыми представлениями картинок и режимов игры, добавил отдельный класс GameLogic. В тот момент задумался, как можно усложнить игру? Ответ пришел быстро - разные варианты генерации решений компьютером. Например, компьютер будет учитывать предыдущие ходы игрока, сохранять их в коллекцию и далее по-хитрому медитируя пытаться угадать следующий шаг.
Чтобы создать задел для разных версий генераторов, использовал полиформизм, добавил интерфейс IChoiceGenerable и реализовал его в классе RandomChoiceGenerator, который (как в видео уроке) рандомно принимает решение в полуоткрытом интервале [1, 4). Версию с AI пока что делать не стал, оставил на будущее)
Научился: Пользоваться инструментом "panel" Трудности: Бороться с собственной невнимательностью) Добавлен режим "Без учета времени" (при этом режиме пользователь видит выбор компьютера только после того как сделает выбор сам), чтоб игра была не только на скорость реакции, но и на удачу :)