Netuším, jestli to někoho zajímá, ale předchozí problém jsem vyřešil pomocí jednoduché utility https://gist.github.com/irazasyed/f41f8688a2b3b8f7b6df jen si pro ni musím předpřipravit vstupní data (nepatrné zvýšení paměťových nároků - 2x3 pole), ale po otestování mohu říct, že funkce funguje správně.
Momentálně jsem tak dokončil celou základní implementaci soccer-decoder, kdyby někdo měl zájem zkouknout, třída Match zde: https://codeshare.io/5ojeLX
Pokud mi k tomu někdo poskytne zpětnou vazbu, nebudu se bránit. Samozřejmě vím, že to asi není nejčistější kód, zvláště ty zanořené pole, ale fakt nevím jak jinak to udělat. Jestli to chce někdo otestovat, stačí se podívat do předchozího kódu co jsem tu sdílel, tam jsou i formáty těch vstupních dat pro simulaci.
V tuto chvíli asi budu řešit, JAK DÁL? Zůstat u implementace pomocí PHP? Řešit si vše úplně samostatně nebo přejít na framework? Tady bych asi zvolil Nette, nebo něco jiného?
A pár poznámek k hotovému kódu:
- simuluje zápasy dvou týmů v závislosti na jejich skillech, z nichž počítá aktuální ratingy
- skilly i ratingy se upravují v závislosti na stáří hráče, jeho fyzičce a zkušenostech (mladý hráč bez zkušeností se zpravidla unaví rychleji, než ten starší, protože ten tam neběhá jako splašený zajíc)
- ratingy (které se porovnávají) se snižují po každé rozehře (bitvě)
- ideální počet bitev je momentálně 100 (možná bude nutné zvednout časem)
- každý rating projde Erlangovou distribucí => i nižší rating může vést k vítězství v bitvě
- dochází k více zakončením, než kolik nakonec padne branek (u dřívějšího tomu tak nebylo)
- přidal jsem ještě další zónu, která určuje to, že dochází k zakončení
- při změně držení míče (mimo krajní zony, zakončení) se již hra nepřesouvá automaticky do středu hřiště
- hra je připravena pro implementaci protiútoků (counter attack), ale zatím mi to nepřišlo jako důležité
V zápasovém engine zatím není, ale určitě by mělo být:
- implementace protiútoků (obecně)
- boj o pozici nemusí nutně vést k posunu dál nebo změně držení míče (tzv. dobývání šestnáctky)
- implementace různých herních stylů (např. držení míče, přímočarý, obranný, protiútoky atd. - tohle bude nejhorší vymyslet, protože bude těžké vyvážit výhody a nevýhody každého stylu)
- vliv prostředí na týmový výkon (doma hrajou týmy lépe než venku; na špatném terénu se špatně kombinuje atd.)
- zranění, střídání, vyloučení |