Всем привет! Я сейчас занимаюсь новым проектом онлайновой РПГ игры, и есть необходимость рисовать карты игровых полей. Может кому интересно или хочет помочь нашему проекту:
http://www.rada.gov.ua/laws/pravo/mover/rpg/
Задание заключается в следующем. Надо написать редактор уровней. На вход — картинка (цветная или чернобелая) .bmp или байтовая матрица, на выход цветная картинка и байтовая матрица.
Алгоритм:
Надо "раскрасить" черно-белую картинку, где 0 (черный цвет) — обозначает воду, 1 (белый) — обозначает сушу.
Надо пройтись по всем клеткам и проставить там где суша соединяется с водой — песок (2) на расстоянии неболее 1 клетки. землю (3) — для клеток 2-3 от воды, и траву (4) — для оставшихся клеток внутрь острова. Если это полуостров — то клетки примыкающие к границе "раскрашивать", так если бы остров еще продолжался. Ну а на воде тоже самое, только заменяешь (2) на (5) — неглубокая вода, (3) на (6) — обычная вода и (4) на (7) — глубокая вода... Приблизительно понятно? =)
Сейчас намалюю...
Было так:
001111111111110000
000011101111111100
000111000111111110
001111000011111100
000011110001110000
001000011111110000
011100000000000000
001000000000000000
Стало приблизительно так:
1) "Раскрашиваем"сушу
002222222334332000
000023202233332200
000222000223333220
002232000022322200
000222220002320000
002000022222220000
022200000000000000
002000000000000000
2) "Раскрашиваем"воду
651111111111111556
655511151111111155
655111555111111115
651111555511111155
655511115551115556
551555511111115666
511156555555555666
551556666666666667
3) Соединяем картинки:
652222222334332556
655523252233332255
655222555223333225
652232555522322255
655222225552325556
552555522222225666
522256555555555666
552556666666666667
без разноцветных картинок трудно представить, но можно! =)
Заранее спасибо, исходники присылайте мне почтой или говорите ссылку — выкачаю...
Здравствуйте, Mover, Вы писали:
[]
Сабж.
Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, Mover, Вы писали:
F>Сабж.
Не хочешь — не помогай! Дело добровольное... =)
Кстати, это было мое задание на районной олимпиаде по программированию, где я выиграл. исходники на бейсике, жаль утеряны. =((( Столько воды утекло с 1992 года. =)
Здравствуйте, Mover, Вы писали:
Ничего интересного. Примитивный алгоритм:
1. Обходим все клетки.
2. Для каждой клетки: если это — вода, то 3. Иначе, 6.
3. Есть ли суша в соседней клетке? (проверяем 8 клеток).
4. Если есть — то это мелкая вода. Иначе-проверяем, есть ли суша на расстоянии 2-3 клетки.
5. Если есть — то это обычная вода. Иначе-глубокая.
6. Есть ли вода в соседней клетке?
7. Если есть — то это песок. Иначе-проверяем, есть ли вода на расстоянии 2-3 клетки.
8. Если есть — то это земля. Иначе-трава.
Вот матрица для проверки наличия на шагах 3 и 6:
..........
..[][][]..
..[]XX[]..
..[][][]..
..........
Двумя иксами представлена текущая клетка
А вот — примерная матриуа для проверки наличия на шагах 4 и 7:
....[][][]....
..[][][][][]..
[][]......[][]
[][]..XX..[][]
[][]......[][]
..[][][][][]..
....[][][]....
(подправить по желанию).
... << RSDN@Home 1.0 beta 6a >>
Ура! Свершилось... =) Нашлись добрые люди в лице Бориса Новгородова.
Прислали мне код на Делфи, который я оформил и разместил там же на сайте,
со скриншотами.. милости просим:
http://www.rada.gov.ua/laws/pravo/mover/rpg/
Здравствуйте, Mover, Вы писали:
M>Кстати, это было мое задание на районной олимпиаде по программированию, где я выиграл. исходники на бейсике, жаль утеряны. =((( Столько воды утекло с 1992 года. =)
Вот только не надо пальци веером.

... << RSDN@Home 1.0 beta 5 >>
Здравствуйте, Mover, Вы писали:
M>http://www.rada.gov.ua/laws/pravo/mover/rpg/
Так вот чем программисты в Верховной Раде Украины занимаются...