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

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

Игры со словами / Игры со словами

  • Если есть файл из 27000 слов, то с его помощью можно сделать очень много интересного.
    На уроке мы ищем палиндромы, детские слова и анаграммы.
    Хорошее подспорье для игры Эрудит.
  • Дата отправки отчёта: 22 декабря 2015 г.
  • Задание выполнено: за 2 час. 00 мин.
  • Чему научился: Научился создавать решение для многих игр в слова. Повторил алгоритмы и многое другое.
  • Что было сложным: Самым сложным было придумать свой алгоритм и создать его. Я это воспринял как реализацию еще какой-то игры в слова. И я реализовывал "Составить новые слова". Основная задача этой игры это составить из букв данного слова максимальное количество слов, но в исходных словах должны присутствовать буквы исходного только один раз. Реализация алгоритма прикреплена во 2м скриншоте. В обработчике события нажатия кнопки buttonCreateNewWords_Click() в цикле проходятся  все слова, при этом исключаются сразу же слова большей длины чем заданное и слово из которого мы составляем естественно. Далее вызывается функция IsCreateNewWord() которая возвращает true, если данное слово можно составить из букв исходного. Все очень просто. Если разница между количеством букв в исходном и данном слове меньше нуля, то-есть в слова присутсвуют лишние буквы или их количество больше, чем у исходного метод возвращает false. Тесты проводились по трем словам:
    АВИТАМИНОЗ
    ЦЫПЛЕНОК
    КАБРИОЛЕТ. Думаю с этим заданием справился.
  • Комментарии: Очень классный видеоурок, можно многое почерпнуть для себя.
  • Оценка видео-уроку:
Отчёт от 4467 за Игры со словами / Игры со словами


Отчёт от 4467 за Игры со словами / Игры со словами




Оцени работу

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

24. Оля
Оля
ответить
→  Alcatraz  # Чашка кофе / Игры со словами / 2015-12-22 22:58

Потрясающая работа, Молодец! :)


  • Отчёт оценивали:
    1Евгений Волосатов+1   459Сергей Сергеевич+1   7645Александр Львович+1   2639Морозов Юрий Александрович+1   6925Артём+1   6458Илья+1   3747Сергей+1   689Igorenzia+1   8118Юрий +1   8407Наталья+1   6203Николай (nick27m)+1   7276Ильшат+1   4004Елена+1   6644valerys Nikola0   8005Александр+1   24Оля+1   6452Кирилл Шмойлов+1   7226Наталья+1   5565Frank+1   7980Сергей Лузум+1   4763Фёдор+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Если честно - то многому. 1)Программу делал не пошагово по видеокурсу, а самостоятельно после просмотра курса. Так что пришлось подумать, и в ходе написания алгоритмов нашёл много нового для себя. ")Было добавлено открытие файла со словарём. Теперь можно в любой момент загрузить другой словарь. Слова обрабатываются независимо от регистра. 3)В "Городах" окончания на Ь Ы Ъ игнорируются, берётся предыдущая буква. Й считается за И. При каждом старте первое слово выбирается рандомно. 4) Сложный эрудит так же доработан. Теперь он составляет все возможные слова из набора букв, а не только те что состоят из того же количества букв.
Трудности: Сначала, чтобы не захламлять тело класса формы, решил методы-обработчики вынести в отдельный класс и уже потом их от туда вызывать. Но столкнулся с проблемой - элементы формы в классе не видны. 1) Было принято решение унаследовать класс от Form. В итоге ни к чему хорошему это не привело. Пришлось переписывать проект. 2)Далее было решено создать экземпляр класса Form1 в классе с методами. Элементы формы стали доступны и работа пошла веселее :). Но появилась другая проблема - доступ к методам класса из Form1. Так как родительский класс не статический - статический вызов обломался. 3) И опять в голову приходит "Гениальное решение" создать экземпляр класса с методами в Form1. Барабанная дробь .... и БИНГО!!!!! Доступ есть. И опять радость моя была не долгой. При запуске студия покрутила мне пальцем у виска и объяснила что я замутил бесконечный рекурсивный вызов из класса в класс. ********* Танцы с бубном ни чего не дали. И вернулся я к тому с чего начал - захламлению класса формы.
1) На уроке не рассмотрена вероятность того что буквы в словах могут оказаться разного регистра. 2)Палиндромы проще обработать реверсом, всего две строки кода (в принципе даже одна). А в общем - урок отличный!!!
Научился: Придумывать и применять новые алгоритмы.
Вчера, Евгений Витольдович предложил ещё 1 вариант алгоритма поиска - найти нужно самое длинное слово из не повторяющихся букв. Вуаля)))