Commit 34a71542 authored by drallensmith's avatar drallensmith

Merge branch 'randomization' into add_preprocess_action - bring in updates/fixes, avoid rebase

parents 260c2416 1c57d3f1
...@@ -73,6 +73,7 @@ example/mid_level_move_agent ...@@ -73,6 +73,7 @@ example/mid_level_move_agent
example/mid_level_kick_agent example/mid_level_kick_agent
example/mid_level_dribble_agent example/mid_level_dribble_agent
example/communication_agent example/communication_agent
example/hand_coded_defense_agent
# Dependency directories # Dependency directories
librcsc-prefix/ librcsc-prefix/
......
#!/bin/bash
# HAS TO BE RUN FROM EXAMPLE DIR DUE TO hand_coded_defense_agent CONFIG!
../bin/HFO --offense-npcs=2 --defense-agents=1 --defense-npcs=1 --trials 20 --headless --port=7000 &
sleep 5
./hand_coded_defense_agent &> agent1.txt &
sleep 5
# The magic line
# $$ holds the PID for this script
# Negation means kill by process group id instead of PID
trap "kill -TERM -$$" SIGINT
wait
\ No newline at end of file
#!/bin/bash
./bin/HFO --offense-npcs=2 --defense-agents=1 --defense-npcs=1 --trials 20 --headless &
sleep 5
./example/hand_coded_defense_agent.py &> agent1.txt &
sleep 5
# The magic line
# $$ holds the PID for this script
# Negation means kill by process group id instead of PID
trap "kill -TERM -$$" SIGINT
wait
\ No newline at end of file
#!/bin/bash
./bin/HFO --offense-npcs=3 --defense-agents=1 --defense-npcs=2 --trials 20 --headless &
sleep 5
./example/hand_coded_defense_agent.py &> agent1.txt &
sleep 5
# The magic line
# $$ holds the PID for this script
# Negation means kill by process group id instead of PID
trap "kill -TERM -$$" SIGINT
wait
\ No newline at end of file
...@@ -208,7 +208,8 @@ int main(int argc, char** argv) { ...@@ -208,7 +208,8 @@ int main(int argc, char** argv) {
HFOEnvironment hfo; HFOEnvironment hfo;
int random = 0; int random = 0;
double numGoals = 0; double numGoals = 0;
double numEpisodes = 5000; int numEpisodes = 5000;
double actualNumEpisodes = 0;
// 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, port, server_addr, hfo.connectToServer(features, config_dir, port, server_addr,
...@@ -233,10 +234,10 @@ int main(int argc, char** argv) { ...@@ -233,10 +234,10 @@ int main(int argc, char** argv) {
string s = hfo::ActionToString(a.action) + " " +to_string(a.param) + "\n"; string s = hfo::ActionToString(a.action) + " " +to_string(a.param) + "\n";
// std::cout << s; // std::cout << s;
} else { } else {
std::cout <<"Randm"; std::cout <<"Random";
action_t a = get_random_high_lv_action(); action_t a = get_random_high_lv_action();
if (a == hfo :: MARK_PLAYER) { if (a == hfo :: MARK_PLAYER) {
hfo.act(NOOP); hfo.act(NOOP); // why not MOVE?
} else { } else {
hfo.act(a); hfo.act(a);
} }
...@@ -249,8 +250,14 @@ int main(int argc, char** argv) { ...@@ -249,8 +250,14 @@ int main(int argc, char** argv) {
// Check what the outcome of the episode was // Check what the outcome of the episode was
cout << "Episode " << episode << " ended with status: " cout << "Episode " << episode << " ended with status: "
<< StatusToString(status) << std::endl; << StatusToString(status) << std::endl;
if (status==SERVER_DOWN) {
break;
} else {
actualNumEpisodes++;
}
} }
double cost = numGoals/numEpisodes; double cost = numGoals/actualNumEpisodes;
hfo.act(QUIT); hfo.act(QUIT);
//write_cost(cost); //write_cost(cost);
}; };
......
This diff is collapsed.
...@@ -923,10 +923,12 @@ bool Agent::doMarkPlayer(int unum) { ...@@ -923,10 +923,12 @@ bool Agent::doMarkPlayer(int unum) {
int count = 0; int count = 0;
for ( PlayerPtrCont::const_iterator it = wm.opponentsFromSelf().begin(); it != o_end; ++it ) { for ( PlayerPtrCont::const_iterator it = wm.opponentsFromSelf().begin(); it != o_end; ++it ) {
if ( (*it)->distFromBall() < 5 ) { if ( (*it)->distFromBall() < 5 ) {
if ((kicker_unum == -1) || (kicker_unum != unum)) { // try to obey action instruction
kicker_pos = (*it)->pos(); kicker_pos = (*it)->pos();
kicker_unum = (*it)->unum(); kicker_unum = (*it)->unum();
} }
} }
}
for ( PlayerPtrCont::const_iterator it = wm.opponentsFromSelf().begin(); it != o_end; ++it ) { for ( PlayerPtrCont::const_iterator it = wm.opponentsFromSelf().begin(); it != o_end; ++it ) {
if ( (*it)-> unum() == unum ) { if ( (*it)-> unum() == unum ) {
......
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