RedBot 2013 podzim: Popisy strategií

Popisy strategií zaslaných jejich autory a odkazy na jejich zveřejněné (se svolením autorů) zdrojové kódy.

jirvoz (Jiří Vozár) [zdroj]

Strategie po načtení pole asteroidů spustila prohledávání do šířky a pokud nejdřív našla dva (popř. jeden poslední) asteroidy váhy 1, zaměřila se na ně, pokud stihla dřív najít asteroid váhy 2, letěla pro tento. Jelikož si též ukládala směr, kterým se k asteroidu dostávala, nestalo se, že by se zasekla o jiný. Lodě nejdřív kontrolovaly možnost střelby, ale jen když se nepřítel nacházel na asteroidu, takže zásah byl většinou jistý. Pokud nebylo jak střílet, lodě se staraly o asteroidy. Pokud se navíc tahaly s nepřítelem o asteroid váhy 2, počkaly na místě a pak jej sestřelily.

F#ntom (Tomáš Pastirčák, Pavel Grunt) [zdroj]

Rakety jsou ovládány dvěma strategiemi. První je zaměřená na napadání nepřítele - když raketa může vystřelit na nepřítele, tak vystřelí, jinak jde pro nejbližší asteroid. Druhá se o nepřítele nestará, létá k nejbližším neobsazeným asteroidům. Pro výběr stategie hraje roli rozdíl skóre obou hráčů.

Pworontočokwala (Bc. Matej Perina, Bc. Peter Orság, Bc. Ján Janovic) [zdroj]

Hru sme po analýze rozdelili na 6 stavov, v ktorých sa môže nachádzať vzhľadom na polohu lodí, asteroidov a základne. V každom stave je definované správanie sa lodí vzhľadom na nepriateľské lode. Cez túto schému sme sa potom snažili dosiahnuť špecifické črty stratégie:
  • uprednostniť asteroidy ktoré sú bližšie ku základni,
  • nezáleží na hmotnosti asteroidu ak je nabližšie asteroid s váhou 2 idú poň,
  • ak už je jedna raketa na asteroide a čaká kým príjde aj druhá aby ho mohli odtiahnuť, tak asteroid bráni (striela po lodiach ktoré vidí (sú na rovnakom riadku/stĺpci))
  • pri presune (raketa neni na asteroide, ktorý sa má ťahať) raketa striela iba na lode ktoré vidí a sú na asteroide (ťahajú),
  • pri ťahaní (raketa je na asteroide, ktorý sa ná ťahať) striela po všetkých raketách ktoré vidí, ak však vidí dve naraz blokuje,
  • ak sú rakety spolu na jednom políčku a vidia inú raketu jedna blokuje a druá striela,
  • ak by sa mala vykonať taká istá akcia ako v predchádzajúcom kroku (strielanie, bránenie), a v predchádzajúcom kroku bola neúspešná (strielalo sa ale nepriatel uhol alebo blokoval, alebo bol použitý blok a nikto nestrielal) tak sa akcia nevykoná.

FiddleJumper (Štěpán Smetana) [zdroj]

Moje strategie nejprve vybere dva nejbližší asteroidy. Pak se rozhoduje, zda je jedním z nich asteroid váhy dva. Pokud je alespoň jeden z těchto dvou asteroidů váhy dva, tak oběma raketami letím pro ně. Pokud však oba asteroidy jsou váhy 1, tak letím pro ně. Nyní pokud už moje souřadnice lodi se shoduje se souřadnicí nějakého asteroidu, tak přepíšu povel pro moji raketu na dotáhnout asteroid. Nyní vyhodnocuji, jestli náhodou není nějaká protivníkova loď na stejné souřadnici jako některá moje raketa a neleží na asteroidu, který bude nejspíš táhnout. Nyní vypíšu operace. Preferovanost mých povelů je tedy Střílej, Táhni a Leť. Ještě tam mám pofiderně vyřešené to, že kdybych náhodou mohl táhnout asteroid na stejnou pozici, tak druhou lodí bráním.

ProjectX (Vít Valečka) [zdroj]

Strategie nejprve načte hrací pole a poté vytvoří soupis všech asteroidů. U každého z nich vypočte vzdálenost a vybere ten nejbližší, pro který vyletí. Ten poté odtáhne zpět na základnu. Strategie ovšem neumí pohybovat každou z lodí zvlášť, střílet, ani se bránit, což jsou pravděpodobně její největší slabiny.

jfoltaBot (Jiří Folta) [zdroj]

A tady je strategie našeho náboráře, která kdyby byla bodována byla by někde v polovině všech účestníků :-)