Main Page Files Productions Problem Spaces Operators Goal Hierarchy Groups Prod. By Type Todo All
Go to the documentation for this file...
00001 ##! 00002 # @file 00003 # 00004 # @brief Project documentation page 00005 # 00006 # This file provides documentation for the project. 00007 # 00008 # @devnote This is a devnote 00009 # 00010 # @devnote This is a second devnote 00011 # 00012 # @problem-space attack chase retreat tanksoar wander 00013 # @operator attack chase fire-missile move 00014 # radar-off radar-on 00015 # retreat turn wait wander 00016 00017 ##! 00018 # @mainpage TankSoar 25 00019 # 00020 # <h1>TankSoar 2.5 Tutorial</h1> 00021 # <p>Tank-Soar is a more complex game used for the exercises 00022 # in the second part of the tutorial. 00023 # <p> 00024 # Download TankSoar from one of these locations. 00025 # <ul> 00026 # <li>TankSoar30 for <a href="http://ai.eecs.umich.edu/soar/getstart/TankSoar30.tgz">Linux</a>, (3.2 MB). 00027 # Untar to create TankSoar25 directory. 00028 # <li>TankSoar30 for <a href="http://ai.eecs.umich.edu/soar/getstart/TankSoar25.EXE">Windows</a>, (1.9 MB). 00029 # Open to create TankSoar25 folder. 00030 # <li>TankSoar25 for <a href="http://ai.eecs.umich.edu/soar/getstart/TankSoar25.sea.hqx">Macintosh</a>, (2.6 MB). 00031 # UnBinHex and dbl-click on archive to create TankSoar25 folder. 00032 # </ul> 00033 # See the README file for you system to get started running TankSoar. 00034 # 00035 # <p> <b><a NAME="TankSoarNotes">Notes on TankSoar:</b></a></p> 00036 # <ul> 00037 # <li> There are two modes for running: 00038 # (1) a single decision cycle per environment update and 00039 # (2) run all agents until they produce output. 00040 # Multiple decisions per update, i.e. update environment on 00041 # agent output, is not the default. It is an option you select 00042 # under the "Tank" menu in the TankSoar control panel. 00043 # <li> You will notice that the bottom of the agent window is a 00044 # little bit different. There are two sets of buttons. The ones 00045 # on the left, the familiar RUN/STEP/STOP are grouped by the label 00046 # "Evironment," and will step all of the agents for whatever setting 00047 # is active (either decision cycle or wait until output.) The 00048 # buttons on the right, PHASE/DECISION, will step only the agent 00049 # in that interpreter. Clicking the phase button will cause the 00050 # agent to proceed to the next phase; the decision button will go 00051 # through a whole decision cycle. Note that neither the environment 00052 # nor any of the other agents will be updated regardless of how many 00053 # times you hit these buttons. 00054 # <li>If you have problems downloading these files, try something other 00055 # than Netscape. Some versions have had problems with binary transfer. 00056 # </ul> 00057 # <p>If you have any questions about TankSoar, contact the author Mazin Assanie at 00058 # <A HREF="mailto:mazina@eecs.umich.edu"> mazina@eecs.umich.edu</A>. 00059 00060 00061 00062 00063 ##! 00064 # @problem-space tanksoar 00065 # 00066 # @brief Agent top state 00067 # 00068 00069 ##! 00070 # @problem-space attack 00071 # 00072 # @brief Attacking an enemy 00073 # 00074 # @todo <b>THIS is BOLD</b> and <i>ITALIC</i> 00075 # @todo <b>THIS is BOLD</b> and <i>ITALIC</i> 00076 # 00077 # @parent-op attack 00078 00079 ##! 00080 # @operator attack 00081 # 00082 # @brief Attack an enemy 00083 # 00084 # @todo <b>THIS is BOLD</b> and <i>ITALIC</i> 00085 # 00086 # @parent-ps tanksoar 00087 00088 ##! 00089 # @problem-space chase 00090 # 00091 # @brief Chasing a retreating enemy 00092 # 00093 # @parent-op chase 00094 00095 ##! 00096 # @operator chase 00097 # 00098 # @brief Chase a retreating enemy 00099 # 00100 # @parent-ps tanksoar 00101 00102 ##! 00103 # @problem-space retreat 00104 # 00105 # @brief Retreating from attacking enemy 00106 # 00107 # @parent-op retreat 00108 00109 ##! 00110 # @operator retreat 00111 # 00112 # @brief Retreate from attacking enemy 00113 # 00114 # @parent-ps tanksoar 00115 00116 ##! 00117 # @problem-space wander 00118 # 00119 # @brief Wandering aimlessly around the world 00120 # 00121 # @parent-op wander 00122 # 00123 00124 ##! 00125 # @operator wander 00126 # 00127 # @brief Wander aimlessly around the world 00128 # 00129 # @parent-ps tanksoar 00130 00131 ##! 00132 # @operator fire-missile 00133 # 00134 # @brief Fire a missile 00135 # 00136 # Invokes <i>^actions.fire.weapon</i> = <b>missile</b> action. 00137 # 00138 # @parent-ps attack 00139 00140 ##! 00141 # @operator move 00142 # 00143 # @brief Move the tank 00144 # 00145 # Invokes <i>^actions.move.direction</i> = <b><dir></b> action. 00146 # 00147 # @parent-ps attack chase retreat wander 00148 00149 ##! 00150 # @operator radar-on 00151 # 00152 # @brief Turn on radar 00153 # 00154 # Invokes <i>^actions.radar.switch</i> = <b>on</b> action. 00155 # 00156 # @parent-ps chase 00157 00158 ##! 00159 # @operator radar-off 00160 # 00161 # @brief Turn off radar 00162 # 00163 # Invokes <i>^actions.radar.switch</i> = <b>off</b> action. 00164 # 00165 # @parent-ps wander 00166 00167 ##! 00168 # @operator turn 00169 # 00170 # @brief Turn tank 00171 # 00172 # Invokes <i>^actions.rotate.direction</i> = <b><dir></b> action. 00173 # 00174 # <p><b>Note:</b>The 'backward' operator is simply this operator 00175 # invoked twice with direction left. 00176 # 00177 # @parent-ps chase wander 00178 00179 ##! 00180 # @operator wait 00181 # 00182 # @brief Do nothing 00183 # 00184 # 00185 # @parent-ps retreat 00186 00187 ##! 00188 # @production elaborate*state*health*low 00189 # @brief Detects low health state. 00190 # 00191 # When low health is detected 00192 # (<i>^io.input-link.health</i> <= <b>200</b>) 00193 # adds <i>^health-energy</i> = <b>low</b> attribute 00194 # to top state. 00195 # 00196 # @problem-space tanksoar 00197 # @type elaboration 00198 # @ingroup tanksoar-elaborations