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

Формула программиста
основатель — Волосатов Евгений Витольдович
1-2-3 мая - Создай online игру!
Вебинар «Карточки памяти на Android» начнётся через 1  день 13 час. 33 мин.

Демо игры / 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.



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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Все новое, но уже по легче
Трудности: Разобраться, что мультитекст был явно лишним, потратив кучу времени на поиск ошибки.
Все понятно.
Трудности: Обратная польская нотация и алгоритм её работы - до конца не понял, т.к. мало знаком со стеком (у себя использовал готовый найденный на хабрахабре класс.
При выполнении прошлого задания Евгений написал что следующим этапом будет является самостоятельное выполнение задания не глядя вебинар. В этот раз я так и сделал. Результатом честно говоря очень доволен, хотя времени потратил целый вагон. В настоящее время я ещё так и не посмотрел вебинар, но думаю все таки сделать это, вдруг там будет что то новое. По моей программе: В зависимости от выбранного уровня сложности открываются новые операции, количество цифр в примере и активируется таймер с возможностью установки времени. После выбора опции формируется функция - как это происходит видно на втором скриншоте. Результат отправляется в интерфейс и в класс RPN , отвечающий за преобразование строки в обратную польскую нотацию и получение правильного ответа.