Дата | Видеоурок | Результат | |
---|---|---|---|
Коллекция графов ФИНАЛЬНЫЙ УРОК | + 6 | ||
По шагам разобрался в алгоритме Граф поиск в ширь на основе очереди поиск в глубь на основе стека далее пройдусь по Asynk Away + Task а там посмотрим |
|||
Коллекция графов Глубокий алгоритм | + 8 | ||
Создали новый класс с новым методом поиска в глубину - 2 -3 - 4 насладился |
|||
Коллекция графов Глубокий поиск | + 9 | ||
в общем я в принципе сам и сделал уже метод Особо строго не судите: // Поиск в глубину запускаем рекурсию public Queue<int> SearchPachDepth() { // останавливается !!!? graf.SetColorAll(Graf.EnumColor.White); if (stackPassed.Count != 0) { stackPassed.Clear(); } // если элемент _StartInt Белый значит делаем его Красный цвет или пропускаем AddRedtoStack(0); // Рекурсия return SearchPachDepth(0); } // Поиск в глубину public Queue<int> SearchPachDepth(int _StartInt) { // если элемент _StartInt Красный делаем его Черным и удаляем и возвращаем _StartInt = RemoveBlackFromStack(_StartInt); // Собственная очередь прохода по вершинам queuePassed.Enqueue(_StartInt); foreach (int NestedVertex in graf.TempEdge.ReturnAllEdgeL(_StartInt)) { AddRedtoStack(NestedVertex); } if (stackPassed.Count == 0) { // Выход из рекурсии } else { // Запускаем рекурсию SearchPachDepth(stackPassed.Peek()); } if (queuePassed != null) { return queuePassed; } else { return null; } } void AddRedtoStack(int _int) { if (graf.GetColorVertex(_int).Equals(Graf.EnumColor.White)) { // окрашиваем в Red graf.SetColor(_int, Graf.EnumColor.Red); // добавляем в стэк stackPassed.Push(_int); } } int RemoveBlackFromStack(int _int) { if (graf.GetColorVertex(_int).Equals(Graf.EnumColor.Red)) { // Окрашиваем в черный graf.SetColor(_int, Graf.EnumColor.Black); //Удаляем элемент из стека _int = stackPassed.Pop(); } // Возвращаем элемент return _int; } |
|||
Коллекция графов Визуализация процесса | + 5 | ||
Делегат, MarkLabel, sleep, кайфанул |
|||
Коллекция графов Широкий пошаговый ход | + 8 | ||
По поводу исправления ошибки суть понял. Но у меня Visio 2019. Короче в ней это проблема решается путем следующим: // Если Назначаемый цвет 'Key' нашего списка, равен назначаемому цвету, то пропускаем if(!ListVertex[_int].Equals(_color)) { ListVertex[_int] = _color; } По сути у меня идея как все разложить по шагам: в виде таблицы и в последствии в виде графа с сменой цветов вершин и ребер. Попробую там посмотрим. |
|||
Коллекция графов Широкий алгоритм | + 6 | ||
Насколько я понял нельзя назначить item.key тот цвет который в нем уже существует! По крайней мере у меня все сложилось!!! // Задаем цвет public void SetColor(int _int, Color _color) { // Проверяем существует искомый ключь в списке if (!ListVertex.ContainsKey(_int)) { return; } // Если Назначаемый цвет 'Key' нашего списка, равен назначаемому цвету, то пропускаем if(!ListVertex[_int].Equals(_color)) { ListVertex[_int] = _color; } } |
|||
Коллекция графов Широкий поиск | + 7 | ||
проработка алгоритма путем создания очереди из вершин. |
|||
Коллекция графов Шахматная доска | + 7 | ||
в каждой кнопке добавил методы: // Очищаем список Label listLabel.Clear(); // Очищаем Панель panel1.Controls.Clear(); // очищаем Графику g.Clear(Color.Silver); Сама шахматная матрица, я до сих пор не понимаю как она работает. Но это математика! |
|||
Коллекция графов Отображение | + 6 | ||
Создали функцию отображение координат вершин + создали функцию отображения линий из этих координат в координаты смежных вершин |
|||
Коллекция графов Инициация | + 4 | ||
создали функцию: control Label. Которая берет вершину, а также по координатам x, y. задает (графический объект) местонахождение в окне WinForm - вершины. Я путем перебора списка вершин и рандомно назначел координаты вышло изображение Graf. Теперь догадываюсь если создать control который зная координаты вершин будет перебирать. список вершин и на основании имеющегося списка смежными вершинами и чертить к ним линии. |
|||
Коллекция графов Рёбра | + 8 | ||
Создали ребро Создали ребра по принципу (вершина - > смежное ребро) организовали перебор на основании определенной вершины предоставить все смежные вершины |
|||
Коллекция графов Вершины | + 8 | ||
Создаем класс Edge, в этом классе создаем поле = int from, int To. Можно еще добавить поле Int weight( вес ). В дальнейшем можно создавать методы с сравнением по весу ребер. Я уже на основе графов делал проект точнее по факту копировал и изучал. Примерно там так и было. |
|||
Коллекция графов Граф | + 10 | ||
1) Для начало я создал класс Vertex. 2) Создал класс Algoritm где создал список всех вершин - public List<Vertex> ListVertex { get; set; } 3) В классе Vertex создал список Смежных вершин - public List<Vertex> NestedVertex { get; set; } алгоритм добавления: a) Создаю вершину и записываю ее в список ListVertex б) беру определенную вершину и заношу в нее список NestedVertex все смежные вершины |
|||
Коллекция графов BitArray | + 6 | ||
работать с коллекцией BitArray. .Not(); // обращает все элементы: если False => True и наоборот .SetAll(true); // Обращает все элементы в конкретное значение newBit1.And(newBit2); // операция переназначения всех элементов в соответствии предоставленного масива |
|||
Коллекция графов Hashtable | + 9 | ||
Создавали коллекцию. ListDictionary, HashTable, HybridDictionary Проверил скорость работы создания и перебора этих коллекций. Итог: HashTable > HybridDictionary (возможно спорно!) > ListDictionary (в разы медленнее создает и перебирает) |
|||
Коллекция графов ListDictionary | + 5 | ||
Создание коллекции Dictionary, Коллекция содержит два значения Key - Value. если нужно проверить содержит ли коллекция элемент по ключу. NewDictionary.Contains("key"); |
|||
Коллекция графов Array vs List | + 5 | ||
масив > List > ArrayList |
|||
Коллекция графов
List |
+ 6 | ||
Создавать коллекцию List. В данной коллекции реализован интерфейс IEnumerable что значит я могу задействовать такой цикл как foreach(), while(). Есть реализованный интерфейс IList который в свою очередь дает такие стандартные функции как Add - добавить элемент, Clear - очистить список, функция bool Contains - есть ли данный элемент в коллекции, Insert вставка, remove удаление элемента. IndexOf - возвращает индекс объекта |
|||
Коллекция графов ArrayList | + 9 | ||
Создавать коллекцию ArrayList, это тип коллекции в которого добавляется объекты, размер [n] n=само расширяемый (то есть не нужно о нем беспокоиться как а массиве заранее устанавливая размер массива). |
|||
Демо софт Вступительное слово | + 12 | ||
Программа со скриншота код взят с интернета, незначительно мной модифицированна. |
|||
Демо игры C# чего начать программировать | + 9 | ||
WPF MVVM |
|||
Демо игры Картинка с секретом | |||
|
|||
Игры со Спрайтами Спрайт. Первая форма | |||
|
|||
Графические циклы Подготовка графики | |||
|