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

       Čia pateiksime kelis robotų pavyzdžius, kad jums būtų lengviau susikonstruoti savąjį :)
       Jei jūs padarėte labai "kietą" robotą ir manote, kad jis tiktų šiai skilčiai, t.y. iš jo būtų galima daug ko išmokti, atsiųskite jį ir jo aprašymą mums :)


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

"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ūri į priekį.
   IF N!=6 : L1 % Jeigu priekyje nėra priešo, eiti į L1.
   RIGHT % Kitu atbeju, pasisuka į dešinę ir
   ACT LEFT % šauna.
   LEFT % Atsisuka atgal.
   GOTO START % Grįžta į pradžią

L1:
% Nuoroda "L1"(label)
   IF N!=3 : L2 % Jei priekyje nesimato dėžės su raketom,
   %eina į žymą "L2"
   STEP % Kitu atveju, žengia į priekį.
   GOTO START % Grįžta į pradžią

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,
   %eina į "L3"
   STEP %Kitu atveju, eina į priekį.
   GOTO START % Grįžta į pradžią

L3:

   RIGHT % Pasuka dešinėn ir
   GOTO START % grįžta į pradžią

END %Programos pabaigos ženklas


%============Monster-7==============
% Robotas su akimi priekyje ir ginklu kairėje..
% Autorius - Yaroslav Malygin

ROBOT "Monster"
COLOR 000000
FRONT EYE
LEFT GUN

image 0 0 C C C C 0 0 % Paveiksliukas
image 0 C 0 0 0 0 C 0
image C 0 0 C C 0 0 C
image C 0 C 0 0 C 0 C
image C 0 C 0 C 0 0 C
image C 0 0 C 0 0 C 0
image 0 C 0 0 C C 0 0
image 0 0 C 0 0 0 0 0

START:
% Šis masyvas leidžia sumažinti operatorių skaičių, o kartu ir pagreitinti robotą..
% Tai yra labai svarbu, kai robotas šaudo arba turi bėgti..
% Gaila, bet tai užima 19 mūšio laiko TIK'ų
% pačioje žaidimo pradžioje..
   def object[11]
   def R_O[11]
   eneg=E % Išsaugome savo energiją..
   object[0]=3
   object[1]=0
   object[2]=1  
   object[3]=5
   object[4]=4
   object[10]=2
   object[5]=6
   object[6]=7
   R_O[0]=0
   R_O[1]=1
   R_O[2]=1
   R_O[3]=0
   R_O[4]=1
   R_O[5]=1
   R_O[6]=1
   R_O[10]=1

start1:
% Pagrindinės žymos pradžia
   ACT FRONT % Pažiūri į priekį..
   if object[N]<6 : L1 % Jeigu ten nėra nei roboto, nei raketos, tada einam į L1

L0:
   dist=D % Išsaugo atstumą iki (galbūt) priešo..
   RIGHT % Atsuka ginklą į priešą..

shoot:
   ACT LEFT % Šauna tris kartus..
   ACT LEFT
   ACT LEFT
   IF M<2 : uhod % Jei robotas neturi pakankamai raketų, tai jis bando pabėgti..
   delta=eneg-E
  if delta>=2 : last_stand % Jeigu robotas yra sunkiai sužeistas, tuomet padidinamas jo
  % šaudymo greitis..
   SPY % Patikrinama paskutinė raketa.. (Praėjo trys TIK'ai po paskutinio šūvio,
   % taigi raketa galėjo pajudėti per 3*5=15 celių..)
  if object[N]>=6 : shoot % Priešas buvo sužeistas arba matoma kita raketa,
  % taigi šaudymas pakartojamas..
  if m<5 : L6 % Jei robotas neturi pakankamai raketų, tai
  % grįžta į paskutinę paziciją ir eina prie pagrindinės žymos..
  LEFT
  act front % Pasižiūri priešo kryptimi..
  if object[N]>=6 : L0 % Jei pamato robotą (arba raketą) tai šaudymą pakartoja.

pr1: % Kitu atveju vejasi priešą..
  if dist<3 : pr2
  STEP % Roboto persekiojimas (t.y. robotas nukeliauja į tą vietą, kur
  STEP % paskutinį kartą buvo priešas, kaip galima greičiau..)
  dist=dist-3
  goto pr1

pr2:
  if dist==0 : pr3
  STEP
  if dist==1 : pr3
  step


pr3: % Robotas pasiekia tą vietą..
  LEFT
  ACT FRONT % Pasižiūri į priekį (kur gali būti priešas..)
  RIGHT
  if object[N]>=6 : shoot % Jei pamato priešą (arba raketą), tada šauna..
  RIGHT % Kitais atvejais dar kartą pasisuka
  goto start1 % ir grįžta prie pagrindinės žymos..

L1: % Robotas nepamatė nei priešo, nei raketos..
  if eneg>E : what % Jeigu roboto energija sumažėjo, tada patikriname, kas atsitiko..
  eneg=E % Išsaugome savo energiją..
  if N!=3 : L3 % Jei nemato dėžės, einam į L3.

L5:
  STEP % Pajuda
  goto start1 % ir grįžtam prie pagrindinės žymos..

L3:
  if N!=4 : walk % Jei namato atominės elektrinės, eina pasivaikščiot..
  if E<13 : reactor % Jeigu neturi pakankamai energijos, eina užsikraut..
  if D<4 : walk % Jei reaktorius netoli, eina pasivaikščiot..
  if M<35 : walk % Jeigu neturi pakankamai raketų, eina pasivaikščiot..

blow: % Elektrinės sunaikinimas..
  RIGHT % (Tikslas: Mūsų robotui energija nebereikalinga, o elektrine gali
  ACT LEFT % pasinaudoti priešas..)

L6:
  LEFT
  GOTO start1

reactor:
  if D!=1 : L5 % Juda link elektrinės..

L7: % Užsikrauna..
  RIGHT % Robotas sukiojasi ir stebi ar nėra priešo
  ACT FRONT % kol visiškai užpildoma energija..
  if object[N]>=6 : start1
  if E == 13 : start1 % Tada grįžtam prie pagrindinės žymos..
  goto L7

walk: % Kairėje esančių "apylinkių" apžiūrinėjimas.. (vaikščiojant)
  if D==1 : L4 % Jei kelyje yra kliūtis, pasisukam..
  STEP % Judam..
  if r<80 : L4 % Pasisukam (8% tikimybė)
  left
  act front % Dirstelnam kairėn..
  if object[N]>=6 : L0 % Pamačius prieša, jį atakuojam..
  if N==3 : L5 % Pamačius dėžę, judam link jos..
  if N==4 : wh01 % Jei pamato elektrinę, einame į wh01

wh02:
  right % Nepamato nieko įdomaus, taigi pasisukam atgal..
  if eneg<=E : start1 % grįžtame prie pagrindinės žymos..
  goto what % Jeigu energija sumažejo, patikriname kas atsitiko..

wh01:
  if e<13 : reactor % Robotas mato elektrinę ir pakartoja beveik tą patį..
  if d<4 : wh02
  if m<35 : wh02
  if eneg<=E : blow
% Jeigu robotas turi pakankamai energijos, susprogdinam elektrinę..
  goto what % Sumažejus energijai, patikriname kas atsitiko..

L4:
  if r>500 : L11 % Atsitiktinai pasukam dešinėn arba kairėn..
  RIGHT
  goto walk1

what: % Čia patikrinama, kas atsitiko, kai robotas buvo pažeistas..
  right
  right
% Apsisuka..
  act front
  if object[N]>=6 : L0 % Jeigu užnugaryje buvo priešas, robotas šauna..

uhod: % Atsitraukimas.. Dažniausiai priešas būna dešinėje..
  % Mūsų robotas nori pabėgti iš pavojingos zonos..
  ACT FRONT
  if D>R_O[N] : L9 % Jeigu priekyje nieko nėra arba ten dėžė, pajudam į priekį..
  RIGHT
  RIGHT % Kitu atveju mes pasukam atgal..
  ACT FRONT
  if D>R_O[N] : L9 % Patikriname galimybę judėti į priekį..
  LEFT % Jei ne, pasukame į kairę.. Didelė tikimybė, jog robotas užnugaryje..
  ACT FRONT
  if D>R_O[N] : L8 % Ar galima judėti atgal?
  RIGHT

L10:
  RIGHT
% Pagaliau mes bandome judėti link priešo (kito kelio nėra).
  STEP
  RIGHT
  ACT FRONT
  if D>R_O[N] : L9
% Patikriname galimybę pajudėti į kitą celę..
  RIGHT
  RIGHT
  ACT FRONT
  if D<=R_O[N] : L10

L9:
  STEP % Atrodo, jog išsigelbėjom..
  eneg=E % Išsaugome energija ir grįžtame prie
  goto start1 % pagrindinės žymos..

L8: % Judėjimas pavojinga linija..
  STEP
  LEFT
  goto uhod % Dar kartą pamėginame pasitraukti iš pavojingos linijos..

LAST_STAND:  % Šaudymo greičio padidinimas (jeigu robotas gerokai sužeistas)
  if m<3 : uhod % Jeigu robotas neturi pakankamai raketų, tada bando pabėgti..
  SPY % Patikrinam paskutinę raketą..
  if object[N]<6 : L6 % Jei priešo nėra, einam į L6..
  act left
  act left
  act left
% Kelis kartus šaunam..
  act left
  act left
  goto last_stand
% ir dar kartelį..

L11:
  LEFT % pasuka kairėn (pvz.: jei kelyje yra kliūtis..)

walk1: % Ar galima judėti šia kryptimi???
  act front % Šia kryptim judėti galima, jei atstumas iki
  if d>1 : start1 % objektto > 1 arba
  if object[N]>2 : start1 % ten yra naudingas objektas (naudinga viskas, išskyrus sienos,
  % akmenys ir skylės..)
  left
  left
% Kitais atvejais robotas pasisuka atgal.
  if eneg<=E : start1
  goto what % Jeigu energija sumažėjus, patikriname, kas atsitiko..

END


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