Если есть файл из 27000 слов, то с его помощью можно сделать очень много интересного. На уроке мы ищем палиндромы, детские слова и анаграммы. Хорошее подспорье для игры Эрудит.
Дата отправки отчёта:
24 декабря 2015 г.
Задание выполнено: за
1 час. 50 мин.
Чему научился:
1) Метод File.ReadAllLines, который возвращает содержимое файла в виде массива строк. 2) Познакомился с классом StringBuilder, невооруженным глазом видна разница в производительности по сравнению с string при обработке больших строк. 3) Использование Linq.
Что было сложным:
Подробный урок, проблем не было.
Комментарии:
Хороший урок, емкий, много различных примеров игр со словами. От себя добавил простую игру – погуглил в интернете и выбрал игру "Слова-шифровки", где задается начальное слово и выполняется поиск по словам, которые начинаются из букв начального слова. Например, МИР => М - Мы, И - Ирина, Р - Ракета. Немного усложнил поиск слов, добавил рандомайзер и при каждом нажатии на кнопку формируются новый список слов. В коде решил поэкспериментировать, создать решение в функциональном стиле, чтобы яснее выразить мысли, без циклов и прочего. В С++ для этого есть алгоритмы, функторы(или для краткости и локальности лямбды). Искал что-то похожее в C#. Почитал msdn, нашел решении в нечто с названием Array.FindAll(array, predicate), где array это массив, predicate это условие. В общем, работает. Библиотека C# впечатляет, много возможностей, мне нравится.
интересно Евгений когда-нибудь посвятит урок этим лямбдам выражениям(я их стрелочки называю), а то иногда на форумах попадаются примеры с ними, а как их читать не фига не вкуриваю и приходится искать примеры без них
Так как там одинаковые конструкции обработки слов у первых 3 кнопок, я вынес это все в функцию и передавал делегат. На мой взгляд это рациональнее. В целом, спасибо за урок)
Трудности: Для возможности записи в файл новых слов и считывания их сразу пришлось открывать и записывать Stream потоком. Задал полный путь к файлу. Есть ли возможность задавать относительный путь? А лучше зашивать в ресурсы? Добавлена возможность выборки слов для игры эрудит. (кнопка для Танюши. Учитывается количество одинаковых букв.)
Добавлена возможность добавления слов в файл во время работы программы.