亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? soccertypes.c

?? uva trilearn的robocup源程序
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/*Copyright (c) 2000-2002, Jelle Kok, University of AmsterdamAll rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the University of Amsterdam nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*//*! \file SoccerTypes.C<pre><b>File:</b>          SoccerTypes.C<b>Project:</b>       Robocup Soccer Simulation Team: UvA Trilearn<b>Authors:</b>       Jelle Kok<b>Created:</b>       28/11/2000<b>Last Revision:</b> $ID$<b>Contents:</b>      This file contains the different enumerations and               constants that are important in the Soccer Server.               Furthermore it contains the class SoccerCommand which is               used to denote the different possible soccer commands and               the class SoccerTypes that contains all kind of static               methods to translate text strings that are received from               the server into the soccer types (=enumerations) that               are defined here.  Finally it contains the Time class which               holds a two-tuple that represents the time in the soccer server.<hr size=2><h2><b>Changes</b></h2><b>Date</b>             <b>Author</b>          <b>Comment</b>28/11/2000       Jelle Kok       Initial version created</pre>*/#include <iostream>     // needed for outputsteam in showcerr#include <stdio.h>        // needed for sprintf#ifdef Solaris  #include <strings.h>    // needed for strncmp#else  #include <string>     // needed for strncmp#endifusing namespace std;#include "SoccerTypes.h"#include "Parse.h"/******************************************************************************//********************** CLASS TIME ********************************************//******************************************************************************//*! This is the constructor for the Time class, it receives two arguments. The    actual time and how long the time has stopped.    \param iTime actual time    \param iStopped number of cycles time stopped */Time::Time( int iTime, int iStopped ){  m_iTime    = iTime;  m_iStopped = iStopped;}/*! This method updates the time to 'iTime'. When the actual time was already    'iTime' the current time is kept unchanged and the time stopped is raised    with one. Otherwise the actual time is changed to 'iTime' and the stopped    time is set to 0.    \param iTime new time    \return boolean indicating whether update was successful */bool Time::updateTime( int iTime ){  if( m_iTime == iTime )    m_iStopped++;  else  {    m_iTime    = iTime;    m_iStopped = 0;  }  return true;}/*! This methods sets the stopped time, which denotes the number of cycles time    stood still.    \param iTime new stopped time    \return boolean indicating whether update was successful */bool Time::setTimeStopped( int iTime ){  m_iStopped = iTime;  return true;}/*! This method returns the actual time, that is the number of cycles that have    passed.    \return actual time. */int Time::getTime( ){  return m_iTime;}/*! This method returns the time the time has stopped, that is the number of    cycles the time stood on the current value.    \return stopped time */int Time::getTimeStopped( ){  return m_iStopped;}/*! This method returns the time difference between two time objects. When the    time is stopped, but the actual time differens the value -1 is returned    otherwise the difference in stopped time is returned. When the time is not    stopped, the difference in the actual time is returned.    \param t Time with which current time should be compared    \return time difference */int Time::getTimeDifference( Time t ){  if( getTime() < t.getTime() )    return getTime() - t.getTime();  else if( getTime() == t.getTime() )    return getTimeStopped() - t.getTimeStopped();  else    return getTime() - t.getTime();}/*! This method returns a boolean value indicating whether the time currently is    stopped.    \return boolean indicating whether the time currently is stopped */bool Time::isStopped( ){  return m_iStopped != 0;}/*! This method returns a new time class denoting the time when 'iCycles' are    added to the current time.    There are different situations possible. When the added time is positive and    the time stands still, the cycles are added to the stopped time, otherwise    they are added to the actual time. When the added time is negative and the    time stands still, the cycles are subtracted from the stopped time.    Otherwise the time is subtracted from the actual time.    \param iCycles denotes the time that should be added (when negative    subtracted) to the current time    \return new time object with 'iCycles' added to the current time. 'iCycles'    can be negative in which case a subtraction is performed. */Time Time::getTimeAddedWith( int iCycles ){  int iTime    = getTime();  int iStopped = getTimeStopped();  if( iCycles > 0 )                            // add cycles  {    if( iStopped > 0 )                         // time stopped      iStopped += iCycles;                     // add it to stopped cycles    else      iTime    += iCycles;                     // otherwise add to normal time  }  else                                         // subtract cycles  {    if( iStopped > 0 && iStopped >= iCycles)   // time stopped and enough time      iStopped += iCycles;                     // subtract cycle (iCycles=neg)    else if( iStopped > 0 )                    // stopped but not enough time    {      iStopped = 0;                            // take as many as possible      iCycles += iStopped;      iTime   += iCycles;                      // and take rest from m_iTime    }    else                                       // time not stopped      iTime   += iCycles;                      // take all from m_iTime    if( iTime < 0 )      iTime = 0;                               // negative time not possible  }  return Time( iTime, iStopped );}/*! This method adds 'iCycles' to the current time. The current values are    updated. The method getTimeAddedWith is used to calculated the new time.    \param iCycles time added to the current time    \return boolean indicating whether update was successful */bool Time::addToTime( int iCycles ){  *this = getTimeAddedWith( iCycles );  return true;}/*! This method prints the time to the specified output stream. Time is printed    as the two tuple (t,s) where t denotes the actual time and s the number of    stopped cycles.    \param os output stream to which output is written (default cout) */void Time::show( ostream &os ){  os << "(" << getTime() << "," << getTimeStopped() << ")";}/*! This method returns the time as if 'i' cycles would be added to the current    time. The method getTimeAddedWith is used for this. No changes are made to    the current object.    \param iCycles denotes the time that should be added to the current time    \return new time object with 'iCycles' added to the current time */Time Time::operator + ( const int &i ){  return getTimeAddedWith( i );}/*! This method returns the result of adding time 't' to the current    time. No changes are made to the current object.    It is defined by (t1,s1) + (t2,s2) = (t1+t2,s2). The stopped time of the    first time tuple is neglected, since this has already been passed.    \param t Time object that should be added to the current time    \return new time object with 't' added to the current time */Time Time::operator + ( Time t ){  return Time( getTime() + t.getTime(), t.getTimeStopped() );}/*! This method returns the time as if 'i' cycles would be subtracted from the    current time. The method getTimeAddedWith is used for this. No changes are    made to the current object.    \param iCycles denotes the time that should be subtracted from the time    \return new time object with 'iCycles' subracted  */Time Time::operator - ( const int &i ){  return getTimeAddedWith( -i );}/*! This method returns the result the difference between the two times and    is equal to the method getTimeDifference.    \param t Time object that should be subtracted from the current time    \return new time object with 't' subtracted from the current time */int Time::operator - ( Time t ){  return getTimeDifference( t );}/*! This method returns a new time object (i,0). The argument 'i' is thus    denoted as the actual time.    \param i new time    \return time object */void Time::operator = ( const int &i ){  updateTime( i );  setTimeStopped( 0 );}/*! This method updates the time by adding 'i' cycles to the current    time. The method addToTime is used for this.    \param i denotes the time that should be added to the current time */void Time::operator += ( const int &i ){  addToTime( i );}/*! This method updates the time by adding the time 't' to the current    time.    It is defined by (t1,s1) + (t2,s2) = (t1+t2,s2). The stopped time of the    first time tuple is neglected, since this has already been passed.    \param t Time object that should be added to the current time */void Time::operator += ( Time t ){  updateTime    ( getTime() + t.getTime() );  setTimeStopped( t.getTimeStopped()      );}/*! This method updates the time by subtractign 'i' cycles from the    current time. The method addToTime is used for this with '-i' as    its argument.    \param i denotes the time that should be subtracted */void Time::operator -= ( const int &i ){  addToTime( -i );}/*! This method updates the time by subtracting time 't' from the current    time. It is defined by (t1,s1) + (t2,s2) = (t1-t2,0). The stopped time is    set to zero.    \param t Time object that should be subtracted from the current time */void Time::operator -= ( Time t ){  updateTime    ( getTime() - t.getTime() );  setTimeStopped( 0                       );}/*! This method returns a boolean indicating whether the current time is inequal    to the time specified by the integer 'i'. 'i' is first converted to the time    object (i,0). When the time difference returned by getTimeDifference between    these two time objects is inequal to zero true is returned, false otherwise    \param i actual time with which current time should be compared    \return bool indicating whether current time equals specified time */bool Time::operator != ( const int &i ){  return getTimeDifference( Time(i, 0) ) != 0;}/*! This method returns a boolean indicating whether the current time is inequal    to the time t. When the time difference returned by getTimeDifference    between these two time objects is inequal to zero true is returned, false    otherwise.    \param t time with which current time should be compared    \return bool indicating whether current time equals specified time */bool Time::operator != ( Time t ){  return getTimeDifference( t ) != 0;}/*! This method returns a boolean indicating whether the current time equals    the time as specified by the integer 'i'. 'i' is first converted to the time    object (i,0). When the time difference returned by getTimeDifference between

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久夜| 亚洲v中文字幕| 精品国产电影一区二区| 91麻豆精品国产综合久久久久久| 色综合婷婷久久| 精品国产亚洲一区二区三区在线观看| 欧美性xxxxxxxx| 91国产免费观看| 色噜噜狠狠一区二区三区果冻| 97久久超碰国产精品| 99久久久无码国产精品| 大桥未久av一区二区三区中文| 国产成人精品免费视频网站| 国产一区二区调教| 国产精品一区一区三区| 国产精品夜夜爽| 国产成人综合在线观看| 成人综合激情网| jvid福利写真一区二区三区| 91视频在线观看| 欧美做爰猛烈大尺度电影无法无天| 91美女在线视频| 精品视频一区三区九区| 9191久久久久久久久久久| 欧美一卡二卡在线观看| 精品伦理精品一区| 久久精品在这里| 亚洲国产精品成人久久综合一区| 成人欧美一区二区三区黑人麻豆| 中文字幕一区二区视频| 亚洲最大色网站| 欧美aa在线视频| 国产美女精品人人做人人爽| 成人国产精品免费网站| 色噜噜狠狠成人网p站| 欧美肥妇毛茸茸| 久久丝袜美腿综合| 最新热久久免费视频| 亚洲国产精品尤物yw在线观看| 蜜臀久久99精品久久久久久9| 国产一区视频网站| 99久久99久久综合| 欧美女孩性生活视频| 精品国产一区二区在线观看| 国产精品久久久久久久久免费桃花 | 色呦呦一区二区三区| 3751色影院一区二区三区| 久久久激情视频| 亚洲一区二区综合| 久久99久久久久久久久久久| 丰满放荡岳乱妇91ww| 欧美日韩中文国产| 日韩激情一二三区| 国产一区久久久| 色久综合一二码| 久久亚洲一级片| 一片黄亚洲嫩模| 国产一区二区h| 欧美亚洲免费在线一区| 久久久国产精品午夜一区ai换脸| 亚洲三级电影网站| 久久精品99国产精品日本| av福利精品导航| 91精品国产欧美一区二区成人 | 美腿丝袜亚洲一区| 91小视频免费观看| 欧美v日韩v国产v| 一区二区欧美视频| 国产成人免费视频网站| 欧美酷刑日本凌虐凌虐| 成人欧美一区二区三区| 麻豆免费看一区二区三区| 色先锋久久av资源部| 久久久久成人黄色影片| 日韩有码一区二区三区| 91同城在线观看| 久久免费偷拍视频| 日韩**一区毛片| 色婷婷久久综合| 国产精品网站在线播放| 久久国产精品99久久人人澡| 欧美三级在线视频| 一区在线观看免费| 国产一区二区三区高清播放| 欧美日韩黄色一区二区| 中文字幕日韩一区| 国产丶欧美丶日本不卡视频| 日韩欧美国产1| 亚洲国产精品久久人人爱| 99热在这里有精品免费| 国产日本欧美一区二区| 欧美日韩视频专区在线播放| 国产精品久久久久久久久久免费看| 久久精品久久久精品美女| 7777精品伊人久久久大香线蕉经典版下载 | 成人美女视频在线观看| 精品少妇一区二区三区日产乱码 | 亚洲国产精品视频| 99久久99久久久精品齐齐| 久久精品欧美一区二区三区麻豆| 免费高清在线一区| 7777精品伊人久久久大香线蕉的| 亚洲尤物在线视频观看| 色婷婷av久久久久久久| 18成人在线视频| 97精品电影院| 综合色中文字幕| 91在线丨porny丨国产| 国产精品乱码人人做人人爱| 福利电影一区二区三区| 国产网红主播福利一区二区| 国产精品一区在线观看你懂的| 精品国产一区二区三区四区四| 美女精品自拍一二三四| 欧美成人欧美edvon| 精品一区二区三区日韩| 久久众筹精品私拍模特| 国产精品1区2区| 中文字幕精品在线不卡| av一本久道久久综合久久鬼色| 中文字幕在线观看不卡| 91小视频在线观看| 亚洲国产日韩一级| 6080yy午夜一二三区久久| 青青草精品视频| 精品99一区二区三区| 国产成人三级在线观看| 国产精品国产三级国产aⅴ中文| 99精品国产热久久91蜜凸| 一区二区高清在线| 555www色欧美视频| 精品一区二区在线视频| 国产欧美一区二区在线| 91女人视频在线观看| 亚洲成av人**亚洲成av**| 91精品国产一区二区三区蜜臀 | 欧美浪妇xxxx高跟鞋交| 欧美日韩精品一区二区三区四区| 亚洲一区二区精品视频| 91精品国产色综合久久久蜜香臀| 久久机这里只有精品| 国产欧美1区2区3区| 色又黄又爽网站www久久| 日韩成人精品在线| 久久精品亚洲麻豆av一区二区| 97精品电影院| 日本sm残虐另类| 欧美韩国日本不卡| 欧美日韩综合在线| 久久国产精品色| 亚洲欧美日韩系列| 日韩一区二区电影| 五月激情六月综合| 精品久久久网站| 91美女片黄在线观看91美女| 日本伊人午夜精品| 国产精品视频免费| 欧美精品一二三区| 成人国产精品免费观看视频| 午夜成人免费电影| 中文字幕成人在线观看| 制服.丝袜.亚洲.另类.中文 | 日韩一区二区三区精品视频| 成人精品一区二区三区四区| 同产精品九九九| 国产精品乱人伦| 日韩天堂在线观看| 91碰在线视频| 国产福利一区二区三区视频| 亚洲一区二区三区小说| 久久久久国产精品麻豆| 欧美午夜一区二区三区| 国产精品一区专区| 日韩av一区二区在线影视| 国产精品国产自产拍高清av | 成人小视频在线观看| 丝瓜av网站精品一区二区| 国产精品嫩草影院av蜜臀| 日韩亚洲欧美成人一区| 91视频你懂的| 国产99一区视频免费| 轻轻草成人在线| 成人avav影音| 久久国产精品99精品国产| 亚洲一区二区三区四区在线观看 | 欧美大片在线观看| 欧美午夜一区二区三区| 99久久综合狠狠综合久久| 紧缚捆绑精品一区二区| 天天射综合影视| 亚洲免费观看视频| 国产精品视频九色porn| 久久网站最新地址| 日韩亚洲欧美成人一区| 欧美欧美午夜aⅴ在线观看| 色婷婷亚洲综合| 99re在线精品| 99精品国产热久久91蜜凸| 高潮精品一区videoshd| 国产成人午夜片在线观看高清观看|