Page 1 sur 1

Tablice?

Publié : sam. août 13, 2016 12:39 am
par elMorvano
Hej, czy w tym Sailu można używac tablicy w taki sposób:
Tablica[1]='ciastko';
Tablica[2]='niedobre';

zauważyłem, że ten standardowy sposób nie działa, a w poradnikach znalazłem tylko możliwość deklaracji tablic w taki sposób:
Tablica = ['ciastko', 'niedobre'];

Czyli jak chce dodać trzeci indeks to muszę to zrobić w taki sposób:
Tablica = ['ciastko', 'niedobre', 'wartosc'];

??

Mam nadzieję, że do 6 rano ktoś mi odpisze :))

Re: Tablice?

Publié : sam. août 13, 2016 12:45 am
par Serpent
Tablica = Tablica ^ Wartosc;

PS: Pisałem o tym tutaj:
https://forum.original-war.net/viewtopi ... =18&t=4326

Re: Tablice?

Publié : sam. août 13, 2016 4:46 pm
par Morvan
Działa ;)

Kolejne moje pytanie dot. tablic. Funkcje z delphi/ pascala dot. obliczania dlugosci tablic nie działają, czyli: sizeof(array) lub length(array).

Jest inny sposób na policzenie długości tablicy w Sailu? :arhello:

Re: Tablice?

Publié : sam. août 13, 2016 5:58 pm
par MasterKiller
Nazwa tablicy to jednocześnie jej długość, np.

Code : Tout sélectionner

tablica = [4,4,4,4,4,4,4];
dl_tabl := tablica;
@EDIT:
hmm, a jednak nie. powyższy kod przepisuje po prostu tablice.
Jednak, jeśli np. chcesz sprawdzić czy dana tablica jest wieksza od pewnej ilości to wystarczy porównanie tablica>wartość. Najczesciej sie tego uzywa w filtrach, które zwracaja tablice.

Code : Tout sélectionner

tablica = FilterAllUnits([[f_side, 3], [f_type, unit_building]]);
if tablica >= 2 then
...
kod wykona się jak będziemy mieli więcej niż 2 budynki.
Jeśli używamy tablic w matematycznych działaniach, tak jak tu:
[1, 3] * [9, 3, 7] + [11]
to wartością tablicy jest jej rozmiar; ile wartości zawiera.
za OW support. I jak ja napisałem te 10 misji swojego moda xD?
Jakbyś potrzebował jednak koniecznie gdzieś tej długości, możesz zrobić tak:

Code : Tout sélectionner

function T_Length(tab);
var i;
begin
      Result := 0;
      for i in tab do
             Result := Result +1;
end;

Re: Tablice?

Publié : dim. août 14, 2016 11:25 am
par Morvan
A widzisz, nie wiedziałem, że for ma taką opcję przy tablicach :) To rozwiązanie już mi odpowiada.

Tablice asocjacyjne i dwuwymiarowe to już w Sailu jest marzeniem, co nie?

Re: Tablice?

Publié : dim. août 14, 2016 11:41 am
par Serpent
Można spokojnie tworzyć dwu, a nawet trójwymiarowe tablice. Większych nie sprawdzałem.