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

Формула программиста
основатель — Волосатов Евгений Витольдович
Yii2 + PHP = 25 уроков с 80% скидкой

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

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

    Задание:
    Сделать тренажёр устного счёта по основным арифметическим операциям.
  • Дата отправки отчёта: 14 декабря 2015 г.
  • Задание выполнено: за 3 час. 00 мин.
  • Чему научился: Выводить данные в метки и в текстовые окна, считывать данные из меток и текстовых окон, распознавать нажатие кнопки Enter, программно задавать фокус, попрактиковался в программировании секундомера.
  • Что было сложным: Совершенно измучился с тем, что на втором и последующем шагах в элементе text_answer почему-то добавляется \r\n. Мучился с этим не менее 3-х часов – так и не понял, с чем это связано.
    Соответственно, после первого шага не работает сравнение:
    if (text_answer.Text == answer)
    В конце концов, нашел следующее решение с конвертацией в целое число:
    if (Convert.ToInt32(text_answer.Text) == Convert.ToInt32(answer))
    Кто-нибудь может объяснить мне, в чем тут дело?
  • Комментарии: Остался вопрос: почему на втором и последующем шагах в элемент text_answer добавляется значение \r\n?
    Также не понял, почему в начале работу программы я не смог сместить фокус с элемента text_answer?
  • Оценка видео-уроку:
Отчёт от 7645 за Демо игры / VIP. Устный счёт




Оцени работу

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

24. Олюшка
Олюшка
ответить
→  Александр Львович  # Наноигры / Устный счёт / 2015-12-15 17:05

Александр, рада что теперь все отлично получилось, и ты приобрел отличнейшие знания и опыт! Молодец! :)


7645. Александр Львович
Александр Львович
ответить
→  Евгений Волосатов  # Наноигры / Устный счёт / 2015-12-15 06:40

Большое спасибо, Евгений Витольдович! Причина моей ошибки была в том, что для текстового окна я установил параметр MultiLine=true.
Установка фокуса на текстовое окно в начале работы, как оказалось, произошло из-за того, что его параметр TabIndex был равен 0.


7645. Александр Львович
Александр Львович
ответить
→  Ильшат  # Наноигры / Устный счёт / 2015-12-15 06:05

Большое спасибо, Ильшат! Причина была именно в параметре MultiLine!


7276. Ильшат
Ильшат
ответить
→  Александр Львович  # Наноигры / Устный счёт / 2015-12-15 00:43

Александр, проверьте в свойствах text_answer значение свойства MultiLine. Я попробовал представить Вашу ситуацию, изменил на MultiLine = true, в итоге при if (Convert.ToInt32(text_answer.Text) == Convert.ToInt32(answer)) система корректно удаляет начальные или конечные whitespace символы. Если же сравнивать сами строки, то как раз \r\n добавляется перед вводимым ответом, поэтому ошибка. Нужно установить MultiLine = false.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Александр Львович  # Наноигры / Устный счёт / 2015-12-14 23:18

Испоьзуй метод Trim.


  • Отчёт оценивали:
    8Василевская Елена0   6925Артём+1   459Сергей Сергеевич+1   1Евгений Волосатов+1   7276Ильшат+1   6458Илья+1   6958Кирилл+1   4395Денис+1   8005Александр+1   8274Виктор 0   7448Sergey Shumskiy+1   24Олюшка+1   4732Sergey+1   7449Elena Karpanova+1   2725Anton+1   3747Сергей+1   6203Николай (nick27m)+1   5419Роман+1   2639Морозов Юрий Александрович+1   7299Ирина+1   4992Николай+1   3506Алексей|BrisK|Кривицкий+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: На этом уроке я узнал о новом методе Convert.ToInt16, узнал как производятся арифметические действия в C# и как они записываются ( пока что 4 действия ), узнал как поменять 2 переменные местами, как определить нажатие клавиши, повторил генератор случайных чисел, работу с PictureBox и Panel, увидел как выглядит инструкция try-catch, узнал как использовать и работать с таблицей Alt-кодов для Windows.
Трудности: Самым сложным было не запутаться в хитросплетениях условий if else. В остальном, если всё внимательно изучить, проблем не возникает.
В интернете нашёл код, как можно заглушить звук после ввода ответа в текстовое поле и нажатия клавиши Enter. Хотел добавить ещё звуков, но написав класс и добавив функции в код, программа наотрез отказалась их воспроизводить. Проблему так и не нашёл, однако имеются догадки. Искал, искал проблему, но не найдя, удалил класс. Ещё одна проблема возникла в тот момент, когда хотел сделать невозможным ввод в поле ответа иных символов, нежели только цифры. А в поле text_max не смог ограничить число вводимых нулей ( подумаю на досуге ), также как не смог избавиться от системного звука при отображении MessageBox, когда выводилось сообщение о победе или проигрыше. Сделал только смену картинок при срабатывании этих функций. Ещё хотел использовать TableLayoutPanel, но запарился с его настройкой и в итоге не стал делать. Спасибо за отличный урок!!
Научился: Продолжил учиться работать с контролами WF
Трудности: Сложностей не встретил
В моей версии игры сложность можно менять в любой момент игры, достаточно ввести в текстбокс новое значение и нажать Enter. Кроме того я ввёл таймер, отсчитывающий время, отпущенное для решения каждого примера. Время с помощью логарифма десятки зависит от сложности примера. Когда остаётся 4 секунды, поле загорается жёлтым, когда 2 - красным. Если время заканчивается, следует конец игры.