Автор | Сообщение |
|
| хитрый латышский койот
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 21.01.06 20:16. Заголовок: Akurka
|
|
Профиль
Цитата
Ответить
|
Ответов - 434
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
All
[только новые]
|
|
|
| постоянный участник
|
Сообщение: 363
Зарегистрирован: 25.05.05
|
|
Отправлено: 15.04.08 12:35. Заголовок: dirold=0; направлени..
dirold=0; направление движения "откуда" не определено :расчет if svoystvo=3 then dir=rnd4; 1-north, 2-east, 3-south, 4-west if dir=dirold then goto расчет; назад нельзя if dir=1 then dx=5 if dir=2 then dx=1 if dir=3 then dx=-5 if dir=4 then dx=-1 newx=x+dx if newx<1 or newx>25 then goto расчет if dx=1 and (newx=6 or newx=11 or newx=16 or newx=21) then goto расчет if dx=-1 and (newx=5 or newx=10 or newx=15 or newx=20 or newx=25) then goto расчет; Проверка на выход за край "доски" dirold=dir x=newx pln x btn начало end Не проверял - пока не на чем. И расчитан алгоритм не универсальный - а под конкретно эту карту.
|
|
Профиль
Цитата
Ответить
|
|
| неизвестный человек
|
Сообщение: 124
Зарегистрирован: 08.06.07
|
|
Отправлено: 16.04.08 09:05. Заголовок: Korwin пишет: алгор..
Korwin пишет: цитата: | алгоритм не универсальный |
| А как сделать его универсальным? допустим пусть будет 100х100 клеток. (Главное прописать физ. свойства клеток). Плюс допустим ввести n-количество npc. Главное указать их координаты и направление движения
|
|
Профиль
Цитата
Ответить
|
|
| постоянный участник
|
Сообщение: 364
Зарегистрирован: 25.05.05
|
|
Отправлено: 16.04.08 09:45. Заголовок: Дружище, а можно вве..
Дружище, а можно ввести коодинату Y? Тогда меньше проверок будет на выходы за границы карты. И вычислять направление движения npc по отношению к главному герою будет проще гораздо! 0-99 по х 0-99 по у Если можно, то алгоритм будет куда красивее и проще... Ты вообще квест пишешь или это учебная задача по программированию?
|
|
Профиль
Цитата
Ответить
|
|
| неизвестный человек
|
Сообщение: 125
Зарегистрирован: 08.06.07
|
|
Отправлено: 16.04.08 10:22. Заголовок: пишу квест. можно ко..
пишу квест. можно конечно ввести и х и у если так проще. без проблем. спасибо за все!!!
|
|
Профиль
Цитата
Ответить
|
|
| неизвестный человек
|
Сообщение: 126
Зарегистрирован: 08.06.07
|
|
Отправлено: 18.04.08 11:56. Заголовок: вопрос все еще в сил..
вопрос все еще в силе...
|
|
Профиль
Цитата
Ответить
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 22.04.08 15:45. Заголовок: Да памагите иму ужо..
Да памагите иму ужо
|
|
Цитата
Ответить
|
|
| постоянный участник
|
Сообщение: 194
Зарегистрирован: 20.12.05
|
|
Отправлено: 26.04.08 22:09. Заголовок: Так а в чем вопрос? ..
Так а в чем вопрос? Корв же ответил. Как специалист по извращениям над уркой, могу добавить только, что этот не тот случай, когда к ним стоит прибегать%).
|
|
Профиль
Цитата
Ответить
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 04.05.08 02:11. Заголовок: Простите, если боян... В AkURQ1.28pre6 небольшой баг.
Если открывать квест через "Историю", то не работает оператор Play (может, еще какие, я не проверял). Может, баг и не опасный, но мне из-за него весь квест под music пришлось переписывать :'(
|
|
Цитата
Ответить
|
|
| неизвестный человек
|
Сообщение: 127
Зарегистрирован: 08.06.07
|
|
Отправлено: 07.05.08 11:02. Заголовок: Chicago1920 пишет: ..
Chicago1920 пишет: цитата: | А как сделать его универсальным? допустим пусть будет 100х100 клеток. (Главное прописать физ. свойства клеток). Плюс допустим ввести n-количество npc. Главное указать их координаты и направление движения |
| Вопрос в том как сделать код универсальным И еще.. Как в Акурке в html режиме на выведенную в окошко Акурки картинку повесить в центр экрана надпись. А то ндпись получается у меня под картинкой(((
|
|
Профиль
Цитата
Ответить
|
|
| постоянный участник
|
Сообщение: 370
Зарегистрирован: 25.05.05
|
|
Отправлено: 08.05.08 05:43. Заголовок: Chicago1920 пишет: ..
Chicago1920 пишет: цитата: | Вопрос в том как сделать код универсальным |
|
отвечу на праздниках, лады?
|
|
Профиль
Цитата
Ответить
|
|
| неизвестный человек
|
Сообщение: 131
Зарегистрирован: 08.06.07
|
|
Отправлено: 14.05.08 12:01. Заголовок: Korwin пишет: отвеч..
Korwin пишет: цитата: | отвечу на праздниках, лады? |
| С нетерпением буду ждать.
|
|
Профиль
Цитата
Ответить
|
|
|
| постоянный участник
|
Сообщение: 372
Зарегистрирован: 25.05.05
|
|
Отправлено: 14.05.08 15:01. Заголовок: :initmap clrscr=1 ix..
:initmap clrscr=1 ix=0 iy=0 sx=10 ;"ширина" поля-1 sy=10 ;"высота" поля-1 :loop0 ;Заполнение карты случайными значениями, мне неохота писать например 100х100=10000 клеток руками svoystvo#ix$_#iy$=rnd3; присвоили значение очередной клетке ix=ix+1 if ix<=sx then goto loop0 ix=0 iy=iy+1 if iy<=sy then goto loop0 ;Массив заполнен, инициализируем "героя" в случайное место. :loop1 x=rnd#sx+1$-1 y=rnd#sy+1$-1 if svoystvo#x$_#y$=1 then goto loop1; Если герой оказался "в стене", ищем другое место. dir=rnd4 ;стороны света: 1-север,2-восток,3-юг,4-запад pln Карта заполнена случайными значениями. btn algoritm,Начинаем поход? end :algoritm wall=0 if svoystvo#x$_#y$=2 then goto forwards; :vybor if svoystvo#x$_#y$=3 or svoystvo#x$_#y$=2 then dir=rnd4; 1-north, 2-east, 3-south, 4-west ;Выбор на перекрестке if wall=0 and dir=dirold then goto algoritm; если не уперся в стену, назад нельзя! :forwards if dir=1 then newy=y+1&newx=x if dir=2 then newx=x+1&newy=y if dir=3 then newy=y-1&newx=x if dir=4 then newx=x-1&newy=y ;расчет новых координат if newx<0 or newx>sx then wall=1&goto vybor; Если x вышел за границы поля, меняем направление движения if newy<0 or newy>sy then wall=1&goto vybor; Если y вышел за границы поля, меняем направление движения if svoystvo#newx$_#newy$=1 then wall=1&goto vybor; Если стена, выбираем направление, в том числе и обратно. dirold=dir x=newx y=newy ;-старый вывод пути ;if svoystvo#x$_#y$=2 then instr desc=дорога ;if svoystvo#x$_#y$=3 then instr desc=перекресток ;pln Координата х=#x$ у=#y$, #%desc$ :drawmap;рисуем карту - для наглядности CLS ix=0 iy=0 :loop2 if ix=x and iy=y then style_dos_textcolor=15 else style_dos_textcolor=7 p #svoystvo#ix$_#iy$$ ix=ix+1 if ix<=sx then goto loop2 ix=0 pln iy=iy+1 if iy<=sy then goto loop2 btn algoritm,Идем дальше? ;По причине того, что карта генерится тупо-случайно, легко может возникнуть попадание в тупик и зацикливание. :( Алгоритм неоптимален - кое-что можно безболезненно выбросить, кое-что упростить и т.п. но эту творческую работу я с радостью переложу на твои могучие плечи, дружище chicago1920!
|
|
Профиль
Цитата
Ответить
|
|
| постоянный участник
|
Сообщение: 139
Зарегистрирован: 17.03.08
|
|
Отправлено: 14.05.08 20:01. Заголовок: делал случайные хоро..
делал случайные хорошие лабиринты, в которых всегда есть выход если будет не слишком лень ( а я к тому же опять на работу устроился ), то выложу вопрос: как определить, делится ли число X на N нацело? каков остаток? - на досурке - на акурке пре1
|
|
Профиль
Цитата
Ответить
|
|
| постоянный участник
|
Сообщение: 378
Зарегистрирован: 25.05.05
|
|
Отправлено: 16.05.08 15:14. Заголовок: Лабиринт - это интер..
Лабиринт - это интересно. Выкладывай, qwerty! А насчет деления нацело: не знаю как в акурке, но в досурке был такой алгоритм. fp_prec – числовая переменная, которая содержит точность вычислений, число знаков после запятой в #$ и инвентаре. По умолчанию 2. :определитель pln Введите делимое: input X pln Введите делитель input N if N<>0 then goto proverka else pln На ноль делить нельзя!&goto определитель :proverka fp_prec=5 real=X/N fp_prec=0 int=#X/N$ fp_prec=5 if real>int then ost=real-int&pln #ost$ else ost=int-real&pln #ost$ IF OST<0 THEN OST=-OST ;функция abs (qst) fp_prec=0 IF OST=0 THEN PLN ЧИСЛО ДЕЛИТСЯ НАЦЕЛО else PLN число делится с остатком #ost*N$ btn определитель,Еще раз? btn ext,Выход end :ext end
|
|
Профиль
Цитата
Ответить
|
Ответов - 434
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
All
[только новые]
|
|