Добрый день, кажется стоило упомянуть в более простом виде, что ZBrush обладает отличным от остальных программ встроенным движком рендеринга превью модели, что позволяет ему без каких-либо последствий загружать модели на 20 миллионов полигонов, когда тот же Blender уже при 1 миллионе будет показывать слайд шоу в скульптинге.
Смотря что ты называешь "не кривой" подсветкой. Подсветка кода такая-же как и в Discord\Telegram. Для каких-то мини примеров этого хватает, а большего и не надо. Очевидно что в силу специфики приложения нельзя ожидать что уровень будет как у IDE-шек по типу VS.
Очень много интересных рекомендаций, может это уже и не очень необходимо, все же постараюсь дать пару рекомендаций по коду
Во первых формула про которую так много говорили, думаю стоит дать пояснение того как её лучше реализовать, в скрытом тексте будет детальное пояснение и реализация в конце:
Формула
Сначала определимся, что наши исходные данные это таблица которая по длине и ширине не превосходит 9 т.к. иначе будет невозможно однозначно расшифровать результат после сцепления чисел Обратим внимание, что при делении целых значений в c# остаток отбрасывается, этот факт нам пригодиться Далее по решению буду считать что нумерация колонок начинается с 0 Итак, наш выход это число вида AB = 10 * A + B, где A - строка и B - колонка таблицы Далее из нашего символа вычтем начало алфавита (большое а для кода в вашем решении) Так как в нашей таблице определенное число колонок, а элементы расположены друг за другом в виде:
0 1 2 3 4 5 6 7 8 9 ...
Не сложно заметить что номер нашей колонки равен остатку от деления на количество колонок:
0 1 2 3 4 0 1 2 3 4 ...
Отлично, мы знаем как получить B теперь давайте посмотрим на строки Каждая строка начинается с числа кратного числу колонок, из чего не трудно заметить что мы можем разделить наш символ на длину строки чтобы получить строку то есть А
Теперь вспоминаем что мы начинали с нуля, поэтому к A и B теперь нужно добавить по 1 чтобы не нарушалась оригинальная индексация
В результате получим: A = (символ - начало алфавита) / длина строки + 1 B = (символ - начало алфавита) % длина строки + 1
Я также заметил что в комментариях прозвучала проблема о размере таблицы. Сразу скажу что идея использования большой таблицы в методе шифрования времен древней Греции бесполезна. Изначально метод предназначен для шифрования ограниченного числа последовательно идущих символов переиначивать используя словари бесполезно.
Java: избавляется от множественного наследования и добавляет интерфейсы для того чтобы избавить разработчиков от проблемы множественного наследования (не знаю где как, а в плюсах эта проблема актуальна)
Конечно, с учётом того, какие теги стоят, можно простить некоторые огрехи, но обижать сильные фичи, по типу интерфейсов которые дают отличные возможности по созданию красивых абстракций и избавляют сообщество от неимоверно неприятных структур наследования, явно не стоит.
Не хочу обижать автора, но большинство критики в комментах оправдано, и вам бы стоило подредактировать статью чтобы не вводить в заблуждение. Возможно и оценки статьи поднимутся.
Добрый день, кажется стоило упомянуть в более простом виде, что ZBrush обладает отличным от остальных программ встроенным движком рендеринга превью модели, что позволяет ему без каких-либо последствий загружать модели на 20 миллионов полигонов, когда тот же Blender уже при 1 миллионе будет показывать слайд шоу в скульптинге.
Смотря что ты называешь "не кривой" подсветкой. Подсветка кода такая-же как и в Discord\Telegram. Для каких-то мини примеров этого хватает, а большего и не надо. Очевидно что в силу специфики приложения нельзя ожидать что уровень будет как у IDE-шек по типу VS.
Очень много интересных рекомендаций, может это уже и не очень необходимо, все же постараюсь дать пару рекомендаций по коду
Во первых формула про которую так много говорили, думаю стоит дать пояснение того как её лучше реализовать, в скрытом тексте будет детальное пояснение и реализация в конце:
Формула
Сначала определимся, что наши исходные данные это таблица которая по длине и ширине не превосходит 9 т.к. иначе будет невозможно однозначно расшифровать результат после сцепления чисел
Обратим внимание, что при делении целых значений в c# остаток отбрасывается, этот факт нам пригодиться
Далее по решению буду считать что нумерация колонок начинается с 0
Итак, наш выход это число вида AB = 10 * A + B, где A - строка и B - колонка таблицы
Далее из нашего символа вычтем начало алфавита (большое а для кода в вашем решении)
Так как в нашей таблице определенное число колонок, а элементы расположены друг за другом в виде:
0 1 2 3 4
Не сложно заметить что номер нашей колонки равен остатку от деления на количество колонок:5 6 7 8 9
...
0 1 2 3 4
Отлично, мы знаем как получить B теперь давайте посмотрим на строки0 1 2 3 4
...
Каждая строка начинается с числа кратного числу колонок, из чего не трудно заметить что мы можем разделить наш символ на длину строки чтобы получить строку то есть А
Теперь вспоминаем что мы начинали с нуля, поэтому к A и B теперь нужно добавить по 1 чтобы не нарушалась оригинальная индексация
В результате получим:
A = (символ - начало алфавита) / длина строки + 1
B = (символ - начало алфавита) % длина строки + 1
Обратную формулу оставлю на вас
Далее скажу по поводу метода считывания текста, несмотря на то что сама идея мне не совсем понятна, попробую дате рекомендации:
Не стоит разделять текст на слова, воспользуйтесь методом streamReader.ReadToEnd() чтобы получить весь текст.
Используйте цикл того чтобы пройти по всем символам, вы можете использовать break при встрече * чтобы не перебирать текст дальше
Для того чтобы определять какие символы вам не нужно шифровать вы можете использовать реализованную в С# коллекцию HashSet<T>. Ссылочка:
https://learn.microsoft.com/ru-ru/dotnet/api/system.collections.generic.hashset-1?view=net-7.0
Я также заметил что в комментариях прозвучала проблема о размере таблицы. Сразу скажу что идея использования большой таблицы в методе шифрования времен древней Греции бесполезна. Изначально метод предназначен для шифрования ограниченного числа последовательно идущих символов переиначивать используя словари бесполезно.
Далее касательно капслока. У объекта строки есть специальный метод ToUpper() который переводит все символы строки в верхний регистр. Ссылочка:
https://learn.microsoft.com/ru-ru/dotnet/api/system.string.toupper?view=net-7.0#system-string-toupper
Java: избавляется от множественного наследования и добавляет интерфейсы для того чтобы избавить разработчиков от проблемы множественного наследования (не знаю где как, а в плюсах эта проблема актуальна)
Инфоцыгане 2023: Множественное наследование топ. Интерфейсы фу.
Конечно, с учётом того, какие теги стоят, можно простить некоторые огрехи, но обижать сильные фичи, по типу интерфейсов которые дают отличные возможности по созданию красивых абстракций и избавляют сообщество от неимоверно неприятных структур наследования, явно не стоит.
Не хочу обижать автора, но большинство критики в комментах оправдано, и вам бы стоило подредактировать статью чтобы не вводить в заблуждение. Возможно и оценки статьи поднимутся.