Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
b := tablica[a];
b := tablica[a shr 1]
type map_type = (
empty,
wall_brick,
wall_tree,
wall_rock,
wall_water,
wall_fire,
item_first,
item_abcd,
item_efgh,
item_last,
...
person_first,
...
person_last,
);
char = GetMapChar(x,y)
if (char>=item_first and char<=item_last)
process_item(char - item_first); // 0 for the first one
if (char>=person_first and char<=person_last)
process_person(char - person_first); // 0 for the first person
process_person(byte index)
begin
print(person_name[index]);
end
if a=5 then b:=8;
if a=12 then b:=3;
if a=255 then b:=78;
if a=100 then b:=152;
case a of
5: b:=8;
12: b:=3;
255: b:=78;
100: b:=152;
end;
if a=9 then b:=2;
if a=8 then b:=1;
if a=185 then b:=4;
if a=33 then b:=3;
if a=212 then b:=6;
if a=211 then b:=5;
case a of
9: b:=2;
8: b:=1;
185: b:=4;
33: b:=3;
212: b:=6;
211: b:=5;
end;
ilmenit:
Zaproponowane wyszukiwanie binarne wymaga posortowanej tablicy, więc jeżeli zmieniasz pozycję obiektów, to musiałbyś dokonywać po ruchu sortowania tablicy, więc cały zysk przeszukiwania binarnego "bierze w łeb", szczególnie gdy wiele obiektów na planszy zmienia pozycję. Jeżeli obiektów masz tylko 20 (...)Mq:
Moje pytanie dotyczyło sytuacji trochę odmiennej. W moim przypadku jest to np. punkt przejścia do innej mapy. Takich punktów jest bardzo dużo, a każdy z nich stanowi ten sam znak o określonym kodzie. I tu jest mi potrzebne owo przyporządkowanie które przejście prowadzi od którego innego przejścia (innej mapy). Mam stablicowane adresy wszystkich przejść i teraz jak postać stoi na znaku przejścia, to po wciśnięciu fire dostaję adres tego znaku jeśli stoi na znaku będącym przejściem. Z tego adresu muszę ifami sprawdzić np. czy adres jest 123 i jeżeli tak, to idziemy do świata nr 7. (...)find: ldx #tablen
nxt: cmp tabin,x
beq found
dex
bne nxt
found: lda tabout,x
rts
function find (byte a): byte
var i: byte;
begin
i=MAXLENGTH-1; { dlugosc tablicy asocjacyjnej}
while (i) do
begin
if (tabin[i]=a) then break;
dec(i);
end;
result=tabout[i];
return;
Od 1 do 31 z 31