Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
Seminar-HFO
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Shashank Suhas
Seminar-HFO
Commits
a98beae9
Commit
a98beae9
authored
Feb 25, 2015
by
Matthew Hausknecht
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added an agent class.
parent
f53a4d22
Changes
3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1035 additions
and
0 deletions
+1035
-0
src/agent.cpp
src/agent.cpp
+828
-0
src/agent.h
src/agent.h
+100
-0
src/main_agent.cpp
src/main_agent.cpp
+107
-0
No files found.
src/agent.cpp
0 → 100644
View file @
a98beae9
This diff is collapsed.
Click to expand it.
src/agent.h
0 → 100644
View file @
a98beae9
// -*-c++-*-
/*
*Copyright:
Copyright (C) Hidehisa AKIYAMA
This code is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
This code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this code; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*EndCopyright:
*/
/////////////////////////////////////////////////////////////////////
#ifndef AGENT_H
#define AGENT_H
#include "action_generator.h"
#include "field_evaluator.h"
#include "communication.h"
#include <rcsc/player/player_agent.h>
#include <vector>
class
Agent
:
public
rcsc
::
PlayerAgent
{
private:
Communication
::
Ptr
M_communication
;
FieldEvaluator
::
ConstPtr
M_field_evaluator
;
ActionGenerator
::
ConstPtr
M_action_generator
;
public:
Agent
();
virtual
~
Agent
();
protected:
/*!
You can override this method.
But you must call PlayerAgent::initImpl() in this method.
*/
virtual
bool
initImpl
(
rcsc
::
CmdLineParser
&
cmd_parser
);
//! main decision
virtual
void
actionImpl
();
//! communication decision
virtual
void
communicationImpl
();
virtual
void
handleActionStart
();
virtual
void
handleActionEnd
();
virtual
void
handleServerParam
();
virtual
void
handlePlayerParam
();
virtual
void
handlePlayerType
();
virtual
FieldEvaluator
::
ConstPtr
createFieldEvaluator
()
const
;
virtual
ActionGenerator
::
ConstPtr
createActionGenerator
()
const
;
private:
bool
doPreprocess
();
bool
doShoot
();
bool
doForceKick
();
bool
doHeardPassReceive
();
public:
virtual
FieldEvaluator
::
ConstPtr
getFieldEvaluator
()
const
;
};
#endif
src/main_agent.cpp
0 → 100644
View file @
a98beae9
// -*-c++-*-
/*
*Copyright:
Copyright (C) Hidehisa AKIYAMA
This code is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
This code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this code; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*EndCopyright:
*/
/////////////////////////////////////////////////////////////////////
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "agent.h"
#include <rcsc/common/basic_client.h>
#include <iostream>
#include <cstdlib> // exit
#include <cerrno> // errno
#include <cstring> // strerror
#include <csignal> // sigaction
namespace
{
Agent
agent
;
/*-------------------------------------------------------------------*/
void
sig_exit_handle
(
int
)
{
std
::
cerr
<<
"Killed. Exiting..."
<<
std
::
endl
;
agent
.
finalize
();
std
::
exit
(
EXIT_FAILURE
);
}
}
/*-------------------------------------------------------------------*/
int
main
(
int
argc
,
char
**
argv
)
{
struct
sigaction
sig_action
;
sig_action
.
sa_handler
=
&
sig_exit_handle
;
sig_action
.
sa_flags
=
0
;
if
(
sigaction
(
SIGINT
,
&
sig_action
,
NULL
)
!=
0
||
sigaction
(
SIGTERM
,
&
sig_action
,
NULL
)
!=
0
||
sigaction
(
SIGHUP
,
&
sig_action
,
NULL
)
!=
0
)
/*if ( signal(SIGINT, &sigExitHandle) == SIG_ERR
|| signal(SIGTERM, &sigExitHandle) == SIG_ERR
|| signal(SIGHUP, &sigExitHandle) == SIG_ERR )*/
{
std
::
cerr
<<
__FILE__
<<
": "
<<
__LINE__
<<
": could not set signal handler: "
<<
std
::
strerror
(
errno
)
<<
std
::
endl
;
std
::
exit
(
EXIT_FAILURE
);
}
rcsc
::
BasicClient
client
;
if
(
!
agent
.
init
(
&
client
,
argc
,
argv
)
)
{
return
EXIT_FAILURE
;
}
/*
You should add your copyright message here.
*/
// std::cout << "*****************************************************************\n"
// << " This program is modified by <Team Name>\n"
// << " Copyright 20xx. <Your name>.\n"
// << " <Affiliation>\n"
// << " All rights reserved.\n"
// << "*****************************************************************\n"
// << std::flush;
/*
Do NOT remove the following copyright notice!
*/
std
::
cout
<<
"*****************************************************************
\n
"
<<
" This program is based on agent2d created by Hidehisa Akiyama.
\n
"
<<
" Copyright 2006 - 2011. Hidehisa Akiyama and Hiroki Shimora.
\n
"
<<
" All rights reserved.
\n
"
<<
"*****************************************************************
\n
"
<<
std
::
flush
;
client
.
run
(
&
agent
);
return
EXIT_SUCCESS
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment