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

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

Демо игры / VIP. Устный счёт

  • На этом уроке мы напишем программу для тренировки устного счёта.

    Задание:
    Сделать тренажёр устного счёта по основным арифметическим операциям.
  • Дата отправки отчёта: 16 августа 2016 г.
  • Задание выполнено: за 1 час. 30 мин.
  • Чему научился: Новым фишкам типа ПрогрессБара
  • Что было сложным: Ничего
  • Комментарии: Все отлично! Пора что-то уже покупать : )
  • Оценка видео-уроку:
Отчёт от 6940 за Демо игры / VIP. Устный счёт




Оцени работу

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

1. Евгений Волосатов
Евгений Волосатов
ответить
→  sawezx  # Демо игры / VIP. Устный счёт / 2016-08-16 18:57

Самое время. Вступай в клуб формулистов. Сегодня первый вебинар.


  • Отчёт оценивали:
    6940sawezx+1   10494Алексей В.+1   10673Алексей Хонин+1   7645Александр Львович+1   1Евгений Волосатов+1   4992Николай+1   9237Mais+1   5649Максим Лапшинов+1   24Олюшка+1   4395Денис+1   3506Алексей|BrisK|Кривицкий+1   9971Юрий+1   459Сергей Сергеевич+1   7276Ильшат+1   791Валерий Жданов+1   10558Иван Воронин+1   9332Dima+1   2146Иван+1   6477Оксана0   7238Константин0   10670Сергей Соколов+1   10162Дмитрий+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: То что высота компонента TextBox зависит только от размера выводимого шрифта.
Трудности: Проблем как таковых по уроку не было, я их сам себе создал, когда решил добавить абстракцию выбранной операции(сложение, вычитание и т.д.) Достаточно долгое время работал над интерфейсом программы.
В уроке понравился способ генерации чисел для операции деления, где a = random.Next(1, 10); b = random.Next(1, 10); first_arg = a * b; second_arg = b; В итоге получаем, что результат деления всегда получается целый. От себя добавил, хм, много чего. Изменил интерфейс, освежил в памяти свои давние знания по GroupBox, RadioButton. Добавил операцию "остаток от деления". Заменил текстовое поле диапазона генерируемых чисел на три RadioButton (уровни сложности). Добавил таймер обратного отсчета, дифференцировал результат сдачи теста по оценкам (учитывая затраченное время на прохождение). Кроме того, при запуске теста "наглым образом" уменьшаю высоту окна, чтобы скрыть настройки и добавить сверху информационные поля (см. на скриншотах). Добавил кнопку отмены теста, поработал с выводом MessageBox при различных результатах работы программы: тест успешно пройден на оценки 5, 4, 3, тест не пройден (по ошибке), тест не пройден (время истекло). В целом, чудненько, работа с интерфейсом затягивает, хочется добавить что-нибудь эдакое) По коду. В принципе, модификаций не очень много. Решил поиграться, выделить операцию в отдельную абстракцию - BinaryFunction. Сделал ее в виде абстрактного класса, от которого наследовал классы Plus, Minus, Mult, Div, Modulo. Для управления всем этим добром, и с учетом необходимости постоянной генерации случайных аргументов функции, добавил "драйвер" - класс BinaryCalculation. Этот класс создает нужный экземпляр класса BinaryFunction в момент нажатия на кнопку "Начать тест" и затем каждый раз обращается за результатом работы функции в момент нажатия пользователем кнопки Enter на поле ввода ответа. Хотел абстрагироваться еще дальше, добавить класс UnaryFunction (например для вычисления факториала), потом TernaryFunction, а потом вообще замахнулся на вычисление сложных, вложенных выражений. Задумался, а зачем? Программа создается с целью проверки устного счета, поэтому остановился на одном классе BinaryFunction. В целом, здорово позанимался, я доволен. Спасибо, Евгений Витольдович)
Научился: Повторение пройденного
Создал в фотошопе иконку для форм и бинарника. Добавлен пункт настроек: "Простые операции" (используется только одна операция и при вычитании ответ никогда не будет меньше нуля). Добавлен пункт настроек: "Несколько операций" (при генерации примеров используются две одинаковых операции). Косметика визуального представления операций умножения и вычитания. Фокусировка на последней нажатой кнопке "начала игры" после победы. Фокусировка на поле ввода ответа после начала игры. Используется минимальное значение равное 0 там где это логично (для разнообразия генерации примеров). Добавлен счётчик потраченного времени. Добавлен счётчик неверных ответов (используется для определения итоговой оценки). При неверном ответе, поле ответа очищается, отображается подсказка с верным ответом и увеличивается счётчик неверных ответов (цвет счётчика меняется в зависимости от итоговой оценки). Следующий пример не сгенерируется, пока не будет верно решён текущий. После того как решил все примеры и ползунок дошёл до 100%, отображается сообщение с итоговой оценкой. Добавлен пункт настроек: "Случайные операции" (при генерации примеров используются случайные операции, совместно с "Несколько операций" может сгенерировать разные две операции). Если активен пункт "Случайные операции", то на всех кнопках отображается надпись "Начать" (так как каждый следующий пример будет со случайной операцией). Доработана самая крутая сложность (использованы методы Комбинаторики и Рекурсии). На данный момент существует 8 видов сложностей (что легко посчитать исходя из вариантов установки галочек, все комбинации проработаны и протестированы).