На этом уроке мы создадим аналог телеигры «Поле чудес» по правилам игры «Виселица». Нужно угадать слово за несколько попыток, с каждой ошибкой будет строиться виселица.
Дата отправки отчёта:
18 апреля 2016 г.
Задание выполнено: за
3 час. 50 мин.
Чему научился:
1) Создавать файлы ресурсов. 2) Загружать данные из файла, работать со списком строк. 3) Повторил работу с настройкой интерфейса программы.
Что было сложным:
Создать желаемый интерфейс программы.
Комментарии:
Данный урок ранее выполнял в предновогоднюю чашку кофе. Для закрепления решил создать новую программу. Написал с нуля, достаточно долго настраивал интерфейс. Целью было создать схожую внешне программу с предновогодней версией. Были проблемы с компоновкой, фоном, рамок вокруг меток. Я принципиально сделал упор на автоматическую компоновку объектов на форме, то есть, без ручного подсчета координат и размеров виджетов. Объекты сами рассчитывают свои размеры, а я лишь задаю описание, например, объект картинка "должен занимать весь левый угол формы", объект загадываемое слово "правую и верхнюю часть формы". В Windows Forms для этого используются Dock, Anchor, TableLayoutPanel. Вообще говоря, думаю следует копать в сторону максимальной изоляции кода формы от кода логики, напрягает их смешивание. На ум приходит использование декларативного описания элементов формы с помощью qml + javascript. Если не ошибаюсь, в C# для этого используется WPF.
Различия в названиях методов и контролов не критичны, важнее удобство создание интерфейса, разделение работы дизайнера и программиста. Спасибо за пояснение, Дмитрий, возьму на заметку XAML.
Ты прав, для этих целей WPF подходит просто идеально. Там стандартный язык разметки XAML. Но у WPF нет части контролов которые есть в Forms. Если будешь переходить на него будь готов к этому. Например нет PictureBox (есть аналог Image, но он не совсем такой). Также у многих контролов разные названия методов. К примеру у label метод не text, а content. Но это мелочи по сравнению с преимуществами над Forms. Есть поддержка альфаканала без заморочек! Отрисовка графики через DirectX, а не через GDI/GDI+. Чекбоксу свою галочку? Легко. Кнопке скругленные углы? Легко. Один скругленный угол кнопке? Легко. Анимацию добавить? Легко, даже в код заходить не надо (XAML и это умеет).
Научился: Улучшил навыки использования компонентов и элементов управления.
Разрабатывать логику программы.
Работа с ресурсами. Трудности: Так как пытался сделать по-своему, были некоторые сложности с размещением компонентов. Замечательно что за один урок можно сделать полностью рабочую программу, в которую можно много всего добавить.
Добавил счетчик игр и угаданных слов, еще хочу добавить английский вариант.
Спасибо, очень насыщенный урок и полноценная игра!