На этом уроке мы допишем пасьянс из Домино. Напишем методы IsWinner() и IsLooser(). Добавим метки для оповещения о результате игры и попытаемся наконец-таки разложить этот пасьянс. Не забудьте добавить эту программу в своё портфолио!
Внимание! В конце видео можно посмотреть на весь код целиком.
Дата отправки отчёта:
18 октября 2015 г.
Задание выполнено: за
1 час. 00 мин.
Чему научился:
Научился меньше страшиться кода.
Что было сложным:
public bool IsLooser() { int[] sum = new int[sumDrop + 1]; for (int x = 0; x <= maxPoints; x++) for (int y = 0; y <= x; y++) if (map[x, y].state == PlateStates.open || map[x, y].state == PlateStates.marked) sum[map[x, y].Sum()]++; for (int j = 0; j < sumDrop / 2; j++) if (sum[j] > 0 && sum[sumDrop - j] > 0) return false; if (sum[sumDrop / 2] >= 2) return false; return true; }
Научился: Выполнил все задания. Трудности: Сложным было полностью разложить пасьянс, 20-25 попыток ушло на это. От себя добавил, то что когда плашка выделена и мы еще раз нажимаем на нее, выделение пропадает.
Научился: Играть в домино))) на самом деле изучил на примере домино как создаются одни из самых важных функций в любой игре - Победа и Проигрыш. Тестировал работу двух функций на совсем простом домино - с макс. числом 8, 6 и 3. Это чтоб побыстрее сдать отчет. А так еще хочу попробовать поиграть на больших массивах (вроде как присылал в первом отчете).