Robot Warfare lietuviškai..
 
Į pradžią.. Taisyklės.. Žaidėjai.. Pavyzdžiai.. Downloads..
Statistika.. TOP-10 Konferencijos.. EN WWW.. RU WWW..

-= Robots Warfare =-


1. ROBOT WARFARE 1 - ŽAIDIMAS E-PAŠTU

1.1 ĮVADAS
1.2 ŽAIDĖJAI
1.3 ELEKTRONINIAI ADRESAI, KONFERENCIJA
1.4 E-PAŠTO NAUDOJIMAS

2. ŽAIDIMO TAISYKLĖS

2.1 KAIP, KADA, KUR VYKSTA ŽAIDIMAS
2.2 KĄ GALI ŽAIDIMO NUGALĖTOJAS
2.3 REZULTATŲ SKAIČIAVIMAS IR LAIMĖTOJO PASKELBIMAS
2.4 ROBOTO TAPATYBĖS NUSTATYMAS
2.5 ROBOTO IŠTRYNIMAS

3. MŪŠIO TAISYKLĖS

3.1 MŪŠIO LAUKAS
3.2 ROBOTO ĮRANGA
3.3 JUDĖJIMAS IR ROBOTO KOORDITADĖS
3.4 ENERGIJA
3.5 SIENOS IR AKMENYS
3.6 GINKLŲ NAUDOJIMAS
3.7 AKIES NAUDOJIMAS
3.8 RADARO NAUDOJIMAS

4. "ROBOT WARFARE 1" (RW1) PROGRAMAVIMO KALBA

4.1 RW1-TEKSTAS IR RW0-PSEUDOKODAS
4.2 ROBOTO PAVYZDYS
4.3 RW1-PROGRAMAVIMO KALBA


    1. ROBOT WARFARE 1 - ŽAIDIMAS ELEKTRONINIU PAŠTU

    1.1 ĮVADAS


      ROBOT WARFARE 1 yra žaidimas, kurį gali žaisti visi. Jums tereikia perskaityti taisykles, aprašyti savo roboto elgesį specialia RW programavimo kalba ir savo programą išsiųsti e-paštu (rwar@shaos.ru). Nepamirškite SUBJECT laukelyje įrašyti RW1 ir savo Nick'ą.. (Pvz.: RW1:Jonas).

    1.2 ŽAIDĖJAI

       Žaidėjas yra roboto autorius. Jis naudoja savo nick'ą.. Jeigu jis nori atsiųsti savo naują robotą, jis turi parašyti savo nick'ą laiško subject'e (pvz.: RW1:JONAS), bet prieš tai jis turi tą savo nick'ą užregistruoti mūsų duomenų bazėje. Norint užsiregistruoti, reikia išsiųsti e-žinutę ir subject'e parašyti REG:NICKNAME (Pvz.: REG:JONAS). Šiame laiške žaidėjas taip pat gali nurodyti savo amžių, profesiją, lytį ir bet kokią kitą informaciją. Galit būti ramūs, niekas nesužinos šios asmeninės informacijos be jūsų leidimo, tačiau ši informacija mums padės išvengti nesusipratimų, jei kitas žaidėjas norės užsiregistruoti tokį patį Nick'ą.

    1.3 ELEKTRONINIAI ADRESAI, KONFERENCIJA

       Jei žaidėjas nesutinka, kad jo e-pašto adresas būtų paskelbtas viešai, jis būna žinomas tik mums. Jei jūs norite parašyti tokiam žaidėjui, pasinaudokite rwar@shaos.ru paslaugomis :) Siųskite žinutę adresu rwar@shaos.ru, o subject'e parašykite MAIL:ŽAIDĖJO, kuriam norite parašyti NICK'AS (pvz.: MAIL:JONAS). Laiškas tą žaidėją pasieks per 1 dieną.
       Jei norite užsisakyti RW konferenciją lietuvių kalba, nusiųskite tuščią laišką adresu rware-subscribe@yahoogroups.com. Jei nebenorite gauti laiškų, adresu rware-unsubscribe@yahoogroups.com

    1.4 E-PAŠTO NAUDOJIMAS

       Daug ką jūs galite parsisiųsti paprasčiausiai e-paštu. Tam jums reikia siųsti laiškus rwar@shaos.ru, o subject parašyti REQUEST:VIENAS IŠ ŠIŲ ŽODŽIŲ:
          1) RULES (Angliškos, rusiškos, lietuviškos taisyklės) (20K)
          2) RW1_COMP - RW1 kompiliatorius (25K)
          3) RW1_DUEL - kovų peržvalga (50K)
          4) RW1_SND - soundblaster palaikymas RW1_DUEL'iui (19K)
          5) RESULTS - visi rezultatai ir statistika (60-80K)
          6) ROBOT "robotovardas" - bet kuris robotas iš paskutinių kovų (0.1-4K) arba
              ROBOT SRC - visus robotus, kurie turi source'us..
              ROBOT A - robotai iš A kategorijos
              ROBOT B - robotai iš B kategorijos
Įrašykite vieną iš šių punktų ir jūs gausite tai, ko norit.. :)
Pvz.: REQUEST:RW1_COMP - ir po kelių sekundžių jūs gaunate RW1 kompiliatorių.


   2. ŽAIDIMO TAISYKLĖS

   2.1 KAIP, KADA, KUR VYKSTA ŽAIDIMAS

       Kovos kiekvieną savaitę vyksta mūsų serveryje. Rezultatai taip pat atnaujinami kas savaitę. Mūsų WWW jūs rasite rezultatus, statistikas visa kita.

   2.2 KĄ GALI ŽAIDIMO NUGALĖTOJAS

       Geriausio roboto autorius gali į mūsų WWW patalpinti savo nuotrauką (iki 16KB) ir trumpuką komentarą.

   2.3 REZULTATŲ SKAIČIAVIMAS IR LAIMĖTOJO PASKELBIMAS

       Visi robotai suskirstyti į kelias kategorijas. Pati aukščiausi yra A kategorija. Kiekvienoje kategorijoje yra po 16 robotų, išskyrus žemiausią kategoriją, kur gali būti nuo 5 iki 20 robotų. Kovos vyksta tarp dviejų tos pačios kategorijos robotų. Kiekviena kova trunka 10000 tik'ų. Robotas laimi, jei jis lieka gyvas ir užmuša priešą. Po kiekvienos kovos, laimėtojas gauna 1, o pralaimėtojas 0 taškų. Taip gaunami trys blogiausi ir trys geriausi kategorijos robotai.. Blogiausieji pereina į žemesnę kategoriją (jei robotas jau ir taip buvo žemiausioje kategorijoje, jis iškrenta), o geriausieji pereina į aukštesnę kategoriją (jei robotas ir taip buvo aukščiausioje kategorijoje, jis laikomas nugalėtoju).

   2.4 ROBOTO TAPATYBĖS NUSTATYMAS

       Jūs turite išsirinkti:
          Unikalų savo roboto vardą
          Roboto spalvą (RGB)
          Maža paveiksliuką (8x8 - 16 colors). Paveiksliukas nebūtinas.

   2.5 ROBOTO IŠTRYNIMAS

       Robotas gali būti ištrintas trimis atvejais:
          - roboto autorius ne pats pasidarė robotą, o jį nuplagijavo ir buvo sučiuptas.
          - robotas buvo žemiausioje kategorijoje ir surinko mažiausiai taškų.
          - žaidėjas pats norėjo ištrinti savo robotą. Šiuo atveju jis turi išsiųsti laišką rwar@shaos.ru su subject'u "DEL:ROBOTOVARDAS" (ROBOTOVARDAS, tai žaidėjo roboto vardas. Pvz.: DEL:BANZAI) Atkreipkite dėmesį į tai, kad laiškas turi būti išsiųstas iš to pačio e-pašto adreso, kuriuo žaidėjas užsiregistravo ir atsiuntė savo robotą. Be to, jei robotas yra A kategorijoje, jo ištrinti negalima!!!


   3. MŪŠIO TAISYKLĖS

   3.1 MŪŠIO LAUKAS

       Kova vyksta 10x20 lauke. Aplinkui yra sienos. Akmenys išmėtomi atsitiktinai (random). Robotas negali jų pervažiuoti, bet gali juos susprogdinti. Kovos lauke yra šie objektai:

0 - Nieko
1 - Duobė
2 - Akmuo
3 - Dėžė su amunicija
4 - Atominė elektrinė
5 - Skriejanti raketa
6 - Robotas
10- Siena

       Žaidimo pradžioje robotai atsiranda bet kurioje mūšio lauko vietoje. Kaip atrodo mūšio laukas nustatoma pagal realųjį skaičių iš intervalo nuo 0 iki 1.
       Robotas gali judėti į aplink jį esančias celes keturiomis kryptimis: į priekį, kairėn, dešinėn, atgal. Robotas, kuris įkrenta į duobę, laikomas nugalėtu. Robotas gali rinkti dėžes su raketomis. Kiekvienoje dėžėje yra po 10 raketų. Pačioje žaidimo pradžioje robotai turi tik po 5 raketas, bet jų galima prisirinkti, kiek nori.

   3.2 ROBOTO ĮRANGA

       Robotas turi keturias vietas (priekis, nugara ir šonai) įrengimams :) Kiekvienoje iš šių vietų gali būti ginklas, akis arba nieko. (Pvz.: robotas su trimis akimis ir vienu ginklu).

   3.3 JUDĖJIMAS IR ROBOTO KOORDITADĖS

       Robotas gali judėti tik tiesiomis linijomis sukiodamasis kairėn arba dešinėn. Robotas gali atsitrenkti į akmenis arba sienas. Dėl to jo energija nesumažėja (svarbiausia neįkristi į duobę! :)). Kiekvienas veiksmas trunka vieną laiko dalelytę (1 iš 10000).
       Roboto koordinatės reliatyvios. Robotas visada yra koordinačių pradžios taškas, t.y. jo koordinatės (0,0). Išilgai roboto eina ordinatė (Y), o skersai abscisė (X).

   3.4 ENERGIJA

       Žaidimo pradžioje abiejų robotų energija būna lygi 5. Aukščiausias energijos lygis gali būti 13. Jeigu į robotą pataiko raketa, jo energija sumažėja 1. Robotas gali užsikrauti energijos, priartėdamas prie atominės elektrinės. Jei robotas stovi prie atominės elektrinės, jo energijos lygis kas 5 laiko dalis padidėja 1'etu. Jeigu atsitinka taip, kad robotas atsiduria iš kart prie (tarp) dviejų elektrinių, jo energijos lygis kas 5 laiko dalis padidėja net 2.

   3.5 SIENOS IR AKMENYS

       Robotai negali kirsti mūšio lauką supančių sienų. Nieko neatsitinka ir tada, kai robotas šauna į sieną. Robotai negali pravažiuoti per akmenis, bet šiuos galima sunaikinti, šaunant 5 kartus.

   3.6 GINKLŲ NAUDOJIMAS

       Robotas gali šauti bet kuria kryptimi (žinoma, jei jis toje pusėje turi ginklą!). Raketos greitis yra 5 celės per 1 laiko dalį. Raketa skrenda tol, kol atsitrenkia į kokią nors kliūtį. Jeigu raketa pataiko į raketų dėžę, ši sprogsta ir viską sunaikina ją supančiame 3x3 celių plote. Jeigu šioje zonoje būna robotas, jo energijos lygis sumažėja 3. Tas pats atsitinka ir tada, kai raketa pataiko į atominę elektrinę, tik pavojingasis plotas yra 5x5, o šiame plote atsidūrusio roboto energija nukenčia net 5.

   3.7 AKIES NAUDOJIMAS

       Kad robotas galėtų matyti, jam reikalingos akys (akis). Kiekviena iš jų suteikia šią informaciją:

- objekto, kurį pamatė akis, tipas (siena, dėžė, priešas ir t.t.)
- atstumas iki to objekto (jeigu objektas yra jau kitoje celėje D=1)
- papildoma informacija:
-- kai matomas kitas robotas - jo energijos lygis (1..13)
-- kai matomas akmuo - jo "kietumas" (1..5)
-- kai matoma raketa - jos kryptis (1 - raketa juda link roboto, 0 - raketa juda tolyn)

   3.8 RADARO NAUDOJIMAS

       Naudojant radarą, mažėja jūsų roboto energijos lygis. 1 panaudojimas "suvalgo" 1 dalį roboto energijos. Naudojant radarą, jums reikia nurodyti objekto, kurio ieškote tipą, o radaras jums pasakys reliatyvias artimiausio jūsų ieškomo objekto koordinates.


   4. "ROBOT WARFARE 1" (RW1) PROGRAMAVIMO KALBA

   4.1 RW1 - TEKSTINIS IR RW0 - KODUOTAS

       Roboto programos tekstas yra surašytas į failą su .rw1 praplėtimu. Sukompiliuota programa įgyja .rw0 praplėtimą. Failai su .rw0 praplėtimu yra ne perskaitomi, kai tuo tarpu .rw1 gali būti perskaityti kaip eilinis programos tekstas.

   4.2 ROBOT SAMPLE


%============WINSIMPLE.RW1==================
%Paprasčiausio roboto pavyzdys
%Su viena akim ir ginklu
%Paleidimas: RW1_DUEL.EXE WINSIMPLE.RW1 ROBOT

"WinSimple robot" %Roboto vardas
COLOR FFD010 %Roboto spalva
FRONT EYE %Robotas su akim priekyje
LEFT GUN %ir ginklu kairėje

START:
ACT FRONT %Pažiūrėti į priekį
IF N!=6 : L1 %Jei nesimato roboto eiti į nuorodą "L1"
RIGHT % Jei visgi robotą mato, pasisukti į dešinę
ACT LEFT %Šauti
LEFT %Pasisukti į kairę
GOTO START %Eiti į nuorodą "START" - pradžia
L1: %Nuoroda "L1"(label)
IF N!=3 : L2 %Jei priekyje nesimato dėžės su raketom,
%eiti į nuorodą "L2"
STEP %Kitu atveju žingsnis į priekį
GOTO START
L2: %Jei priekyje NĖRA nei kito roboto nei raketų dėžės,
%reiškia gali būti tik siena arba tuščia erdvė
IF D<1 : L3 %Jei distancija iki artimiausio objekto mažesnė nei 1,
%eiti į "L3"
STEP %Kitu atveju žengti į priekį
GOTO START
L3:
RIGHT
GOTO START
END %Programos pabaigos ženklas

    4.3 RW1 - KALBA

      Pastaba: Patariama turėti nors kiek patirties programavime (tiks bet kokia kalba), prieš bandant naudoti šia kalbą. Žiūrėkit roboto pavyzdį "WinSimple.rw1" prieš tai buvusiame skyriuje. Komentarai: Komentarai programoje turi būti pažymėti simboliu "%" (taip pat kaip ";" Asembleryje arba "//" C++). Kiekviena komanda užtrunka 1 "tik'a". Programa prasideda komanda ROBOT ir roboto vardu kabutėse. Programa užbaigiama komanda END. Roboto spalva nustatoma komandos COLOR pagalba. PVZ.:

COLOR FF0000 % Raudona
COLOR 00FF00 % Žalia
COLOR 0000FF % Mėlyna
COLOR FFFFFF % Balta

COLOR C0C0C0 % Šviesiai pilka ir t.t.

       Paveiksliukas esantis ant roboto yra saugomas aštuoniose komandos IMAGE eilutėse, kiekvienas skaitmuo - nuoroda i pikselį:

IMAGE 0 0 0 0 0 0 0 0 % Pirmoji eilutė: 8 juodi pikseliai
IMAGE 0 0 0 0 0 0 0 0 % Antroji eilutė...
IMAGE 0 0 1 1 1 1 0 0 .....
IMAGE 0 0 1 A B 0 0 0
IMAGE 0 0 0 0 0 0 0 0 % Aštuntoji eilutė.

 

Spalvos:
0 - JUODA 8 - TAMSIAI PILKA
1 - MĖLYNA 9 - ŠVIESIAI MĖLYNA
2 - ŽALIA A - ŠVIESIAI ŽALIA
3 - ŽYDRA B - ŠVIESIAI ŽYDRA
4 - RAUDONA C - ŠVIESIAI RAUDONA
5 - VIOLETINĖ D - ŠVIESIAI VIOLETINĖ
6 - RUDA E - GELTONA
7 - ŠVIESIAI PILKA F - BALTA

       Roboto įrenginių nustatymui reikės naudoti šias komandas: FRONT, BACK, LEFT, RIGHT ir priedą GUN arba EYE. Pavyzdžiui, jei jūs norite, kad jūsų robotas turėtų keturis ginklus (iš visų pusių), jums reiktų parašyti:

FRONT GUN
BACK GUN
LEFT GUN
RIGHT GUN

       Jei norite roboto su ginklu priekyje ir ginklu nugaroje, parašykite:

                FRONT GUN
                BACK EYE

       Roboto konfigūracija (spalva, paveikslėlis ir įrenginiai) turi būti aprašyti tarp pirmosios komandos ROBOT ir pirmosios nuorodos START.

       Nuoroda yra žodis ir dvitaškis po jo.
       Pirmoji nuoroda turi būti:

                START:

      Pastaba: Negalima rašyti jokių komandų išskyrus komentarus toje pačioje eilutėje, kur jau yra nuoroda. Nuoroda - ne komanda, todėl ji nėra vykdoma ir neužima laiko.
Jei jūs norite naudoti masyvus, jums reiks juos aprašyti po nuorodos START, kaip pvz.:

                DEF vardas[k] %Kur k yra skaičius nuo 1 iki 10000

       Pastaba: Visu masyvų skaičius ir ilgis negali būti didesnis nei 10000. Kintamieji atsiranda nuo tada kai jie būna pirma syki panaudoti. Kintamųjų reikšmė gali būti nuo -32768 iki 32767.

       Visi masyvai, kintamieji ir nuorodos turi turėti unikalius pavadinimus. Komandos, registrų vardai negali būti jų vardais.

Roboto registrai (jie yra tik skaitymui (read only)):
X,Y - reliatyvios objekto koordinatės
D - atstumas, distancija
N - objekto tipas (žiūr. 3.1)
K - extra registras
R - atsitiktinis skaičius 0..999
T - "ticks" skaitiklio reikšmė
E - jūsų roboto energijos lygis
M - raketų skaičius, kurias turi jūsų robotas.

RW1 kalbos komandos:
GOTO nuoroda %eiti į nuoroda, kurios pavadinimas "nuoroda"
CALL nuoroda %iškvieti procedūrą, iš nuorodos "nuoroda"
RET %Grįžti iš procedūros

STEP %Žengti žingsnį, į ta pusę į kurią robotas atsisukęs
RIGHT %Pasisukti į dešinę
LEFT %Pasisukti į kairę

SAY
"žodis" %Robotas pasako "žodis" (bus parodyta terminale)
PRINT n %robotas išmeta kintamojo arba masyvo reikšmę į terminalą

ACT n %Panauduoti kokį nors roboto įrenginį (akį arba ginklą)
%nurodoma tik roboto pusė, (ty RIGHT, LEFT ir tt)
%( 0- priekis, 1- dešinė, 2- nugara, 3- kairė arba
%tiesiog FRONT, RIGHT, BACK and LEFT),
%akis perduoda informaciją i registrus:
%D - atstumas/distancija iki objekto
%N - Objekto tipas (žiūr. 3.1),
%K - kito roboto energijos lygis, jei jis matomas

SPY %Gauti informacijos apie paskutinę paleistą raketą
%Jei raketa pataikė į ką nors, komanda persiunčia
%objekto koordinates į X ir Y registrus
%N registrą - objekto tipas (žiūr. 3.1),
%0 - jei raketa skrenda, %1 - jei raketų nebuvo paleista.

RADAR n %galima naudoti radarą objektų N =0...6 suradimui
%koordinatės bus persiustos i X ir Y registrus
%jei X ir Y lygūs nuliui - objektas nerastas.
%K - kvadrantas (0,1,2,3)

%n gali būti kintamasis, masyvo elementas
%M,K gali būti numeris, kintamasis, masyvo elementas arba registras.

IF k>m : aaa % jei k yra didesnis nei m tada eiti į nuorodą aaa
IF k<m : aaa % jei k yra mažesnis nei m tada eiti į nuorodą aaa
IF k<=m : aaa % jei k yra mažesnis arba lygus m tada eiti į nuorodą aaa
IF k>=m : aaa % jei k yra didesnis arba lygus m tada eiti į nuorodą aaa
IF k==m : aaa % jei k lygus m tada eiti į nuorodą aaa
IF k=m : aaa % jei k lygus m tada eiti į nuorodą aaa
IF k!=m : aaa % jei k ne lygus m tada eiti į nuorodą aaa
IF k<>m : aaa % jei k ne lygus m tada eiti į nuorodą aaa

n=m % kintamajam n suteikti m reikšmę
n=-m % kintamajam n suteikti neigiamą m reikšmę
n=m+k % sudėtis
n=m-k % atimtis
n=m/k % dalyba. n bus sveikas skaičius
n=m*k % daugyba
n=m%k % m priklausomybė nuo k


    Jei jūs neteisingai naudosite komandas CALL ir RET, robotas gali "pakibti", tai reiškia - jūsų robotas miręs.


Copyright (c) 1998-2002 by Alexander Shabarshin
Translations and Lithuanian WWW by [dnr] & {{NSO}}