0

Необходимо по C#-функции сделать блок-схему в Visio, чтобы она соответствовала ГОСТу (ГОСТ 19.701-90)

Вот код и сама блок-схема:

введите сюда описание изображения введите сюда описание изображения

На всякий случай вот код текстом:

void SetupBoard() //Заполнение массива значениями, чтобы получилась шахматная доска с квадратами
{
    CellColor currentColor = CellColor.White; //так как начинаем с левого верхнего края(А8), то клетка имеет белый цвет
for (int i = 0; i < 8; i++)
{
    for (int j = 0; j < 8; j++)
    {
        Cells.Add(new Cell() //Создаем клетку с нужными данными (цвет, вертикальное и горизонтальное значение)
        {
            File = files[j],
            Rank = (8 - i),
            Color = currentColor
        });
        currentColor = currentColor == CellColor.White ? CellColor.Black : CellColor.White; //меняем цвет
    }
            //в начале горизонтали меняем цвет,
            //так как горизонталь начинается с того же цвета, с которого заканчивается предыдущая
    currentColor = currentColor == CellColor.White ? CellColor.Black : CellColor.White; 
}

}

Немного пояснения к коду: Cells это ObservableCollection<Cell> Cells, files это char[] files = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H' };

Какие у меня сомнения по блок-схеме?

  1. Надо ли подробно описывать создание new Cell()... и если да, то как именно?
  2. Правильно ли у меня оформлен цикл в блок-схеме, а именно его название и условие для цикла?

Ну и в целом правильно ли (по ГОСТу) сделана блок-схема?

Pekor
  • 449
  • Просто ссылка в тему https://ru.stackoverflow.com/a/1255542/373567. Непонятно зачем вообще этот код, если буква и цифра вычисляется для каждой ячейки по ее индексу, с цветом кстати то же самое. То есть массив хранит реально лишние данные. Показанный метод вообще можно выкинуть из логики приложения, он не нужен, примерно совсем, как и указанные свойства класса ячейки, которые он заполняет. Про ГОСТы ничего не знаю, уж извиняйте. – aepot May 09 '22 at 21:08
  • https://pastebin.com/05u6fRF4 раз уж на то пошло, быть может код стоит оптимизировать слегка прежде чем схемы рисовать? – aepot May 09 '22 at 21:16
  • @aepot, что же, этот метод был написан одним из первых во всем проекте, тогда я только начал писать на WPF да и вообще не знал каким образом мне создать шахматную доску, сделал так, как придумал + подсмотрел кое-где (ах да, шахматная доска представляет из себя ListBox, если что, это тоже я увидел в другом проекте, поэтому решил реализовать у себя так же); времени переделывать нет, да и не вижу сейчас уже смысла, проект уже закончен и особо не планирую развивать его дальше, лучше набью сейчас шишек, зато потом уже буду делать правильно в следующих более сложных проектах, ИМХО. – Pekor May 09 '22 at 21:42
  • @aepot это кстати к слову о том, как эффективнее писать проект одному (https://ru.stackoverflow.com/q/1407452/483580); я новичок и по сути тыркаюсь пока в WPF, думаю как сделать то или иное, зачастую что-то не получается так, как планируешь (или просто не знаешь как лучше сделать) и поэтому что-то оставляешь как есть, про что-то и вовсе забываешь, поэтому, наверное, важно и нужно сначала создать какой-то план, но у меня родилась идея и я решил сразу же воплотить ее в жизнь после того, как изучил основы WPF. Что-то меня вообще не в ту сторону понесло... – Pekor May 09 '22 at 21:46
  • Да, я понимаю, что именно у вас происходит в проекте, поэтому и кинул пример того как подружить логику игры и интерфейс, то есть движок. Дело ваше, знакомиться или нет, ссылка на скачать проект там есть. Обучающий пример, не больше, не меньше. Что-либо переписывать я тоже не предлагаю. А метод этот всего-лишь указывает на то, что вы не знакомы с конвертерами типа IValueConverter, знакомьтесь. Не в этом проекте пригодится, так в другом. – aepot May 09 '22 at 23:03
  • @aepot и правда, не использовал до этого конвертеры, хотя пару раз могли бы пригодиться, но делал немного попроще без них, в любом случае чекну, спасибо. Кстати, мой проект не совсем шахматы, в нем нельзя в них играть :) Просто в одной из частей проекта необходимо выводить доску и взаимодействовать с ней при помощи кликов по ячейкам – Pekor May 09 '22 at 23:32
  • Это тоже в примере по ссылке есть, даже фигуры можно переставлять, правда без правил. – aepot May 09 '22 at 23:46

0 Answers0