Skip to content
This repository was archived by the owner on Dec 31, 2024. It is now read-only.

Commit 5ee73c2

Browse files
authored
Merge pull request #1 from CLSFramework/trainer_test
make a better sample for trainer
2 parents 43e96a1 + 06b6a58 commit 5ee73c2

File tree

1 file changed

+31
-13
lines changed

1 file changed

+31
-13
lines changed

server.py

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from thrift.protocol import TBinaryProtocol
22
from thrift.transport import TSocket, TTransport
33
from soccer import Game
4-
from soccer.ttypes import State, Empty, PlayerActions, CoachActions, TrainerActions, PlayerAction, GameModeType
4+
from soccer.ttypes import DoChangeMode, DoMovePlayer, State, Empty, PlayerActions, CoachActions, TrainerActions, PlayerAction, GameModeType
55
from soccer.ttypes import ServerParam, PlayerParam, PlayerType, InitMessage, RegisterRequest, RegisterResponse, AgentType
66
from soccer.ttypes import HeliosChainAction, HeliosBasicMove, HeliosGoalie, HeliosSetPlay
77
from soccer.ttypes import DoMoveBall, RpcVector2D, TrainerAction
@@ -13,6 +13,7 @@
1313
from threading import Semaphore
1414
from multiprocessing import Manager, Lock
1515
import logging
16+
from pyrusgeom.vector_2d import Vector2D
1617

1718
logging.basicConfig(level=logging.DEBUG)
1819

@@ -61,20 +62,37 @@ def GetCoachActions(self, state: State):
6162
def GetTrainerActions(self, state: State):
6263
logging.debug(f"GetTrainerActions trainer at {state.world_model.cycle}")
6364
actions = []
64-
actions.append(
65-
TrainerAction(
66-
do_move_ball=DoMoveBall(
65+
if state.world_model.cycle % 100 == 99:
66+
logging.debug(f"Trainer at cycle {state.world_model.cycle}")
67+
if len(state.world_model.teammates) == 0:
68+
return TrainerActions()
69+
player = state.world_model.teammates[0]
70+
p = Vector2D(player.position.x, player.position.y)
71+
p = p + Vector2D(10, 10)
72+
actions = [
73+
TrainerAction(
74+
do_move_ball=DoMoveBall(
75+
position=RpcVector2D(
76+
x=p.x(),
77+
y=p.y()
78+
),
79+
velocity=RpcVector2D(
80+
x=0,
81+
y=0
82+
),
83+
)
84+
),
85+
TrainerAction(do_move_player=DoMovePlayer(
86+
our_side=True,
87+
uniform_number=player.uniform_number,
6788
position=RpcVector2D(
68-
x=0,
69-
y=0
89+
x=p.x(),
90+
y=p.y()
7091
),
71-
velocity=RpcVector2D(
72-
x=0,
73-
y=0
74-
),
75-
)
76-
)
77-
)
92+
body_direction=0.,
93+
)),
94+
TrainerAction(do_change_mode=DoChangeMode(game_mode_type=GameModeType.PlayOn))
95+
]
7896
return TrainerActions(actions=actions)
7997

8098
def SendServerParams(self, serverParams: ServerParam):

0 commit comments

Comments
 (0)