SKLO
tento tím bol založený v rámci tímového projektu v školskom roku 2003/2004 zo 6 súťažných tímov sa umiestnil na konečnom druhom mieste.
1. Dream Team 2. Sklo 3. Stjupit Dox 4. Granko 5. Derava kopacka 6. Huxol.
Základ tímu
ako zaklad sluzili zahranicny tymy FC Portugal a tim CMUnited99.
Zdrojové texty, použité vývojové prostredie
Zdrojove kody su k dispozicii, pouzity jazyk bol C++. Vyvojove prostredie bolo MS Visual Studio 6.0. Struktura suborov je velmi prehladna.
Architektúra hráča
Použitá troj-vrstvová a modulárna architektúra.
Vrchná vrstva - stratégia, rozhodovanie - zabezpečuje ju riadiaci modul, rozhodovanie stromy, znalosti o formáciách, subformáciách, herných situáciách, manažment vedomostí.
Stredná vrstva - taktika, reprezentácia vnútorného sveta.
Spodná vrstva - časovanie + komunikácia, založená hlavne na zdrojových textoch tímu CMUnited99.
Nízkoúrovňové zručnosti boli prebraté na tíme CMUnited99, minimálne modifikácie pri vedení a vystreľovaní lopty. Prebratá reprezentácia vnútorného sveta hráča z tímu CMUnited99.
Zameranie tímu bolo hlavne na vylepšenie funkcií najvyššej rozhodovacej úrovne, sociálne zručnosti (koordinácia, komunikácia medzi hráčmi),
V ďalšej časti správy uvádzam najdôležitejšie zručnosti, ktorými disponuje tím SKLO.
Situation Based Strategic Positioning
- v situáciách, ktoré nie sú kritické sa hráči pokúšajú dostať do strategických pozícii generovaných na základe aktuálnej situácie na ihrisku a pravidiel dostupných pre všetkých agentov. Za pomoci detailnejšej analýzy hernej situácie vieme predvídať známe situácie a predpovedať pozície jak našich hráčov tak hráčov súpera – bez vizuálnej informácie a zvukovej.
Dynamic Positioning and Role Exchange
Prebraté z tímu CMUnited99, umožnená výmena rolí jednotlivých hráčov, ak je tým umožnený globálny úžitok pre celý tím. Hráči sú homogénni, zmena je oznámená všetkým agentom.
Inteligentný komunikačný mechanizmus
spočíva v tom, že agent sa rozhoduje, či bude komunikovať na základe situácie (ako zmena rýchlosti lopty a pod.) Agent komunikuje, len ak verí, že je užitočnejšie, ak bude komunikovaťg on a nie spoluhráči.
Strategický pozorovací mechanizmus
Aby sa dosiahol čo najpresnejší obraz sveta, agent sa snaží určiť čo najlepší uhol natočenia na základe jemu známych pozícii ostatných hráčov a známych pozícii a rýchlosti objekov. Napr. ak hráč kontroluje loptu a je blízko súperovej brány, je preňho najdôležitejšia pozícia a rýchlosť brankára, pričom pozícia hráčov v strede je nezaujímavá.
Technika pokrývania súperových prihrávok
Ak agent spozoruje, že možná dráha súperovej prihrávky prechádza blízko jeho strategickej pozície, začne sa pohybovať, aby túto hrozbu odvrátil. Pri rozohrávke brankára, tím FC Portugal, z ktorého je prebratá táto technika používa kouča, aby informoval hráčov, kde sa nachádzajú súperovi hráči.
Výber akcie pri vedení lopty
Tento modul je aktívny v prípade, že agent má loptu. To umožňuje vybrať najlepšiu akciu na vykonanie. Výver je založený na koncepte Pass Matrix, Shoot Matrix, Dribble Matrix. Tieto štruktúry určujú, akým spôsobom sa hráč správa pri vedení lopty – opisujú kopy do lopty pre každého hráča pre rôzne situácie – spôsob výkopu pri rohovom kope, pri prihrávke po čiare, atď. Shoot matrix popisuje hlavne rôzne typy výkopov (do stredu brány, do rohu), atď.
Modelovanie súpera
Zabezpečuje ho samostatný modul – modelovanie pre trénera (vysokoúrovňové), modelovanie pre hráča – nízkoúrovňové. Analyzuje sa hra a pomocou strojového učenia a heuristiky sa určujú parametre súpera – súperova globálna formácia, jeho pozícia, rýchlosť, odhad o jeho parametroch a spôsobe výkopov, atď. Niektoré dôsledky uplatnenia týchto princípov – kvalitná hra, ale niekedy sa rýchlo zmení taktika a má to za následok celkové zhoršenie spôsobu hry.
Záver
Tento tím môžem doporučiť, je výborne zdokumentovaný.
Driblovanie v tíme SKLO
CielDriblovania Dynamická funkcia určovania cieľa hráča driblujúceho s loptou vyberá taký smer, kde je najmenej súperov. Funkcia zistí počet hráčov v dolnom aj hornom kvadrante vo vzdialenosti do 10 m. Ak sa v žiadnom kvadrante nenachádza súper, beží hráč priamo, posúva sa o 10 metrov dopredu. Inak sa presunie do stredu toho kvadrantu, kde je menej hráčov. Toto funguje, keď je hráč s loptou bližšie ako 35 metrov od brány. V opačnom prípade sa hráč orientuje podľa toho, v akej šírke ihriska sa nachádza a snaží sa viesť loptu na pozíciu bližšiu ku stredu ihriska.
Neviem, či je tento spôsob najlepší. Podľa kódu by som povedal, že hráč sa snaží loptu na svojej polovici dostať stále do stredu ihriska, čím sa hra zbytočne prehustí.
Miesto núdzového kopu Algoritmus vyberá smer, ktorým má hráč kopnúť v prípade, že je okolo neho nebezpečne veľa súperov. Najprv si zistí, či je voľná úsečka, na ktorej by sa mohol nachádzať spoluhráč. Ak táto nie je voľná, zisťuje sa priestor smerom k súperovým rohom. V najposlednejšom prípade vracia funkcia ako cieľ kopu vnútorný okraj súperovej tyčky.
Prečo je uprednostnený súperov roh pred bránkou, tomu moc nerozumiem. Možno je to tým, že v prípade kopu na bránu by získal loptu brankár, ktorý by ju mohol pohodlne rozohrať, pričom v súperovom rohu by mohla byť lopta ešte získaná.
Plánovanie výkopu Keď nastane situácia, v ktorej má hráč prihrať, správa sa hráč nasledovne: otočenie okolo osi (preskúmanie výkopu) postavenie sa čo najbližšie k lopte počkanie 10 simulačných krokov na spoluhráčov výber spoluhráča zakričanie správy Chytaj, otočenie sa k nemu a prihranie
PlayerSkills.cpp Tu sa nachádzajú zdrojové texty k hráčovi, ktoré opisujú vedenie a chytanie lopty, prihrávku...
PassBallToPlayer Funkcia zabezpečí nahranie lopty danému hráčovi. Najprv hráča vyberie, potom naňho zakričí a nahrá mu pomocou funkcie PassBall.
DribbleTo Použité 3 typy driblovania, ktoré sú použité podľa pozície hráča: DribbleTo, DribbleTo2, DribbleTo3. Ďalej som videl použité v implementácii iba funkcie DribbleTo2 a DribbleTo3. DribbleTo2 sa používa pri precíznejšom driblovaní. Rozdiel medzi nimi je v podstate ale iba v tom, že hráč využívajúci DribbleTo2 pri vedení lopty sa snaží nahrať a otáča krkom.
PlayerTactics.cpp Nachádzajú sa tu konkrétne funkcie hráča, ktoré preberajú metódy z predchádzajúcej triedy.
CanDribble Funkcia zisťuje, kde sa nachádza hráč a podľa toho či je v blízkosti brány alebo v útoku, vracia možnosť driblovania. V útoku môže hráč driblovaním aj riskovať, no v okolí vlastnej brány nie.
CanFastDribble Podobné ako predchádzajúca funkcia. Ak sa zistí, že vo vzdialenosti 7 metrov od hráča v dolnom alebo hornom kvadráte sa nenachádza súper, je rýchle driblovanie povolené.
Špecializácia sa hráčov Rozdelili hráčov na 3 skupiny: útočníci, obrancovia, stredopoliari
Správanie sa útočníka s loptou Pri prebratí lopty sa najprv vždy zakričí správa Mám. Po nej sa zruší beh na pozíciu, ktorá mala byť naplánovaná. Ďalej sa zrealizuje jedna z nižšie uvedených akcií podľa poradia: výkop ak na dostrel od brány, tak strela ak je niekto vpredu, komu môžem prihrať, radšej prihrám ak je vpredu a môže rýchlo driblovať, volí sa rýchly dribling bezpečný dribling kopni loptu na miesto núdzového výkopu
Stredopoliar s loptou Priorita akcií: streľba na bránu rozohranie priameho kopu ak môže driblovať, natočí krk a dribluje hľadá voľného spoluhráča, ak je taký, nahráva mu inak prihrávka do voľného priestoru
Obranca s loptou Podobne ako pri útočníkovi sa vyberajú tieto úlohy: ak je možné kopať na bránu – kop na bránu prihrávka spoluhráčovi dopredu driblovani určenie pozície na prihrávku na základe formácie a následná nahrávka
Späť na hlavnú stránku | Aktuálna verzia na našom Wiki