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

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

Шарики / Шарики. Поиск линий

  • Реализация последнего алгоритма.
    Поиск линий из 5+ шариков и анимация их удаления.
  • Дата отправки отчёта: 18 июня 2016 г.
  • Задание выполнено: за 2 час. 30 мин.
  • Чему научился: Очень много всего, вроде ничего нового, но все вместе собирается в довольно сложный код.
  • Что было сложным: Реализовать придуманные улучшения.
  • Комментарии: Практически все улучшения получились недоделанными (долго пытался решить с очками и отменой хода, но потом оставил по принципу "лучше сделать как-то, чем никак"):
    1. Подсчет очков. Ровно по 50, независимо от количества шаров. Т.к. реализованная StripLines() на 6 шаров срабатывает 2 раза, на 7 шаров 3 раза и так далее, то получается умножение очков с каждым шаром (100 за 6, 150 за 7). При привязке очков к strips примерно тот же эффект. Поэтому оставил так.
    2. Сохранение рекорда. Но он хранится в переменной и сбрасывается при выходе из игры. Хранение в файле делать не стал.
    3. Кнопка перезапуска игры. Вынес содержимое Status.init  в отдельный метод StartGame() и сделал его вызов по кнопке и при заполнении поля.
    4. Кнопка отмены хода. Возвращает состояние шаров. Но только тех, что уже есть на карте (в нормальном состоянии), без следующих. Следовательно остаются только актуальные следующие, а не сбрасываются на предыдущее состояние (видно на скриншотах). Конечно добавляет определенный игровой момент, но кривовато. Ограничил количество отмен хода тремя.
  • Оценка видео-уроку:
Отчёт от 10193 за Шарики / Шарики. Поиск линий


Отчёт от 10193 за Шарики / Шарики. Поиск линий




Оцени работу

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

1901. Neverwinter 2
Neverwinter 2
ответить
→  Minergimn  # Шарики / Шарики. Поиск линий / 2016-06-19 10:51

Не согласен на счет очков: 7 гораздо труднее чем 6, а 6 труднее чем 5 - поэтому всё правильно стрип лайн обсчитывает.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Minergimn  # Шарики / Шарики. Поиск линий / 2016-06-19 08:57

Еще можно в реестре рекорды хранить.


4467. Alcatraz
Alcatraz
ответить
→  Minergimn  # Шарики / Шарики. Поиск линий / 2016-06-18 23:02

Посмотри как сохранять настройки с помощью вижуал студии. Перейди в свойства проекта и там выбери настройки.


  • Отчёт оценивали:
    4467Alcatraz+1   7119Новопашин Владимир+1   6203Николай (nick27m)+1   4736Евгений+1   10233Виталий+1   10494Алексей В.0   6452Кирилл Шмойлов+1   5649Максим Лапшинов+1   9237Mais+1   1Евгений Волосатов+1   689Igorenzia+1   6987MichGar+1   1901Neverwinter 2+1   4004Елена+1   4992Николай+1   6614Александр+1   10478DeeP0   9971Юрий+1   4485Vlad Yakovlev+1   6391Владимир+1   5419Роман+1   10162Дмитрий0   7873Дмитрий+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Научился искать линии в прямоугольном массиве.
Трудности: Самым сложным было добавить своё, чтобы оно работало.
Фух, я сделал это. Сделал!! Вопрос: как изменить вид Progress бара? Там есть 3 типа: Blocks, Continious, Markin. И первый не работает. И полоса всегда зелёная. Как это поменять?
Научился: Разбираться в ранее написанном коде и доводить дело до конца
Трудности: Запись результатов в файл. Ну на самом деле не сложно просто хотелось поместить файл в ресурсах. Нашел как правильно указать к нему путь но вот тут загвоздка. Из ресурса можно только читать, но не записывать так как программа в режиме дебага находится. Так что пришлось делать по старинке - заносить текстовый файл в папку с exe'шником
Добавил счетчик мячиков на поле, подсчет очей ( пришлось придумать формулу для расчета потому что в алгоритме программы находит пары по 5 мячей и потом суммирует их. то есть если всего в ряд 8 мячей то считает 20. вот для этого нужно было придумать метод подсчета). Добавил кнопку "Undo" - возвращает поле в положение предыдущего хода (не корректно работает если была удалена линия - не возвращает её на место, только мелкие шарики и последний перемещенный). Добавил статистику. При окончании игры результат автоматически записывается в файл и при нажатии S либо выбора пункта в меню выводятся все результаты которые были наиграны за время существования файла. При удалении файла не будет ошибки дебага т.к. он тут же создастся правда пустой. Ну и кнопка "New Game" | N - возвращает поле в исходное положение. Все очки будут утеряны и результат не появится в статистике. Крутая игрушка. На порядок выше написанных ранее.