|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.12.2013, 20:33 | #1 |
Регистрация: 01.12.2013
Сообщений: 5
|
Общая идея написания конкретной программы на Windows Forms
Здравствуйте! Я написала программу для генерации лабиринтов по алгоритму Эллера. Но написала я ее для консоли. И теперь, пользуясь этим кодом, мне нужно написать эту же программу для Windows Forms.
Была бы очень благодарна, если бы кто-нибудь подсказал идею того, какие именно объекты стоило бы использовать: что вместо вертикальной черты и подчеркивания, как изобразить пробел и т.д. Вот сам алгоритм Эллера( вместо множеств я использовала элементы массива): 1.Создайте первую строку. Ни одна ячейка не будет являться частью ни одного множества. 2.Присвойте ячейкам, не входящим в множество, свое уникальное множество. 3.Создайте правые границы, двигаясь слева направо: Случайно решите добавлять границу или нет 3.1. Если текущая ячейка и ячейка справа принадлежат одному множеству, то создайте границу между ними (для предотвращения зацикливаний) 3.2. Если вы решили не добавлять границу, то объедините два множества в которых находится текущая ячейка и ячейка справа. 4.Создайте границы снизу, двигаясь слева направо: Случайно решите добавлять границу или нет. Убедитесь что каждое множество имеет хотя бы одну ячейку без нижней границы (для предотвращения изолирования областей) 4.1. Если ячейка в своем множестве одна, то не создавайте границу снизу 4.2. Если ячейка одна в своем множестве без нижней границы, то не создавайте нижнюю границу 5.Решите, будете ли вы дальше добавлять строки или хотите закончить лабиринт 5.1. Если вы хотите добавить еще одну строку, то: 1.Выведите текущую строку 2.Удалите все правые границы 3.Удалите ячейки с нижней границей из их множества 4.Удалите все нижние границы 5.Продолжайте с шага 2 5.2. Если вы решите закончить лабиринт, то: 1.Добавьте нижнюю границу к каждой ячейке 2.Двигаясь слева направо: Если текущая ячейка и ячейка справа члены разных множеств, то: 1.Удалите правую границу 2.Объедините множества текущей ячейки и ячейки справа Выведите завершающую строку |
01.12.2013, 22:07 | #2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
В винформс можно использовать TextBox со свойством Multiline = true и выводить ровно тот же текст из пробелов подчёркиваний и вертикальных чёрточек, что и в консоли. Только желательно шрифт в свойствах поставить моноширный.
Также можно выводить буквы или даже просто чёрточки на Graphics любого контрола, это посложнее, но и выглядеть будет получше. Ну и конечно, стоит приложить проект (Ваш консольный, прикрепите архивом), чтобы люди лучше могли сориентироваться, как помочь выполнить Вашу задачу. |
01.12.2013, 22:42 | #3 |
Регистрация: 01.12.2013
Сообщений: 5
|
Идеи хорошие. Спасибо за подсказку!
Не стала выкладывать свой проект, так как он немного не доработан ( не расписано условие редактирования последней строки + при выводе на консоль лабиринт имеет неправильную форму - строки сдвигаются по причине того, что в каждой из них кол-во вертикальных границ разное). Но вы правы, для общего представления, наверное, стоит его приложить. |
01.12.2013, 22:46 | #4 |
Регистрация: 01.12.2013
Сообщений: 5
|
Ой. Нет, это вообще черновой вариант. Сейчас загружу более приличный
|
01.12.2013, 22:54 | #5 |
Регистрация: 01.12.2013
Сообщений: 5
|
Консольный проект
|
03.12.2013, 11:26 | #6 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Извиняюсь, до этого не было особо времени.
Вот набросал форму для энтого дела, как расписал. В сам алгоритм генерации не лазил, тем более что там сложно что-то понять. Просто подключил проект к форме, развёл там консольный ввод-вывод и работу с данными, чтобы и форма могла использовать. |
23.12.2013, 19:17 | #7 |
Регистрация: 01.12.2013
Сообщений: 5
|
Спасибо Вам огромное! Вы очень выручили! Правда, очень признательна.
P.S. Извините за столь долгий ответ |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Общая инфа по Windows формам | interxor | Visual C++ | 3 | 25.03.2011 08:16 |
Запуск конкретной программы из кода и передача файла в нее | almostdj | Общие вопросы .NET | 0 | 07.12.2010 17:37 |
Есть общая структура программы,как написать функции к ней? | Aleksandr_Yanov | Общие вопросы C/C++ | 0 | 13.06.2010 16:53 |
Есть общая структура программы,как написать функции к ней? | Aleksandr_Yanov | Общие вопросы C/C++ | 0 | 13.06.2010 16:53 |
Общая переменная для нескольких экземпляров программы. | Fabio | Общие вопросы Delphi | 9 | 24.02.2009 09:25 |