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

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

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

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

    Задание:
    Сделать тренажёр устного счёта по основным арифметическим операциям.
  • Дата отправки отчёта: 17 августа 2016 г.
  • Задание выполнено: за 3 час. 20 мин.
  • Чему научился: Многому.
  • Что было сложным: Практически все.
  • Комментарии: Все отлично
  • Оценка видео-уроку:
Отчёт от 9156 за Демо игры / VIP. Устный счёт




Оцени работу

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

10558. Иван Воронин
Иван Воронин
ответить
→  DimkaKMS  # Демо игры / VIP. Устный счёт / 2016-08-17 22:42

видимо потому что 64:8, я вот подумал что программист, я люблю степень двойки (двоичная система, 2 4 8 16 32 64 128 ...) значит 8 это 2^3, а 64 это 2^6


459. Сергей Сергеевич
Сергей Сергеевич
ответить
→  DimkaKMS  # Демо игры / VIP. Устный счёт / 2016-08-17 21:16

Люблю шахматы, люблю думать)))


9156. DimkaKMS
DimkaKMS
ответить
→  Евгений Волосатов  # Демо игры / VIP. Устный счёт / 2016-08-17 13:12

нет, а почему возник вопрос?


1. Евгений Волосатов
Евгений Волосатов
ответить
→  DimkaKMS  # Демо игры / VIP. Устный счёт / 2016-08-17 12:56

Димка, вы шахматист?


9156. DimkaKMS
DimkaKMS
ответить
→  Максим Лапшинов  # Демо игры / VIP. Устный счёт / 2016-08-17 12:35

Попрактиковался


5649. Максим Лапшинов
Максим Лапшинов
ответить
→  DimkaKMS  # Демо игры / VIP. Устный счёт / 2016-08-17 12:33

Попрактиковались в устном счете?


  • Отчёт оценивали:
    9237Mais+1   10670Сергей Соколов+1   9156DimkaKMS+1   5649Максим Лапшинов+1   10673Алексей Хонин+1   1Евгений Волосатов+1   4467Alcatraz+1   8886Михаил Ермишин+1   6452Кирилл Шмойлов+1   10494Алексей В.+1   689Igorenzia+1   4395Денис+1   7276Ильшат+1   11022София0   7645Александр Львович+1   791Валерий Жданов+1   7119Новопашин Владимир+1   1232Фомичева Наталья+1   8959Максим Саратов0   459Сергей Сергеевич+1   9332Dima+1   9820Konstantin+1   10558Иван Воронин+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Выполнять определенные действия, при нажатии определённых клавиш, например if (e.KeyCode == Keys.Enter) Сам добавил обратный таймер private void timer_Tick(object sender, EventArgs e) { if (timeLeft > 0) { timeLeft = timeLeft - 1; label_time.Text = timeLeft + " секунд"; } else { timer.Stop(); label_time.Text = " Час вийшов"; MessageBox.Show(" Ви не встигли!", "Вибачте"); Game_over(); } }
Трудности: Добавить обратный таймер, хоть какой-то private void timer_Tick(object sender, EventArgs e) { if (timeLeft > 0) { timeLeft = timeLeft - 1; label_time.Text = timeLeft + " секунд"; } else { timer.Stop(); label_time.Text = " Час вийшов"; MessageBox.Show(" Ви не встигли!", "Вибачте"); Game_over(); } }
Всё гуд, дам программу маме она своим школьникам будет давать для тренировки.
Научился: То что высота компонента 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. В целом, здорово позанимался, я доволен. Спасибо, Евгений Витольдович)