player_change_state.h

説明を見る。
00001 // -*-c++-*-
00002 
00008 /*
00009  *Copyright:
00010 
00011  Copyright (C) Hidehisa AKIYAMA
00012 
00013  This code is free software; you can redistribute it and/or
00014  modify it under the terms of the GNU Lesser General Public
00015  License as published by the Free Software Foundation; either
00016  version 2.1 of the License, or (at your option) any later version.
00017 
00018  This library is distributed in the hope that it will be useful,
00019  but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00021  Lesser General Public License for more details.
00022 
00023  You should have received a copy of the GNU Lesser General Public
00024  License along with this library; if not, write to the Free Software
00025  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00026 
00027  *EndCopyright:
00028  */
00029 
00031 
00032 #ifndef RCSC_COACH_PLAYER_CHANGE_STATE_H
00033 #define RCSC_COACH_PLAYER_CHANGE_STATE_H
00034 
00035 #include <map>
00036 
00037 namespace rcsc {
00038 
00039 class GameTime;
00040 class GameMode;
00041 
00046 class PlayerChangeState {
00047 private:
00048     int M_change_count;
00049 
00050     // key: type id
00051     // value: used count of that type
00052     std::map< int, int > M_teammate_type_count;
00053 
00054     int M_teammate_types[11];
00055     bool M_opponent_changed[11];
00056 
00057 
00058     // nocopyable
00059     PlayerChangeState( const PlayerChangeState & );
00060     PlayerChangeState & operator=( const PlayerChangeState & );
00061 public:
00062     PlayerChangeState();
00063 
00064     // setter methods
00065 
00066     // parse (ok change_player_type ...) or (change_player_type ...
00067     void parse( const char * msg,
00068                 const GameMode & game_mode,
00069                 const GameTime & current );
00070 private:
00071     void change(const int unum, const int type);
00072 
00073 public:
00074     // getter methos
00075 
00076     bool canChange( const int unum,
00077                     const int type,
00078                     const GameMode & game_mode,
00079                     const GameTime & current ) const;
00080 
00081     int getTeammateType( const int unum ) const;
00082     bool isOpponentChanged( const int unum ) const;
00083 
00084 
00085 };
00086 
00087 }
00088 
00089 #endif

librcscに対してThu May 1 15:41:20 2008に生成されました。  doxygen 1.5.0