IPB
ЛогинПароль:

> Острова
@^WARlock^@
сообщение 28.02.2007 12:06
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 96
Пол: Мужской
Реальное имя: John

Репутация: -  0  +


Народ помогите написать программу.


Острова (определить кол-во островов на озере).

Прога частично напоминает морской бой. Задается поле, на нем можно расставлять острова (один квадрат –ик один остров). После расставления островов, прога должна сосчитать их кол-во.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
T i m e
сообщение 1.03.2007 17:59
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской

Репутация: -  -1  +


Цитата
1) Допустим я сделал поле, как перемещаться по этому полю, и как выделить остров.

Используй чтение клавиши с помощью: key := readkey; В key в этом случае записывается прочитанная клавиша с клавиатуру. Пусть у тебя выделена какая то клетка в начале. Далее сделай так, чтобы по нажатии клавишей вверх, вниз, влево, вправо - твоя клетка передвигалась соответственно. Т.е. когда пользователь нажимает влево - выделение надо стереть и нарисовать снова на одну клетку левее. При передвижение запоминаются координаты выделенной клетки, чтобы по нажатию пользователем, к примеру, клавиши Enter мы смогли выйти на нужную клетку поля. Т.е. условие key = Enter как раз можно поставить на выход из нашего цикла.
P.S. Ну и конечно на передвижение нашей выделительной клетки надо поставить ограничения, чтобы она не выбегала за пределы поля smile.gif

Сообщение отредактировано: T i m e - 1.03.2007 18:00


--------------------
Time have not meaning. Mind - this is main...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 1.03.2007 20:16
Сообщение #3


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(T i m e @ 1.03.2007 17:59) *

Используй чтение клавиши с помощью: key := readkey; В key в этом случае записывается прочитанная клавиша с клавиатуру. Пусть у тебя выделена какая то клетка в начале. Далее сделай так, чтобы по нажатии клавишей вверх, вниз, влево, вправо - твоя клетка передвигалась соответственно. Т.е. когда пользователь нажимает влево - выделение надо стереть и нарисовать снова на одну клетку левее. При передвижение запоминаются координаты выделенной клетки, чтобы по нажатию пользователем, к примеру, клавиши Enter мы смогли выйти на нужную клетку поля. Т.е. условие key = Enter как раз можно поставить на выход из нашего цикла.
P.S. Ну и конечно на передвижение нашей выделительной клетки надо поставить ограничения, чтобы она не выбегала за пределы поля smile.gif


Исходный вопрос какой был? Сосчитать кол-во островов!
Или вы предлагаете пользователю при помощи стрелочек и ентера по одному выделить все острова, и чтобы в переменную-счётчик записывалось количество нажатий ентера? Не смешно.
И почему вы так реадкей любите? А давайте я стану всем советовать вешаться на $09 прерывание и смотреть в порт $60! Ведь это самый продвинутый способ чтения с клавиатуры! (у него есть плюсы - возможность фиксирования нажатия нескольких клавиш, и он видит и различает ЛЮБУЮ клавишу, включая правый и левый альт итд).

Для выделения острова можно:
1. Определить все клетки, относящиеся к острову (обходом в глубину или в ширину, например).
2. Все эти клетки обвести в квадратную рамочку, выводя ксором. Тогда общая граница двух соседних клеток, относящихся к острову, будет обведена 2 раза, то есть вообще как будто бы не обведена (свойство такое у ксора). По углам аналогично.
А для снятия выделения надо обвести все это клетки ещё раз.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
T i m e
сообщение 1.03.2007 20:44
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской

Репутация: -  -1  +


Цитата
Исходный вопрос какой был? Сосчитать кол-во островов!
Или вы предлагаете пользователю при помощи стрелочек и ентера по одному выделить все острова, и чтобы в переменную-счётчик записывалось количество нажатий ентера? Не смешно.

Я отвечал не на исходный вопрос, а на тот который и указал в цитате выше по поводу перемещения по полю.
Цитата
И почему вы так реадкей любите? А давайте я стану всем советовать вешаться на $09 прерывание и смотреть в порт $60! Ведь это самый продвинутый способ чтения с клавиатуры!

Ты думаешь ему нужен самый продвинутый метод... Я сомневаюсь... Помоему readkey - эелементарный для освоения. yes2.gif
P.S. Исходный вопрос почему то ушёл на второстепенный... А как ответить на тот вопрос который задан не конкретно я не знаю. Я кстати уже просил его типа уточнить, но на это пришёл второстепенный вопрос... nea.gif

Сообщение отредактировано: T i m e - 1.03.2007 20:47


--------------------
Time have not meaning. Mind - this is main...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
@^WARlock^@   Острова   28.02.2007 12:06
Lapp   Не совсем понятно, в чем проблема. Если одна клет...   28.02.2007 13:43
T i m e   Мне тоже не понятно... @^WARlock^@ поконкретней ...   28.02.2007 18:42
@^WARlock^@   Проблема в том. 1) Допустим я сделал поле, как п...   1.03.2007 10:31
Lapp   Проблема в том. 1) Допустим я сделал поле, как ...   1.03.2007 11:32
T i m e   Используй чтение клавиши с помощью: key := readke...   1.03.2007 17:59
TarasBer   Используй чтение клавиши с помощью: key := readke...   1.03.2007 20:16
T i m e   Я отвечал не на исходный вопрос, а на тот который...   1.03.2007 20:44
Lapp   TarasBer, а чем тебе так не понравился ReadKey? Че...   2.03.2007 5:50
TarasBer   TarasBer, а чем тебе так не понравился ReadKey? Ч...   3.03.2007 19:07
@^WARlock^@   Взял морской бой и убрал лишнее. Вот, что я име...   3.03.2007 7:26
volvo   2 Time: ты наказан? Вот и сиди в карцере! Еще ...   3.03.2007 15:24
@^WARlock^@   Вижу вы тут спор затеяли. Но всетаки:   4.03.2007 12:45
Lapp   Вижу вы тут спор затеяли.@^WARlock^@, спор, как ты...   6.03.2007 4:55
@^WARlock^@   Да просто подсчитать острова, их кол-во должно о...   6.03.2007 9:23
@^WARlock^@   Эот код действителен если остров состоит из одной ...   25.03.2007 12:40
Lapp   если мой остров состоит не из одной клетки, а бол...   25.03.2007 12:43
@^WARlock^@   Я его уже смотрел, но не смог реализовать.   25.03.2007 12:45
Lapp   Мне неясно - в чем именно трудность? Я сейчас тупо...   25.03.2007 13:46
@^WARlock^@   Проссмотрел выше указанный код, начиная с {реализа...   28.03.2007 4:30
Lapp   Из-за чего так получается? Насколько я смог по...   28.03.2007 6:13
@^WARlock^@   С подсчетом островов я разобрался. Как теперь с...   5.04.2007 11:29
@^WARlock^@   Так, как можно заполнять массив в графическом режи...   7.04.2007 13:03
Lapp   Молодец, прога, вроде, работает! :) как можно...   8.04.2007 5:25
@^WARlock^@   На какие и как? Просто располовинить? :blink: В...   9.04.2007 10:06
Lapp   На какие и как? Просто располовинить? ... Труба...   9.04.2007 12:38
@^WARlock^@   Вот понавтыкал пробелов, может лучше будет. А во...   12.04.2007 5:21
Lapp   как в графмческом режиме вывести числовую перемен...   12.04.2007 5:36
@^WARlock^@   В моей последней проге идет хоть какое-то заполнен...   13.04.2007 7:30
@^WARlock^@   Как и "все", я решил забить на подключен...   18.04.2007 13:17
@^WARlock^@   Народ, подскажите алгоритм выполнения подсчета ост...   22.04.2007 6:09
Lapp   Народ, подскажите алгоритм выполнения подсчета ос...   22.04.2007 11:47
@^WARlock^@   Точно, а я и не замечал(наверное потомучто больше...   22.04.2007 12:58
Lapp   Не подскажите, из-за чего так происходит? И, что ...   23.04.2007 10:35
Lapp   И, что надо изменить в процедуре SCHET, чтобы про...   24.04.2007 6:18
@^WARlock^@   Советы, по поводу того, что процдура SCHET не ко...   24.04.2007 5:39
Lapp   На какие вопросы я не отвечаю? Вот на этот: @^W...   24.04.2007 5:57
@^WARlock^@   Не понимаю почему я тупил столько времени. LAPP -...   27.04.2007 11:02
Lapp   Не понимаю почему я тупил столько времени. Бывает...   27.04.2007 11:43
@^WARlock^@   LAPP - говорил, что поможешь реализовать блок-схем...   2.05.2007 4:23
Lapp   LAPP - говорил, что поможешь реализовать блок-схе...   2.05.2007 5:01
@^WARlock^@   Последний рабочий вариант программы: Подскажи, п...   2.05.2007 6:39
Lapp   Подскажи, по какому принципу работает твоя прога(...   2.05.2007 6:42
Lapp   1. Обнуляем счетчик островов N. Ну, это понятно. ...   2.05.2007 8:02
@^WARlock^@   У меня вот, что получилось:   2.05.2007 10:00
Lapp   У меня вот, что получилось: Пока что сыровато, я...   2.05.2007 10:32
@^WARlock^@   Я в блок-схемах не силен. Может тогда предложишь ...   2.05.2007 11:40
Lapp   Я в блок-схемах не силен. Может тогда предложишь ...   3.05.2007 8:45
@^WARlock^@   Как я понял, это выход в твоей проге, а в моей эт...   3.05.2007 5:08
@^WARlock^@   Решил перед сдачей проги окончательно её протестир...   10.05.2007 7:08


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 14.07.2025 21:42
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"