⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 factsbase.cpp.svn-base

📁 一个巴西大学编写的2D仿真组足球机器人程序
💻 SVN-BASE
字号:
/* *  This program 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 2 of the License, or *  (at your option) any later version. * *  This program 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 program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *//*! \file FactsBase.cpp<pre><b>File:</b>          FactsBase.cpp<b>Project:</b>       Robocup Soccer Simulation Team: MecaTeam<b>Authors:</b>       Orivaldo Vieira e Augusto Loureiro<b>Created:</b>       10/09/2006<b>Last Revision:</b> $ID$<b>Contents:</b>      Este arquivo cont�m a implementa��o da classe                FactsBase. A FactsBase � classe que disponibiliza a               a Base de fatos para um sistema baseado em conhecimento.<hr size=2><h2><b>Changes</b></h2><b>Date</b>             <b>Author</b>          <b>Comment</b>19/09/2006       Orivaldo Vieira      Documenta��o</pre>*/#include "FactsBase.h"/* Este construtor cria um Base de Fatos, uma estrutura de dados para armazenar os fatos no formalismo da l�gica (objeto atributo valor).  * Em seguida adiciona a base de fatos, alguns fatos que representam o estado inicial da partida.*/FactsBase::FactsBase(){   m_storeLogicPattern = new LogicDataStructure;/*   addLogicPattern("player","ball_kickable","false");   addLogicPattern("player","localization","AREA_DEFENSE");   addLogicPattern("player","fastest_to_ball","false");   addLogicPattern("oponnent","close_to_player","false");   addLogicPattern("reactive_behavior","active","none");   addLogicPattern("ball","position","unknown");   addLogicPattern("teammate","has_ball","false");   addLogicPattern("game","mode","PM_BEFORE_KICK_OFF");	   addLogicPattern("player","bestOptionKick","none");   addLogicPattern("player","confidence_for_kick","false");   //addLogicPattern("ball","atuation_zone","false");   addLogicPattern("player", "pass_ball", "teammate_10");   addLogicPattern("player","front_space","free");   addLogicPattern("player","next_line_r","false");   addLogicPattern("player","next_line_of_deep","false");   addLogicPattern("midplayers","has_ball","false");   addLogicPattern("attackplayers","has_ball","false");   addLogicPattern("dead_ball","situation","none");   addLogicPattern("player", "back_goalie", "false");   addLogicPattern("player", "distance_to_goalie", "dont_small");   addLogicPattern("pass_condition","teammate_three","false");   addLogicPattern("pass_condition","teammate_four","false");   addLogicPattern("pass_condition","teammate_five","false");   addLogicPattern("pass_condition","teammate_six","false");   addLogicPattern("pass_condition","teammate_seven","false");   addLogicPattern("pass_condition","teammate_eight","false");   addLogicPattern("pass_condition","teammate_nine","false");   addLogicPattern("pass_condition","teammate_ten","false");   addLogicPattern("pass_condition","teammate_eleven","false");   addLogicPattern("player","sick","false");   addLogicPattern("ball","orientationLR","left");   addLogicPattern("ball","orientationNS","south");*/}FactsBase::~FactsBase(){   delete m_storeLogicPattern;}/*! Este m�todo adiciona um padr�o l�gico na base de fatos. A base de fatos    organiza  suas informa��es atrav�s de uma estrutura de dados que usa o    princ�pio de �rvores bin�rias.    \param newFact o novo padr�o l�gico (fato) a ser adicionado na base de           fatos.    \return false  se j� existe o padr�o l�gico na base de fatos e true se            n�o existe e foi adicionado. */bool FactsBase::addLogicPattern (LogicPattern* newFact){    return m_storeLogicPattern->insert(newFact);}/*! Este  m�todo  adiciona um padr�o l�gico fatorado em objeto, atributo  e    valor na base de fatos.    \param objectName nome do objeto a ser inclu�do na base de fatos.    \param attribute atributo do objeto a ser inclu�do na base de fatos.    \param value valor do objeto a ser inclu�do na base de fatos.    \return true se adi��o realizada com sucesso false caso contr�rio.*/bool FactsBase::addLogicPattern (string objectName, string attribute, string value){    return m_storeLogicPattern->insert(objectName,attribute,value);}/*! Este m�todo consulta da base de fatos se existe um dado padr�o l�gico.    \param newFact um padr�o l�gico para consulta.    \return true se o padr�o l�gico foi encontrado false caso contr�rio.*/bool FactsBase::queryLogicPattern (LogicPattern* newFact){   return m_storeLogicPattern->query(newFact);}/*! Este  m�todo consulta na base de fatos se existe um dado padr�o l�gico    fatorado em objeto, atributo e valor.    \param objectName nome do padr�o l�gico para consulta.    \param attribute atributo do padr�o l�gico para consulta.    \param value valor do padr�o l�gico para consulta.    \return true se o padr�o l�gico foi encontrado false caso contr�rio. */bool FactsBase::queryLogicPattern (string objectName, string attribute, string value){   LogicPattern *pattern;   bool result;   pattern = new LogicPattern(objectName,attribute,value);   result = m_storeLogicPattern->query(pattern);   delete pattern;   return result;}LogicPattern* FactsBase::selectObjectAndAttribute (LogicPattern* pattern){	return m_storeLogicPattern->selectObjectAndAttribute(pattern);}/*! Este m�todo apaga o valor de um atributo de um dado objeto. O intuito de    apagar � para deixar a base de fatos sem informa��es sobre o valor de um    atributo de um objeto e n�o � apagar todas as inforam��es sobre o objeto.    Vale resaltar que n�o se exclui um objeto da base de fatos.    \param objectName nome do objeto a ser limpado.    \param attribute nome do atributo a ser limpado.    \return true se atributo do objeto foi alterado ou false caso o atributo            n�o tenha sido encontrado. */bool FactsBase::clearLogicPattern (string objectName, string attribute){    return m_storeLogicPattern->insert(objectName,attribute,"");}/*! Este  m�todo carrega a base de fatos com padr�es l�gicos extra�dos de um    arquivo.   \param fileName nome do arquivo que cont�m os padr�es l�gicos   \return true se o arquivo foi aberto com sucesso ou false caso contr�rio.*/bool FactsBase::loadLogicPatternFile (string fileName){  string object,attribute,value;  std::ifstream fileFacts( fileName.c_str() );  if (fileFacts.is_open())  {    while (! fileFacts.eof() )    {      fileFacts >> object >> attribute >> value;      m_storeLogicPattern->insert(object,attribute,value);    }    fileFacts.close();    return true;  }  return false;}/*! Este m�todo coloca na sa�da padr�o o estado de todos os objetos presentes    na base de fatos*/void FactsBase::print(void){   std::cout << " - - - Facts Base - - - " << std::endl;   m_storeLogicPattern->printTree(1);   std::cout << std::endl;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -