Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 06.06.2021
Сообщений: 17

Уменьшить/оптимизировать код

14.08.2021, 20:30. Показов 1421. Ответов 4

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
private string GetUnicodeOfPiece(ChessPieceType type, int team)
    {
        string unicode;
 
        switch (type)
        {
            case ChessPieceType.None:
                unicode = "";
                break;
            case ChessPieceType.Pawn:
                unicode = "";
                break;
            case ChessPieceType.Rook:
                if(team == 0)
                   unicode = "\u265C";
                else
                    unicode = "\u2656";
                break;
            case ChessPieceType.Knight:
                if (team == 0)
                    unicode = "\u265E";
                else
                    unicode = "\u2658";
                break;
            case ChessPieceType.Bishop:
                if (team == 0)
                    unicode = "\u265D";
                else
                    unicode = "\u2657";
                break;
            case ChessPieceType.Queen:
                if (team == 0)
                    unicode = "\u265B";
                else
                    unicode = "\u2655";
                break;
            case ChessPieceType.King:
                if (team == 0)
                    unicode = "\u265A";
                else
                    unicode = "\u2654";
                break;
            default:
                unicode = "";
                break;
        }
        return unicode;
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.08.2021, 20:30
Ответы с готовыми решениями:

Оптимизировать код
Приветствую Всех Посмотрите, пжта, кусок код. Очень медленно работает. Много поток, вообще идти не хочет bool flagCikl =...

Оптимизировать код
Господа, я являюсь новичком. Написал небольшую прожку для тренировки, но уверен что опытный программист назовет реализацию говнокодом. ...

Оптимизировать код
Всем привет! Как вы считаете, как можно было бы оптимизировать этот кусок private int...

4
4 / 4 / 0
Регистрация: 15.09.2019
Сообщений: 96
14.08.2021, 22:02
C#
1
2
3
4
5
6
7
8
private static string GetUnicodeOfPiece(ChessPieceType type, int team) => type switch {
    ChessPieceType.Rook => team == 0? unicode = "\u265C" : unicode = "\u2656",
    ChessPieceType.Knight => team == 0?  unicode = "\u265E" : unicode = "\u2658",
    ChessPieceType.Bishop => team == 0?  unicode = "\u265D" :  unicode = "\u2657",
    ChessPieceType.Queen => team == 0?  unicode = "\u265B" : unicode = "\u2655",
    ChessPieceType.King => team == 0? unicode = "\u265A" : unicode = "\u2654";
    _ => ""
};
1
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
15.08.2021, 10:03
Уменьшение кода не всегда напрямую связано с его оптимизацией.
Так же оптимизация это может быть как ускорение выполнения кода, либо оптимизация с архитектурной точки зрения, например оптимизировать код так, чтобы было проще с ним работать и минимизировать возможные ошибки в дальнейшем.

Если у вас будет больше чем две команды, то можно создать для каждой свой словарь с юникодами, чтобы брать юникод сразу из нужного места.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// словарь для команды по-умолчанию
private readonly static Dictionary<ChessPieceType, string> _unicodeTeam_default = new Dictionary<ChessPieceType, string>
{
    {ChessPieceType.None, "" },
    {ChessPieceType.Pawn, "" },
    {ChessPieceType.Rook, "\u2656" },
    {ChessPieceType.Knight, "\u2658" },
    {ChessPieceType.Bishop, "\u2657" },
    {ChessPieceType.Queen, "\u2655" },
    {ChessPieceType.King, "\u2654" },
};
 
// словарь для команды номер 0
private readonly static Dictionary<ChessPieceType, string> _unicodeTeam_0 = new Dictionary<ChessPieceType, string>
{
    {ChessPieceType.None, "" },
    {ChessPieceType.Pawn, "" },
    {ChessPieceType.Rook, "\u265C" },
    {ChessPieceType.Knight, "\u265E" },
    {ChessPieceType.Bishop, "\u265D" },
    {ChessPieceType.Queen, "\u265B" },
    {ChessPieceType.King, "\u265A" },
};
 
 
// получаем значение юникода конкретной команды
private static string GetUnicodeOfPiece(ChessPieceType type, int team)
{
    string result = default;
 
    switch (team)
    {
        // попытка взятия юникода для указанной команды 0
        case 0: _unicodeTeam_0.TryGetValue(type, out result); break;
    }
 
    // если такой команды нет, или юникод не определён, то возвращаем значение юникода по умолчанию,
    // либо удачный результат, который получился выше.
    return result == default ? _unicodeTeam_default[type] : result;
}
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18299 / 14223 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
15.08.2021, 20:54
Цитата Сообщение от samana Посмотреть сообщение
можно создать для каждой свой словарь с юникодами,
Проще обычный массив. При условии что в enum значения идут по порядку как обычно.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
static readonly string[,] _pieces = new[,]
{
    // Белые
    {"", "", "\u2656", "\u2658", "\u2657", "\u2655", "\u2654"}
    // Черные
    {"", "", "\u265C", "\u265E", "\u265D", "\u265B", "\u265A"}
}
 
// получаем значение юникода конкретной команды
private static string GetUnicodeOfPiece(ChessPieceType type, int team)
{
    return _pieces[team, (int)type];
}
Цитата Сообщение от samana Посмотреть сообщение
Если у вас будет больше чем две команды,
Для шахмат это редкость.
5
0 / 0 / 0
Регистрация: 06.06.2021
Сообщений: 17
16.08.2021, 22:39  [ТС]
спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.08.2021, 22:39
Помогаю со студенческими работами здесь

Оптимизировать код
Добрый день, форумчане! roundButton1.Enabled = false; roundButton1.BackColor = Color.LightGray; roundButton1.BackColor2 =...

Оптимизировать код
Вывести представление целого числа NN в виде произведения простых чисел. 1.Почему работает при 2147483646 и не работает при 2147483647 ?...

Оптимизировать код
Как оптимизировать код? Задача: Задано трехзначное число. Какая цифра в нем больше: первая или последняя? using System; ...

Оптимизировать код
Написал программу, которая считывает данные из файла(вещественные числа), записывает данные в массив, находит минимальное, среднее и...

Оптимизировать код
Препод сказал оптимизировать код, а что изменить вообще не знаю public class Test { public double a; public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru