Table of Contents

Prepočítanie relatívnej pozície z parsera

Opis zmien

Pri implementácii bola upravená 1 trieda a 1 trieda vytvorená v projekte Jim.

Vytvorenie triedy „Line“ v balíku sk.fiit.jim.agent.models. Táto trieda reprezentuje čiaru ako model v 3D súradnicovom systéme a zachováva absolútnu aj relatívnu polohu čiary.

Doplnenie zoznamu čiar do triedy „WorldModel“ balíka sk.fiit.jim.agent.models. Zoznam obsahuje objekty typu „Line“, ktorých cieľom je reprezentácia čiar v relatívnych aj absolútnych koordinátoch.

Doplnenie metódy „calculateLines“ v triede sk.fiit.jim.agent.models.WorldModel.

Doplnenie „get“ metódy „getLines“, ktorá vráti zoznam čiar typu „Line“.

Doplnenie metódy „processNewServerMessage“ o volanie našej novovytvorenej metódy „calculateLines“ spolu s ošetrením prázdneho zoznamu.

Obrázok 1: UML DIagram sekvencií - priebeh prepočturelatívnej pozície z parsera

Spracovanie novej správy sa v podstate skladá zo štyroch krokov:

  1. Vypočítanie polohy lopty.
  2. Vypočítanie polohy hráčov.
  3. Vypočítanie čiar. Ak zoznam čiar, získaný spracovaním z parsera (ParsedData) nie je prázdny, vyprázdni sa zoznam čiar (typu Line v triede WorldModel) a následne sa vo for-cykle pre všetky čiary z parsera najskôr vytvorí nový objekt typu Line, kde sa postupne nastavia informácie o bodoch.
  4. Odoslanie správy do TestFramework-u.

Opis tried

sk.fiit.jim.agent.models.Line

Trieda uchovávajúca informácie o čiare, ktorú agent vidí:

Trieda implementuje rozhranie Serializable, aby mohla byť serializovateľná a mohla sa prenášať do TestFrameworku.

Obrázok 2: UML DIagram Tried - Vzťah tried Line a ParsedLineWithFlags

sk.fiit.jim.agent.models.WorldModel

V tejto triede sme doplnili premennú, ktorá udržiava zoznam čiar (ktoré hráč vidí). Ďalej sme vytvorili verejnú metódu „getLines“, prostredníctvom ktorej je možné získať tento zoznam z iných tried.

Vytvorili sme metódu „calculateLines“, v ktorej sa prepočítavajú relatívne pozície na absolútne. Volanie tejto metódy sme doplnili do metódy „processNewServerMessage“, ktorá spracováva správy zo servera, teda keď príde nová správa zo servera, pozície čiar, ktoré hráč vidí, sú nanovo prepočítané.