Zápisnica
č. |
Dátum |
Miesto |
Čas |
12 |
2. 3. 2009 |
Softvérové štúdio |
11.00 |
Zúčastnení
členovia |
Bc. Juraj Ligocký Bc. Michal Hrubý Bc. Gabriel Pán Bc. Ján Hric Bc. Marek Polák |
Pedagóg |
Ing. Ivan Kapustík |
Zapisovateľ |
Bc. Ján Hric |
Program
stretnutia |
Cieľom stretnutia bolo určiť postup vývoja v letnom semestri, najmä čo sa týka programovania a využívania podporných prostriedkov. |
|
Priebeh
stretnutia |
- IK poukázal na neprítomnosť plánu na letný semester na webovej stránke. JL dostal za úlohu tento nedostatok napraviť. - Zrekapitulovali sme si súčasný stav - máme dvoch hráčov a potrebujeme jedného z nich vziať ako základ pre ďalšiu prácu. Po výsledkoch minulotýždňového testovania sme si istí vhodnosťou fakultnej počítačovej výbavy pre javového hráča. Vzhľadom na väčšie skúsenosti s Javou väčšiny členov tímu sme sa rozhodli pre pokračovanie v hráčovi tímu DAInamite. - JH vysvetlil princíp rozhodovania sa hráča Jahodových princov. Vysvetlil najmä, čo je potrebné, ak by sme chceli toto rozhodovanie preniesť do hráča DAInamite. Hlavnou triedou je WorldModel. Napísanie jej metód a pár pomocných (zväčša geometrických) tried umožní prevziať ľubovoľnú časť správania Jahodových princov. Trieda je pomerne obsiahla, predpokladáme však prítomnosť mnohých jej metód (alebo im podobným) v javovom hráčovi. Všetky triedy a metódy použité v Jahodových princoch od hlavného cyklu (metóda mainLoop) nižšie sú vypísané v prílohe A. |
- MP vysvetlil príčinu nehybnosti tímu DAInamite počas minulotýžňového testovania. Hráč si po spustení nahrá z konfiguračného súboru zoznam taktík používaných pri rôznych režimoch hry. Pri testovaní sme nepoužili správny konfiguračný súbor. - Štruktúra konfiguračného súboru je jednoduchá: obsahuje zoznam taktík (názvov tried) a pri každej taktike zoznam režimov hry, v ktorých sa má použiť. Špeciálne slovo ALWAYS definuje použitie taktiky v každom režime. - Každá taktika je definovaná v potomkovi abstraktnej triedy AbstractState. Z jednoduchých taktík dostupných v zdrojovom kóde tímu DAInamite MP spomenul DribbleState (driblovanie), PassState (prihrávanie) a SearchState (hľadanie lopty obzeraním sa; používa sa v každom režime hry). - MP nakoniec predviedol ukážku vlastných jednoduchých taktík - beh k lopte, vykopnutie lopty, driblovanie a kop na bránu. Jeho ukážka dokazuje reálnu šancu vytvoriť počas semestra vlastnú taktiku, napr. prevzatím správania z Jahodových princov. |
- Tím sa zhodol na nutnosti začať programovať. Každý člen tímu musí mať už počas tohto týždňa spojazdnené vývojové prostredie. - Načim zabezpečiť vhodné podporné prostriedky, aby sme nestrávili mnoho času synchronizáciou zdrojových kódov. GP a JL polemizovali o použití prostredí NetBeans a Eclipse. Nejednotnosť použitých prostredí zvyšuje nutnosť použitia podporných prostriedkov. o GP navrhol použitie systémov SVN a Maven. o MP už počas stretnutia spojazdnil systém SVN na servri Google. o Ak by sa systém Maven nepodarilo spojazdniť, alternatívou je pracovať bez neho. Potrebujeme to však vyriešiť čím skôr. - MP sa ponúkol napísať krátky návod na prípravu vývojového prostredia pre hráča DAInamite, aby bol každý člen tímu schopný rýchlo začať pracovať. - JH vyjadril požiadavku vývoja pod OS Linux. MP ho ubezpečil, že je to možné. Ďalej JH vyjadril nespokojnosť s nespoluprácou hráča DAInamite so servrom verzie 13. Toto sa pokúsi napraviť. |
Plnenie
úloh z predchádzajúcich stretnutí |
||||
Id |
Opis |
Zodpovedný |
Termín |
Stav |
11.1 |
Umiestniť dokumentáciu javového hráča na tímovú stránku. |
Hric |
2. 3. 2009 |
Splnená |
11.2 |
Opísať nižšie funkcie hráča tímu Jahodových princov. |
Hric |
2. 3. 2009 |
Splnená
|
11.3 |
Namapovať funkcie existujúce v javovom hráčovi na funkcie tímu Jahodových princov. |
Pán |
2. 3. 2009 |
12.7 |
11.4 |
Nainštalovať a oboznámiť sa s javovým hráčom. |
Všetci |
2. 3. 2009 |
12.1 |
11.5 |
Naštudovať správanie javového hráča a implementovať jednoduché správanie. |
Polák, Ligocký |
2. 3. 2009 |
Splnená |
Nové
úlohy |
|||
Id |
Opis |
Zodpovedný |
Termín |
12.1 |
Napísať stručný návod na preklad a spustenie hráča DAInamite. |
Polák |
3. 3. 2009 |
12.2 |
Pokúsiť sa spojazdniť systém Maven a napísať stručný návod na použitie. |
Pán |
9. 3. 2009 |
12.3 |
Skompilovať a spustiť hráča DAInamite pod Linuxom. |
Hric, Hrubý |
9. 3. 2009 |
12.4 |
Upraviť hráča DAInamite na spoluprácu so servrom verzie 13. |
Hric |
30. 3. 2009 |
12.5 |
Napísať stručný návod na použitie klienta SVN. |
Polák |
9. 3. 2009 |
12.6 |
Umiestiť na stránku plán na letný semester. |
Ligocký |
9. 3. 2009 |
12.7 |
Identifikovať, opísať a začať programovať taktiku založenú na Jahodových princoch. |
Ligocký, Hric, Hrubý |
9. 3. 2009 |
Použité
skratky:
JL Bc. Juraj Ligocký
MH Bc. Michal Hrubý
GP Bc. Gabriel Pán
JH Bc.
Ján Hric
MP Bc. Marek Polák
IK Ing. Ivan Kapustík
Nasledujúci zoznam vznikol preskúmaním zdrojového kódu hráča Jahodových princov, počnúc metódou mainLoop triedy Player. Prezreli sa metódy tried Player a BasicPlayer, ostatné triedy sa neskúmali. Zoznam teda obsahuje všetky používané metódy tried Player a BasicPlayer a všetky metódy iných tried, ktoré sa z nich volajú. Prenesením týchto tried do hráča DAInamite sa vytvorí predpoklad na naprogramovanie ľubovoľného správania Jahodových princov.
Player
mainLoop
performPenalty
shallISaySomething
amIAgentToSaySomething
sayBallStatus
sayOppAttackerStatus
deMeer5
kickToPass
circleKickToPass
kickToPlay
kickToScore
passTo
passToTeammateFitness
passToOpponentFitness
passToFitness
passToFitness
BasicPlayer
turnBodyToPoint
turnBodyToObject
kickTo
accelerateBallToVelocity
freezeBall
catchBall
kickBallCloseToBody
intercept
moveToPos
turnNeckToObject
turnNeckToPoint
dashToPoint
turnBackToPoint
directTowards
interceptClose
collideWithBall
teleportToPos
alignNeckWithBody
turnAround
adjustView
searchBall
canDribbleWithBall
handleWithBall
oscillateView
isFreeCone
canDribbleFast
canDribbleSlow
dribbleFast
dribbleSlow
dribbleWithBall
dribble
turnWithBallTo
kickBallCloseToBody
getInterestRadius
WorldModel
getActualKickPowerRate
getAgentEffort
getAgentGlobalBodyAngle
getAgentGlobalPosition
getAgentGlobalVelocity
getAgentObjectType
getAgentSpeed
getAgentStamina
getAgentViewAngle
getAngleForTurn
getBallPos
getBallSpeed
getClosestInSetTo
getClosestRelativeInSet
getConfidence
getCurrentCycle
getCurrentTime
getFastestInSetTo
getFeature
getGlobalPosition
getGlobalVelocity
getKickPowerForSpeed
getKickSpeedToTravel
getNrInSetInCircle
getNrInSetInCone
getOffsideX
getPlayerNumber
getPlayMode
getPosOpponentGoal
getPowerForDash
getRecvThink
getRelativeAngle
getRelativeDistance
getSide
getStrategicPosition
getTimeChangeInformation
getTimeLastHearMessage
getTimeLastSeeMessage
getTimeLastSenseMessage
getTimeLastSeen
isBallCatchable
isBallKickable
isBeforeKickOff
isCollisionAfterCommand
isDeadBallThem
isDeadBallUs
isFeatureRelevant
isGoalKickUs
isKickOffUs
isPenaltyThem
isPenaltyUs
iterateObjectStart
iterateObjectNext
iterateObjectDone
predictAgentPos
predictAgentPosAfterCommand
predictAgentStateAfterCommand
predictBallInfoAfterCommand
predictCommandToInterceptBall
predictFinalAgentPos
predictPosAfterNrCycles
predictStateAfterTurn
processRecvThink
setAgentViewAngle
setCommunicationString
waitForNewInformation
ServerSettings
getBallAccelMax
getBallDecay
getBallSize
getBallSpeedMax
getGoalWidth
getHearDecay
getKickableMargin
getKickPowerRate
getMaximalKickDist
getMaxNeckAng
getMaxPower
getMinNeckAng
getPenAllowMultKicks
getPlayerSize
getPlayerSpeedMax
getRecoverDecThr
getStaminaMax
getSynchMode
getVisibleDistance
PlayerSettings
getBallConfThr
getDribbleAngThr
getPlayerConfThr
getPlayerWhenToKick
getPlayerWhenToTurnAngle
getTurnWithBallAngThr
getTurnWithBallFreezeThr
Formations
getFormation
getPlayerType
setFormation
VecPosition
getDirection
getDistanceTo
getMagnitude
normalizeAngle
operator-
pointsDistance
rotate
setVecPosition
Line
getCircleIntersectionPoints
getIntersection
getPointOnLineClosestTo
makeLineFromPositionAndAngle
makeLineFromTwoPoints
Circle
Stamina
getEffort
AngDeg
getDirection
SoccerCommand
isIllegal
makeCommand
ArsToolbox
circleLineIntersection
createLineTo
linePointDistance
trim
cFuzzyObj
//všetko