Tablice?

Wszelkie pytania na temat SAIL'a i modowania OW.
Post Reply
elMorvano
Soldier level 0
Soldier level 0
Posts: 2
Joined: Sat Oct 13, 2012 1:47 pm

Tablice?

Post by 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 :))
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Tablice?

Post by Serpent »

Tablica = Tablica ^ Wartosc;

PS: Pisałem o tym tutaj:
https://forum.original-war.net/viewtopi ... =18&t=4326
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
Morvan
Soldier level 2
Soldier level 2
Posts: 32
Joined: Fri Aug 05, 2016 11:04 pm

Re: Tablice?

Post by 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:
MasterKiller
Soldier level 6
Soldier level 6
Posts: 343
Joined: Tue Aug 09, 2011 5:51 pm

Re: Tablice?

Post by MasterKiller »

Nazwa tablicy to jednocześnie jej długość, np.

Code: Select all

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: Select all

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: Select all

function T_Length(tab);
var i;
begin
      Result := 0;
      for i in tab do
             Result := Result +1;
end;
Wszyscy jesteśmy żołnierzami: WYDANE
https://original-war.net/files.php?id=174
Morvan
Soldier level 2
Soldier level 2
Posts: 32
Joined: Fri Aug 05, 2016 11:04 pm

Re: Tablice?

Post by 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?
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Tablice?

Post by Serpent »

Można spokojnie tworzyć dwu, a nawet trójwymiarowe tablice. Większych nie sprawdzałem.
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
Post Reply