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

Формула программиста
основатель — Волосатов Евгений Витольдович

Игры со Спрайтами / Домино. Ура! Победа!

  • На этом уроке мы допишем пасьянс из Домино.
    Напишем методы IsWinner() и IsLooser().
    Добавим метки для оповещения о результате игры
    и попытаемся наконец-таки разложить этот пасьянс.
    Не забудьте добавить эту программу в своё портфолио!

    Внимание! В конце видео можно посмотреть на весь код целиком.
  • Дата отправки отчёта: 9 ноября 2015 г.
  • Задание выполнено: за 20 мин.
  • Чему научился: Играть в пасьянс-домино!
  • Что было сложным: Как оказалось, выиграть в эту игру очень сложно, порой не с 3-его и даже не с 5-ого раза получается ее пройти) Но тем интереснее) Потом еще раз попробовал пройти, прошел с первого раза, как повезет!)
  • Комментарии: Так и не разобрался с функцией IsLoser, к тому же один раз она выдала ошибку, что "индекс вышел за пределы массива". Ее еще придется доработать.
  • Оценка видео-уроку:
Отчёт от 2773 за Игры со Спрайтами / Домино. Ура! Победа!


Отчёт от 2773 за Игры со Спрайтами / Домино. Ура! Победа!




Оцени работу

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

  • Отчёт оценивали:
    1Евгений Волосатов+1   3658Назар0   6925Артём+1   6987MichGar+1   6696Владимир Борисенко+1   7645Александр Львович+1   459Сергей Сергеевич+1   5882Александр Широков+1   4395Денис+1   6080annaka+1   6458Илья+1   6391Владимир+1   7985Андрей 0   4004Елена+1   5419Роман+1   8053Николай0   429Максим Базуев+1   7871Мария+1   7795Вадим0   4732Sergey+1   6452Кирилл Шмойлов+1   4889Валера Луцевич+1   7901Влад+1   7788Ксения+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: скорее не "научился", а "подучился" ) Ну или "прокачался" ))
Трудности: Разобраться в некоторых моментах логики
Как обычно во время написания, возникают всякие ненормальные идеи мимо которых трудно пройти). Возникла идея хранить плашки в обычном массиве plate[], инкапсулировать его в класс какой-нибудь Plates и реализовать к нему свой именованный энумератор, чтоб обращаться можно было Plates[2,1], а он возвращал плашку plat[4]. Т.е. двумерного массива вроде как и нет, а плашки из ряда можно доставать так, как будто они у нас на поле лежат разложенные. Ни лишних тебе элементов в массиве, да еще и форичем можно пройтись. В общем провозился пару часов, никогда раньше энумераторы не реализовывал, но остался доволен. Потом перепишу игрушку без двумерных массивов. Я, думаю, что если рассматривать плашки как одномерный массив, проще логика будет и для открытых плашек отдельный список, чтоб меньше перебора и лишних проверок было.
Научился: Научился меньше страшиться кода.
Трудности:  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; } Не понял эту строчку sum[map[x, y].Sum()]++;
Все отлично.