На этом уроке мы начнём делать новую игру - Вирус. Смысл игры подробно рассказан на видео. Цель урока - создать класс GameVirus и реализовать методы GameViurs(), AddGamer(), Step(), RunAll(). Также придумать и написать словами алгоритм методов SetNewVirus(Игрок) и FindNewVirus().
Дата отправки отчёта:
5 ноября 2015 г.
Задание выполнено: за
20 мин.
Чему научился:
Закрепил навыки из прошлых уроков, добавил новый класс GameVirused для реализации новой игры.
Что было сложным:
Сложностей не было.
Комментарии:
У нас имеется два массива, gamers и virused. gamers хранит всех текущих игроков, virused - тех игроков, которые заражены. В SetNewVirus(Игрок) нам необходимо добавить игрока в список virused и сказать ему - Ты Голя. В FindNewVirus несколько сложнее, у нас два массива данных, как такового отдельного лидера уже нет, лидер растворен среди зараженных игроков, поэтому необходимо пройтись в двух циклах по gamers и virused и проверить Поймал ли тот, кто заражен того, кто не заражен. Если поймал, то вызвать функцию SetNewVirus. Если остался всего один не зараженный игрок, то сделать его зараженным, остальных в цикле не зараженными.
Научился: создавать новую игру по старому интерфейсу Трудности: описать правила игры Реализовал игру "Вирус". Последний добавленный в игру игрок становится вирусом. Соприкасаясь с другими, он их заражает. Как только заразили предпоследнего, последний незараженный становится новым вирусом, и игра начинается сначала.
Научился: Пока придумал такую реализацию необходимых методов:
SetNewVirus() - необходимо добавить игрока в список virused, и сделать его голей (покрасить).
FindNewVirus() - проверяем списки virused и gamers и если для них выполняется условие поймал() и если игрока нет в списке virused, то выполняем для пойманного игрока SetNewVirus().
private void SetNewVirus(Игрок gamer)
{
virused.Add(gamer);
gamer.Голя();
}
private void FindNewVirus()
{
foreach (Игрок g in gamers)
{
foreach (Игрок k in virused)
{
if (k.Поймал(g))
{
if (g.Equals(k))
return;
SetNewVirus(g);
}
}
}
} Трудности: Пока не до конца разобрался как реализовать концовку игры - когда задаётся новый вирус.