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

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Боты Сапёра / ТРЕТЬФИНАЛЬНЫЙ УРОК

  • Поздравляю с завершением курса по созданию игры Сапёр.
    Однако создание игры на этом ещё не закончено.
    Твоя задача - придумать, что ещё можно/нужно
    добавить в игру и реализовать это.
    Запиши видеообзор своей игры и расскажи,
    что ты добавил в неё самостоятельно.
  • Дата отправки отчёта: 13 сентября 2016 г.
  • Задание выполнено: за 24 час. 00 мин.
  • Чему научился: закрепил полученные ранее знания
  • Что было сложным: перестать добавлять фишки (идеи ещё есть) ну и найти время на всё это =)
  • Комментарии: Список нововведений относительно базовой версии из курса “Сапёр на C#”:
    Как обычно создал уникальную иконку для бинарника и форм. Нарисовал текстуры в цветовой палитре ZX Spectrum.
    Добавлена возможность выбора сложности игры.
    При выборе сложности, динамически изменяется размер поля. Отображается галочка напротив выбранной сложности.
    Добавлены ограничения по количеству мин относительно размеров поля. Ограничение клеток по высоте и ширине, для удобства восприятия.
    Добавлена форма настроек “Особой...” игры.
    Количество мин трёхзначное.
    Ограничение по минимальной высоте и ширине поля в зависимости от размера поля. 
    Добавлена форма отображения “Чемпионов” и соответствующий пункт меню.
    Добавлен счётчик игрового времени независимый для каждой сложности.
    “Чемпионы” хранятся в отдельном файле. 
    Добавлена система сохранения текущей игры в соответствующий файл.
    Если при выборе сложности найдено сохранение для неё, то загружается карта поля  и можно продолжить игру, если же файл не найден, повреждён или параметры отличаются  от выбранных, файл удаляется, а игровое поле генерируется с нуля. 
    Добавлена возможность сохранять текущие параметры игры. 
    При закрытии и открытии игра запускается с последними выбранными параметрами  и загружает сохранение игры если оно найдено и корректно. 
    В начале игры или при загрузке сохранения игра становится на паузу до первого клика,  в тайтле отображается текущее время, потраченное на данную карту. 
    Как только игра закончена (победили/проиграли), то сохранение текущей игры удаляется.
    Добавлена форма ввода “Имени рекордсмена” для сохранения в списке “Чемпионов”. 
    Добавлена поддержка формата mp3.
    Добавлены 4 мелодии формата ZX Spectrum с оригинальных дискет для окна «О игре».
    При открытии окна «О игре», треки чередуются по очереди (музыка играет по кругу пока  не закрыть окно, при этом сама игра становится на паузу, таким образом можно подумать  над очередным ходом под ностальгические мелодии). 
    Добавлены звуки: тиканье таймера и взрыв бомбы.
    В папке “data” файлы расположены по типу: “save” и “sound”.
    Если побит рекорд, открывается окно ввода “Имени рекордсмена”, после чего открывается  список “Чемпионов”.
    Оптимизирован размер сохранений игры (теперь они весят в 4 раза меньше). 
    Добавлено отображение версии и билда игры в окне «О игре».
  • Оценка видео-уроку:
  • Видеозапись: https://youtu.be/gzJXIH3nWLU
Отчёт от 10558 за Боты Сапёра / ТРЕТЬФИНАЛЬНЫЙ УРОК




Оцени работу

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

7238. --
Константин
Константин
ответить
→  Иван Воронин  # Сапёр на C# / ПОЛУФИНАЛЬНЫЙ УРОК / 2016-09-13 13:08

Решение получилось бомбовское. Только фраза за-loop-лена звучик как-то не оч...


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Иван Воронин  # Сапёр на C# / ПОЛУФИНАЛЬНЫЙ УРОК / 2016-09-13 13:39

Включение музыки через пункт меню "об игре" - это не самая очевидная мысль.
Пауза в сапёре должна отсутствовать, так как больше всего времени именно на обдумывание тратится на сложных уровнях.
Только уже ничего не переделывай, программа вышла супер, просто шедевр!
Мне бы такую на спектруме :) в 1992 году.


4699. --
Сергей Витальевич
Сергей Витальевич
ответить
→  Иван Воронин  # Сапёр на C# / ПОЛУФИНАЛЬНЫЙ УРОК / 2016-09-13 13:47

Хотелось увидеть хоть немного кода и посмотреть на файл настроек и сохранений. Как по мне музыку надо было сделать во время игры, а не во время паузы.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Константин  # Сапёр на C# / ПОЛУФИНАЛЬНЫЙ УРОК / 2016-09-13 14:04

да, я на это тоже обратил внимание, когда прослушивал, но как говорится, каждый слышит то, что хочет услышать =)


10558. --
Иван Воронин
Иван Воронин
ответить
→  Евгений Волосатов  # Сапёр на C# / ПОЛУФИНАЛЬНЫЙ УРОК / 2016-09-13 14:05

и не собираюсь, я сделал её такой, какой хотел, по поводу паузы, не думаю что после реализации бота это проблема =)


10558. --
Иван Воронин
Иван Воронин
ответить
→  Сергей Витальевич  # Сапёр на C# / ПОЛУФИНАЛЬНЫЙ УРОК / 2016-09-13 14:11

во время игры идёт тиканье и взрыв, этого достаточно, музыку же слушаешь во время паузы, не напрягая мозги решением, данные в файлах хранятся в бинарном виде, ничего там визуально интересного нет, по поводу кода, половина кода дана в самом курсе, далее флаг в руки, пишешь код так, как считаешь нужным, я решил, что именно так и должна выглядеть игра сапёр в которую мне интересно играть, хотя времени на этом и нет, но если я захочу поиграть, буду играть в свою версию =)


4004. --
Елена
Елена
ответить
→  Иван Воронин  # Сапёр на C# / ПОЛУФИНАЛЬНЫЙ УРОК / 2016-09-14 06:14

Красивая игра получилась


7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Иван Воронин  # Сапёр на C# / ПОЛУФИНАЛЬНЫЙ УРОК / 2016-09-14 06:33

Я вот подумал - может возродить бренд ZX Spectrum.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Елена  # Сапёр на C# / ПОЛУФИНАЛЬНЫЙ УРОК / 2016-09-14 11:52

Спасибо, вчера её обновил, теперь если открыть во время игры "О игре", чтобы была пауза, игра автоматом становится "Особой..." и если победил и побил рекорд той сложности на которой начала играть, уже не засчитают, как говорится, игра становится чисто фановая =)


10558. --
Иван Воронин
Иван Воронин
ответить
→  Новопашин Владимир  # Сапёр на C# / ПОЛУФИНАЛЬНЫЙ УРОК / 2016-09-14 11:54

не знаю, как насчёт бренда, он до сих пор жив, и делают игры, музыку, пиксельарт =)
з.ы.
но я точно планирую в этом стиле делать игрушки и уже есть в планах не мало их


  • Отчёт оценивали:
    17576Илья0  

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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.


Научился: Научился выставлять таймер и счетчик количества флагов.
Трудности: Разобраться как можно из класса где вычисляется логика передать данные в другой класс отображения результатов на форму. Оказалось все очень просто через return.
Пришлось подумать и посмотреть в интернете как можно передавать данные - оказалось никак TextBox имеет доступ private поэтому только через return.


Научился: Проникать в локальный класс)))
Трудности: Самым сложным было сделать, чтобы данные с формы учитывались в локальном классе.
Спасибо всем, кто поддерживает меня в моих начинаниях. Евгений Витольдович: я обязательно посмотрю редактор сапера, спасибо за наводку. Новопашин Владимир: у нас количество столбцов и строк обрабатываются в локальном классе mines, если я на форму добавлю трекбари и пр... их значения будет низя передать в переменные локального класса (он просто их не будет видеть). Вобщем и в целом: я нашел как обмануть систему, теперь можно выбирать размеры поля)) Прописал условие победы, теперь оно показывается. Счетчик мин решил не добавлять, вместо него прогресс_бар. Мне кажется так круче. Ну и вообще, как и хотел Владимир - добавил менюшку со сложностями (ну и вообще, сделал кнопку "новая игра"). Конечно, это крохотная часть фич, которые можно добавить, поверьте, но надо дальше делать уроки. Ссылка будет доступна 14 дней (сегодня 07.03.2017)