Commit 5923ab98 authored by Matthew Hausknecht's avatar Matthew Hausknecht

Removed unum from connectToServer function.

parent 4b702be9
...@@ -72,11 +72,10 @@ class Trainer(object): ...@@ -72,11 +72,10 @@ class Trainer(object):
'teams', 'base') 'teams', 'base')
config_dir = os.path.join(binary_dir, 'config/formations-dt') config_dir = os.path.join(binary_dir, 'config/formations-dt')
print("Waiting for player-controlled agent %s-%d: config_dir=%s, "\ print("Waiting for player-controlled agent %s-%d: config_dir=%s, "\
"uniform_number=%d, server_port=%d, server_addr=%s, team_name=%s, "\ "server_port=%d, server_addr=%s, team_name=%s, play_goalie=%r"
"play_goalie=%r"
% (self._offenseTeamName if play_offense else self._defenseTeamName, % (self._offenseTeamName if play_offense else self._defenseTeamName,
agent_num, config_dir, agent_ext_num, self._serverPort, "localhost", agent_num, config_dir, self._serverPort, "localhost", team_name,
team_name, agent_ext_num==1)) agent_ext_num==1))
if wait_until_join: if wait_until_join:
self.waitOnPlayer(agent_ext_num, play_offense) self.waitOnPlayer(agent_ext_num, play_offense)
return None return None
......
No preview for this file type
...@@ -106,7 +106,7 @@ to connect the offensive player:\\ ...@@ -106,7 +106,7 @@ to connect the offensive player:\\
\noindent \verb+Waiting for player-controlled agent base_left-0: +\\ \noindent \verb+Waiting for player-controlled agent base_left-0: +\\
\noindent \verb+ config_dir=HFO/bin/teams/base/config/formations-dt,+\\ \noindent \verb+ config_dir=HFO/bin/teams/base/config/formations-dt,+\\
\noindent \verb+ uniform_number=11, server_port=6000, server_addr=localhost,+\\ \noindent \verb+ server_port=6000, server_addr=localhost,+\\
\noindent \verb+ team_name=base_left, play_goalie=False+\\ \noindent \verb+ team_name=base_left, play_goalie=False+\\
By default, the server starts on port 6000, but may be changed as follows:\\ By default, the server starts on port 6000, but may be changed as follows:\\
...@@ -179,7 +179,7 @@ necessary to specify a \verb+record_dir+ in the \verb+connectToServer+ ...@@ -179,7 +179,7 @@ necessary to specify a \verb+record_dir+ in the \verb+connectToServer+
function:\\ function:\\
\\ \\
\noindent \verb+std::string record_dir = "log/";+\\ \noindent \verb+std::string record_dir = "log/";+\\
\noindent \verb+hfo.connectToServer(features, config_dir, unum, port, server_addr,+\\ \noindent \verb+hfo.connectToServer(features, config_dir, port, server_addr,+\\
\noindent \verb+ team_name, goalie, record_dir);+\\ \noindent \verb+ team_name, goalie, record_dir);+\\
\section{Randomness} \section{Randomness}
......
...@@ -14,7 +14,6 @@ using namespace hfo; ...@@ -14,7 +14,6 @@ using namespace hfo;
// Server Connection Options. See printouts from bin/HFO. // Server Connection Options. See printouts from bin/HFO.
feature_set_t features = HIGH_LEVEL_FEATURE_SET; feature_set_t features = HIGH_LEVEL_FEATURE_SET;
string config_dir = "bin/teams/base/config/formations-dt"; string config_dir = "bin/teams/base/config/formations-dt";
int unum = 11;
int port = 6000; int port = 6000;
string server_addr = "localhost"; string server_addr = "localhost";
string team_name = "base_left"; string team_name = "base_left";
...@@ -22,16 +21,16 @@ bool goalie = false; ...@@ -22,16 +21,16 @@ bool goalie = false;
#define PI 3.14159265 #define PI 3.14159265
int main(int argc, char** argv) { int main(int argc, char** argv) {
if (argc > 2) { if (argc > 1) {
unum = atoi(argv[1]); port = atoi(argv[1]);
port = atoi(argv[2]);
} }
// Create the HFO environment // Create the HFO environment
HFOEnvironment hfo; HFOEnvironment hfo;
// Connect to the server and request feature set. See manual for // Connect to the server and request feature set. See manual for
// more information on feature sets. // more information on feature sets.
hfo.connectToServer(features, config_dir, unum, port, server_addr, hfo.connectToServer(features, config_dir, port, server_addr,
team_name, goalie); team_name, goalie);
int unum = hfo.getUnum();
for (int episode=0; episode<10; episode++) { for (int episode=0; episode<10; episode++) {
int agent_on_ball = 7; int agent_on_ball = 7;
status_t status = IN_GAME; status_t status = IN_GAME;
......
...@@ -13,7 +13,7 @@ if __name__ == '__main__': ...@@ -13,7 +13,7 @@ if __name__ == '__main__':
# Connect to the server with the specified # Connect to the server with the specified
# feature set. See feature sets in hfo.py/hfo.hpp. # feature set. See feature sets in hfo.py/hfo.hpp.
hfo.connectToServer(HIGH_LEVEL_FEATURE_SET, hfo.connectToServer(HIGH_LEVEL_FEATURE_SET,
'bin/teams/base/config/formations-dt', 11, 6000, 'bin/teams/base/config/formations-dt', 6000,
'localhost', 'base_left', False) 'localhost', 'base_left', False)
for episode in xrange(10): for episode in xrange(10):
status = IN_GAME status = IN_GAME
......
...@@ -13,7 +13,7 @@ def main(): ...@@ -13,7 +13,7 @@ def main():
# Connect to the server with the specified # Connect to the server with the specified
# feature set. See feature sets in hfo.py/hfo.hpp. # feature set. See feature sets in hfo.py/hfo.hpp.
hfo.connectToServer(HIGH_LEVEL_FEATURE_SET, hfo.connectToServer(HIGH_LEVEL_FEATURE_SET,
'bin/teams/base/config/formations-dt', 11, 6000, 'bin/teams/base/config/formations-dt', 6000,
'localhost', 'base_left', False) 'localhost', 'base_left', False)
for episode in xrange(10): for episode in xrange(10):
status = IN_GAME status = IN_GAME
......
...@@ -12,18 +12,17 @@ using namespace hfo; ...@@ -12,18 +12,17 @@ using namespace hfo;
// Server Connection Options. See printouts from bin/HFO. // Server Connection Options. See printouts from bin/HFO.
feature_set_t features = LOW_LEVEL_FEATURE_SET; feature_set_t features = LOW_LEVEL_FEATURE_SET;
string config_dir = "bin/teams/base/config/formations-dt"; string config_dir = "bin/teams/base/config/formations-dt";
int unum = 11;
int port = 6000; int port = 6000;
string server_addr = "localhost"; string server_addr = "localhost";
string team_name = "base_left"; string team_name = "base_left";
bool goalie = false; bool goalie = true;
int main() { int main() {
// Create the HFO environment // Create the HFO environment
HFOEnvironment hfo; HFOEnvironment hfo;
// Connect to the server and request low-level feature set. See // Connect to the server and request low-level feature set. See
// manual for more information on feature sets. // manual for more information on feature sets.
hfo.connectToServer(features, config_dir, unum, port, server_addr, hfo.connectToServer(features, config_dir, port, server_addr,
team_name, goalie); team_name, goalie);
// Play 5 episodes // Play 5 episodes
for (int episode=0; episode<5; episode++) { for (int episode=0; episode<5; episode++) {
......
...@@ -12,7 +12,7 @@ if __name__ == '__main__': ...@@ -12,7 +12,7 @@ if __name__ == '__main__':
# Connect to the server with the specified # Connect to the server with the specified
# feature set. See feature sets in hfo.py/hfo.hpp. # feature set. See feature sets in hfo.py/hfo.hpp.
hfo.connectToServer(LOW_LEVEL_FEATURE_SET, hfo.connectToServer(LOW_LEVEL_FEATURE_SET,
'bin/teams/base/config/formations-dt', 11, 6000, 'bin/teams/base/config/formations-dt', 6000,
'localhost', 'base_left', False) 'localhost', 'base_left', False)
for episode in xrange(10): for episode in xrange(10):
status = IN_GAME status = IN_GAME
......
...@@ -12,7 +12,6 @@ using namespace hfo; ...@@ -12,7 +12,6 @@ using namespace hfo;
// Server Connection Options. See printouts from bin/HFO. // Server Connection Options. See printouts from bin/HFO.
feature_set_t features = HIGH_LEVEL_FEATURE_SET; feature_set_t features = HIGH_LEVEL_FEATURE_SET;
string config_dir = "bin/teams/base/config/formations-dt"; string config_dir = "bin/teams/base/config/formations-dt";
int unum = 11;
int port = 6000; int port = 6000;
string server_addr = "localhost"; string server_addr = "localhost";
string team_name = "base_left"; string team_name = "base_left";
...@@ -29,7 +28,7 @@ int main(int argc, char** argv) { ...@@ -29,7 +28,7 @@ int main(int argc, char** argv) {
HFOEnvironment hfo; HFOEnvironment hfo;
// Connect to the server and request high-level feature set. See // Connect to the server and request high-level feature set. See
// manual for more information on feature sets. // manual for more information on feature sets.
hfo.connectToServer(features, config_dir, unum, port, server_addr, hfo.connectToServer(features, config_dir, port, server_addr,
team_name, goalie); team_name, goalie);
for (int episode=0; episode<10; episode++) { for (int episode=0; episode<10; episode++) {
status_t status = IN_GAME; status_t status = IN_GAME;
......
...@@ -12,7 +12,6 @@ using namespace hfo; ...@@ -12,7 +12,6 @@ using namespace hfo;
// Server Connection Options. See printouts from bin/HFO. // Server Connection Options. See printouts from bin/HFO.
feature_set_t features = LOW_LEVEL_FEATURE_SET; feature_set_t features = LOW_LEVEL_FEATURE_SET;
string config_dir = "bin/teams/base/config/formations-dt"; string config_dir = "bin/teams/base/config/formations-dt";
int unum = 11;
int port = 6000; int port = 6000;
string server_addr = "localhost"; string server_addr = "localhost";
string team_name = "base_left"; string team_name = "base_left";
...@@ -52,7 +51,7 @@ int main(int argc, char** argv) { ...@@ -52,7 +51,7 @@ int main(int argc, char** argv) {
HFOEnvironment hfo; HFOEnvironment hfo;
// Connect to the server and request low-level feature set. See // Connect to the server and request low-level feature set. See
// manual for more information on feature sets. // manual for more information on feature sets.
hfo.connectToServer(features, config_dir, unum, port, server_addr, hfo.connectToServer(features, config_dir, port, server_addr,
team_name, goalie); team_name, goalie);
for (int episode=0; episode<10; episode++) { for (int episode=0; episode<10; episode++) {
status_t status = IN_GAME; status_t status = IN_GAME;
......
...@@ -16,7 +16,6 @@ using namespace hfo; ...@@ -16,7 +16,6 @@ using namespace hfo;
// Server Connection Options. See printouts from bin/HFO. // Server Connection Options. See printouts from bin/HFO.
feature_set_t features = HIGH_LEVEL_FEATURE_SET; feature_set_t features = HIGH_LEVEL_FEATURE_SET;
string config_dir = "bin/teams/base/config/formations-dt"; string config_dir = "bin/teams/base/config/formations-dt";
int unum = 11;
int port = 6000; int port = 6000;
string server_addr = "localhost"; string server_addr = "localhost";
string team_name = "base_left"; string team_name = "base_left";
...@@ -27,7 +26,7 @@ int main(int argc, char** argv) { ...@@ -27,7 +26,7 @@ int main(int argc, char** argv) {
HFOEnvironment hfo; HFOEnvironment hfo;
// Connect to the server and request low-level feature set. See // Connect to the server and request low-level feature set. See
// manual for more information on feature sets. // manual for more information on feature sets.
hfo.connectToServer(features, config_dir, unum, port, server_addr, hfo.connectToServer(features, config_dir, port, server_addr,
team_name, goalie); team_name, goalie);
for (int episode=0; episode<10; episode++) { for (int episode=0; episode<10; episode++) {
status_t status = IN_GAME; status_t status = IN_GAME;
......
...@@ -14,7 +14,6 @@ using namespace hfo; ...@@ -14,7 +14,6 @@ using namespace hfo;
// Server Connection Options. See printouts from bin/HFO. // Server Connection Options. See printouts from bin/HFO.
feature_set_t features = HIGH_LEVEL_FEATURE_SET; feature_set_t features = HIGH_LEVEL_FEATURE_SET;
string config_dir = "bin/teams/base/config/formations-dt"; string config_dir = "bin/teams/base/config/formations-dt";
int unum = 11;
int port = 6000; int port = 6000;
string server_addr = "localhost"; string server_addr = "localhost";
string team_name = "base_left"; string team_name = "base_left";
...@@ -25,7 +24,7 @@ int main(int argc, char** argv) { ...@@ -25,7 +24,7 @@ int main(int argc, char** argv) {
HFOEnvironment hfo; HFOEnvironment hfo;
// Connect to the server and request low-level feature set. See // Connect to the server and request low-level feature set. See
// manual for more information on feature sets. // manual for more information on feature sets.
hfo.connectToServer(features, config_dir, unum, port, server_addr, hfo.connectToServer(features, config_dir, port, server_addr,
team_name, goalie); team_name, goalie);
for (int episode=0; episode < 10; episode++) { for (int episode=0; episode < 10; episode++) {
status_t status = IN_GAME; status_t status = IN_GAME;
......
...@@ -13,7 +13,6 @@ using namespace hfo; ...@@ -13,7 +13,6 @@ using namespace hfo;
// Server Connection Options. See printouts from bin/HFO. // Server Connection Options. See printouts from bin/HFO.
feature_set_t features = HIGH_LEVEL_FEATURE_SET; feature_set_t features = HIGH_LEVEL_FEATURE_SET;
string config_dir = "bin/teams/base/config/formations-dt"; string config_dir = "bin/teams/base/config/formations-dt";
int unum = 11;
int port = 6000; int port = 6000;
string server_addr = "localhost"; string server_addr = "localhost";
string team_name = "base_left"; string team_name = "base_left";
...@@ -24,7 +23,7 @@ int main(int argc, char** argv) { ...@@ -24,7 +23,7 @@ int main(int argc, char** argv) {
HFOEnvironment hfo; HFOEnvironment hfo;
// Connect to the server and request feature set. See manual for // Connect to the server and request feature set. See manual for
// more information on feature sets. // more information on feature sets.
hfo.connectToServer(features, config_dir, unum, port, server_addr, hfo.connectToServer(features, config_dir, port, server_addr,
team_name, goalie); team_name, goalie);
float target_x = .82; float target_x = .82;
float target_y = .9; float target_y = .9;
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
./bin/HFO --offense-agents=2 --no-sync & ./bin/HFO --offense-agents=2 --no-sync &
sleep 5 sleep 5
./example/communication_agent 7 6000 & ./example/communication_agent 6000 &
sleep 5 sleep 5
./example/communication_agent 11 6000 & ./example/communication_agent 6000 &
# The magic line # The magic line
# $$ holds the PID for this script # $$ holds the PID for this script
......
...@@ -52,7 +52,7 @@ hfo_lib.HFO_new.restype = c_void_p ...@@ -52,7 +52,7 @@ hfo_lib.HFO_new.restype = c_void_p
hfo_lib.HFO_del.argtypes = [c_void_p] hfo_lib.HFO_del.argtypes = [c_void_p]
hfo_lib.HFO_del.restype = None hfo_lib.HFO_del.restype = None
hfo_lib.connectToServer.argtypes = [c_void_p, c_int, c_char_p, c_int, hfo_lib.connectToServer.argtypes = [c_void_p, c_int, c_char_p, c_int,
c_int, c_char_p, c_char_p, c_bool, c_char_p] c_char_p, c_char_p, c_bool, c_char_p]
hfo_lib.connectToServer.restype = None hfo_lib.connectToServer.restype = None
hfo_lib.getStateSize.argtypes = [c_void_p] hfo_lib.getStateSize.argtypes = [c_void_p]
hfo_lib.getStateSize.restype = c_int hfo_lib.getStateSize.restype = c_int
...@@ -85,7 +85,6 @@ class HFOEnvironment(object): ...@@ -85,7 +85,6 @@ class HFOEnvironment(object):
def connectToServer(self, def connectToServer(self,
feature_set=LOW_LEVEL_FEATURE_SET, feature_set=LOW_LEVEL_FEATURE_SET,
config_dir='bin/teams/base/config/formations-dt', config_dir='bin/teams/base/config/formations-dt',
uniform_number=11,
server_port=6000, server_port=6000,
server_addr='localhost', server_addr='localhost',
team_name='base_left', team_name='base_left',
...@@ -97,16 +96,14 @@ class HFOEnvironment(object): ...@@ -97,16 +96,14 @@ class HFOEnvironment(object):
feature_set: High or low level state features feature_set: High or low level state features
config_dir: Config directory. Typically HFO/bin/teams/base/config/ config_dir: Config directory. Typically HFO/bin/teams/base/config/
uniform_number: player's uniform number.
server_port: port to connect to server on server_port: port to connect to server on
server_addr: address of server server_addr: address of server
team_name: Name of team to join. team_name: Name of team to join.
play_goalie: is this player the goalie play_goalie: is this player the goalie
record_dir: record agent's states/actions/rewards to this directory record_dir: record agent's states/actions/rewards to this directory
""" """
hfo_lib.connectToServer(self.obj, feature_set, config_dir, uniform_number, hfo_lib.connectToServer(self.obj, feature_set, config_dir, server_port,
server_port, server_addr, team_name, play_goalie, server_addr, team_name, play_goalie, record_dir)
record_dir)
def getStateSize(self): def getStateSize(self):
""" Returns the number of state features """ """ Returns the number of state features """
......
...@@ -12,13 +12,12 @@ extern "C" { ...@@ -12,13 +12,12 @@ extern "C" {
void connectToServer(hfo::HFOEnvironment *hfo, void connectToServer(hfo::HFOEnvironment *hfo,
hfo::feature_set_t feature_set, hfo::feature_set_t feature_set,
char* config_dir, char* config_dir,
int uniform_number,
int server_port, int server_port,
char* server_addr, char* server_addr,
char* team_name, char* team_name,
bool play_goalie, bool play_goalie,
char* record_dir) { char* record_dir) {
return hfo->connectToServer(feature_set, config_dir, uniform_number, return hfo->connectToServer(feature_set, config_dir,
server_port, server_addr, team_name, server_port, server_addr, team_name,
play_goalie, record_dir); play_goalie, record_dir);
} }
......
...@@ -31,7 +31,6 @@ HFOEnvironment::~HFOEnvironment() { ...@@ -31,7 +31,6 @@ HFOEnvironment::~HFOEnvironment() {
void HFOEnvironment::connectToServer(feature_set_t feature_set, void HFOEnvironment::connectToServer(feature_set_t feature_set,
std::string config_dir, std::string config_dir,
int uniform_number,
int server_port, int server_port,
std::string server_addr, std::string server_addr,
std::string team_name, std::string team_name,
...@@ -40,7 +39,6 @@ void HFOEnvironment::connectToServer(feature_set_t feature_set, ...@@ -40,7 +39,6 @@ void HFOEnvironment::connectToServer(feature_set_t feature_set,
agent->setFeatureSet(feature_set); agent->setFeatureSet(feature_set);
rcsc::PlayerConfig& config = agent->mutable_config(); rcsc::PlayerConfig& config = agent->mutable_config();
config.setConfigDir(config_dir); config.setConfigDir(config_dir);
config.setPlayerNumber(uniform_number);
config.setPort(server_port); config.setPort(server_port);
config.setHost(server_addr); config.setHost(server_addr);
config.setTeamName(team_name); config.setTeamName(team_name);
...@@ -102,6 +100,10 @@ std::string HFOEnvironment::hear() { ...@@ -102,6 +100,10 @@ std::string HFOEnvironment::hear() {
return agent->getHearMsg(); return agent->getHearMsg();
} }
int HFOEnvironment::getUnum() {
return agent->getUnum();
}
Player HFOEnvironment::playerOnBall() { Player HFOEnvironment::playerOnBall() {
return agent->getPlayerOnBall(); return agent->getPlayerOnBall();
} }
......
...@@ -21,7 +21,6 @@ class HFOEnvironment { ...@@ -21,7 +21,6 @@ class HFOEnvironment {
* *
* feature_set: High or low level state features * feature_set: High or low level state features
* config_dir: Config directory. Typically HFO/bin/teams/base/config/ * config_dir: Config directory. Typically HFO/bin/teams/base/config/
* uniform_number: player's uniform number.
* server_port: port to connect to server on * server_port: port to connect to server on
* server_addr: address of server * server_addr: address of server
* team_name: Name of team to join. * team_name: Name of team to join.
...@@ -30,7 +29,6 @@ class HFOEnvironment { ...@@ -30,7 +29,6 @@ class HFOEnvironment {
*/ */
void connectToServer(feature_set_t feature_set=HIGH_LEVEL_FEATURE_SET, void connectToServer(feature_set_t feature_set=HIGH_LEVEL_FEATURE_SET,
std::string config_dir="bin/teams/base/config/formations-dt", std::string config_dir="bin/teams/base/config/formations-dt",
int uniform_number=11,
int server_port=6000, int server_port=6000,
std::string server_addr="localhost", std::string server_addr="localhost",
std::string team_name="base_left", std::string team_name="base_left",
...@@ -48,6 +46,9 @@ class HFOEnvironment { ...@@ -48,6 +46,9 @@ class HFOEnvironment {
virtual void say(const std::string& message); virtual void say(const std::string& message);
virtual std::string hear(); virtual std::string hear();
// Returns the uniform number of the player
virtual int getUnum();
// Get the current player holding the ball // Get the current player holding the ball
virtual Player playerOnBall(); virtual Player playerOnBall();
......
...@@ -154,6 +154,10 @@ Agent::~Agent() { ...@@ -154,6 +154,10 @@ Agent::~Agent() {
} }
} }
int Agent::getUnum() {
return world().self().unum();
}
bool Agent::initImpl(CmdLineParser & cmd_parser) { bool Agent::initImpl(CmdLineParser & cmd_parser) {
bool result = PlayerAgent::initImpl(cmd_parser); bool result = PlayerAgent::initImpl(cmd_parser);
......
...@@ -60,6 +60,7 @@ protected: ...@@ -60,6 +60,7 @@ protected:
inline hfo::status_t getGameStatus() { return game_status; } inline hfo::status_t getGameStatus() { return game_status; }
inline const hfo::Player& getPlayerOnBall() { return player_on_ball; } inline const hfo::Player& getPlayerOnBall() { return player_on_ball; }
inline const std::string& getHearMsg() { return hear_msg; } inline const std::string& getHearMsg() { return hear_msg; }
int getUnum(); // Returns the uniform number of the player
inline void setFeatureSet(hfo::feature_set_t fset) { feature_set = fset; } inline void setFeatureSet(hfo::feature_set_t fset) { feature_set = fset; }
inline std::vector<float>* mutable_params() { return &params; } inline std::vector<float>* mutable_params() { return &params; }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment