PageRenderTime 26ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/aima-all/release/javadoc/aima-core/aima/core/search/adversarial/Game.html

http://aima-java.googlecode.com/
HTML | 358 lines | 299 code | 39 blank | 20 comment | 0 complexity | c3955f5bf17d6f47f02b8b10e4dc5c65 MD5 | raw file
Possible License(s): GPL-3.0, Apache-2.0
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <!--NewPage-->
  3. <HTML>
  4. <HEAD>
  5. <!-- Generated by javadoc (build 1.6.0_20) on Sun Jan 08 15:29:12 PST 2012 -->
  6. <TITLE>
  7. Game
  8. </TITLE>
  9. <META NAME="date" CONTENT="2012-01-08">
  10. <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
  11. <SCRIPT type="text/javascript">
  12. function windowTitle()
  13. {
  14. if (location.href.indexOf('is-external=true') == -1) {
  15. parent.document.title="Game";
  16. }
  17. }
  18. </SCRIPT>
  19. <NOSCRIPT>
  20. </NOSCRIPT>
  21. </HEAD>
  22. <BODY BGCOLOR="white" onload="windowTitle();">
  23. <HR>
  24. <!-- ========= START OF TOP NAVBAR ======= -->
  25. <A NAME="navbar_top"><!-- --></A>
  26. <A HREF="#skip-navbar_top" title="Skip navigation links"></A>
  27. <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
  28. <TR>
  29. <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
  30. <A NAME="navbar_top_firstrow"><!-- --></A>
  31. <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  32. <TR ALIGN="center" VALIGN="top">
  33. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  34. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  35. <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  36. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  37. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  38. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  39. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  40. </TR>
  41. </TABLE>
  42. </TD>
  43. <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
  44. </EM>
  45. </TD>
  46. </TR>
  47. <TR>
  48. <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  49. &nbsp;<A HREF="../../../../aima/core/search/adversarial/AlphaBetaSearch.html" title="class in aima.core.search.adversarial"><B>PREV CLASS</B></A>&nbsp;
  50. &nbsp;<A HREF="../../../../aima/core/search/adversarial/IterativeDeepeningAlphaBetaSearch.html" title="class in aima.core.search.adversarial"><B>NEXT CLASS</B></A></FONT></TD>
  51. <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  52. <A HREF="../../../../index.html?aima/core/search/adversarial/Game.html" target="_top"><B>FRAMES</B></A> &nbsp;
  53. &nbsp;<A HREF="Game.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
  54. &nbsp;<SCRIPT type="text/javascript">
  55. <!--
  56. if(window==top) {
  57. document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  58. }
  59. //-->
  60. </SCRIPT>
  61. <NOSCRIPT>
  62. <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
  63. </NOSCRIPT>
  64. </FONT></TD>
  65. </TR>
  66. <TR>
  67. <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  68. SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
  69. <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  70. DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
  71. </TR>
  72. </TABLE>
  73. <A NAME="skip-navbar_top"></A>
  74. <!-- ========= END OF TOP NAVBAR ========= -->
  75. <HR>
  76. <!-- ======== START OF CLASS DATA ======== -->
  77. <H2>
  78. <FONT SIZE="-1">
  79. aima.core.search.adversarial</FONT>
  80. <BR>
  81. Interface Game&lt;STATE,ACTION,PLAYER&gt;</H2>
  82. <DL>
  83. <DT><DT><B>Type Parameters:</B><DD><CODE>STATE</CODE> - Type which is used for states in the game.<DD><CODE>ACTION</CODE> - Type which is used for actions in the game.<DD><CODE>PLAYER</CODE> - Type which is used for players in the game.</DL>
  84. <DL>
  85. <DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../aima/core/environment/connectfour/ConnectFourGame.html" title="class in aima.core.environment.connectfour">ConnectFourGame</A>, <A HREF="../../../../aima/core/environment/tictactoe/TicTacToeGame.html" title="class in aima.core.environment.tictactoe">TicTacToeGame</A></DD>
  86. </DL>
  87. <HR>
  88. <DL>
  89. <DT><PRE>public interface <B>Game&lt;STATE,ACTION,PLAYER&gt;</B></DL>
  90. </PRE>
  91. <P>
  92. Artificial Intelligence A Modern Approach (3rd Edition): page 165.<br>
  93. <br>
  94. A game can be formally defined as a kind of search problem with the following
  95. elements: <br>
  96. <ul>
  97. <li>S0: The initial state, which specifies how the game is set up at the
  98. start.</li>
  99. <li>PLAYER(s): Defines which player has the move in a state.</li>
  100. <li>ACTIONS(s): Returns the set of legal moves in a state.</li>
  101. <li>RESULT(s, a): The transition model, which defines the result of a move.</li>
  102. <li>TERMINAL-TEST(s): A terminal test, which is true when the game is over
  103. and false TERMINAL STATES otherwise. States where the game has ended are
  104. called terminal states.</li>
  105. <li>UTILITY(s, p): A utility function (also called an objective function or
  106. payoff function), defines the final numeric value for a game that ends in
  107. terminal state s for a player p. In chess, the outcome is a win, loss, or
  108. draw, with values +1, 0, or 1/2 . Some games have a wider variety of possible
  109. outcomes; the payoffs in backgammon range from 0 to +192. A zero-sum game is
  110. (confusingly) defined as one where the total payoff to all players is the
  111. same for every instance of the game. Chess is zero-sum because every game has
  112. payoff of either 0 + 1, 1 + 0 or 1/2 + 1/2 . "Constant-sum" would have been a
  113. better term, but zero-sum is traditional and makes sense if you imagine each
  114. player is charged an entry fee of 1/2.</li>
  115. </ul>
  116. <P>
  117. <P>
  118. <DL>
  119. <DT><B>Author:</B></DT>
  120. <DD>Ruediger Lunde</DD>
  121. </DL>
  122. <HR>
  123. <P>
  124. <!-- ========== METHOD SUMMARY =========== -->
  125. <A NAME="method_summary"><!-- --></A>
  126. <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
  127. <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
  128. <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
  129. <B>Method Summary</B></FONT></TH>
  130. </TR>
  131. <TR BGCOLOR="white" CLASS="TableRowColor">
  132. <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
  133. <CODE>&nbsp;java.util.List&lt;<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">ACTION</A>&gt;</CODE></FONT></TD>
  134. <TD><CODE><B><A HREF="../../../../aima/core/search/adversarial/Game.html#getActions(STATE)">getActions</A></B>(<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A>&nbsp;state)</CODE>
  135. <BR>
  136. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
  137. </TR>
  138. <TR BGCOLOR="white" CLASS="TableRowColor">
  139. <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
  140. <CODE>&nbsp;<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A></CODE></FONT></TD>
  141. <TD><CODE><B><A HREF="../../../../aima/core/search/adversarial/Game.html#getInitialState()">getInitialState</A></B>()</CODE>
  142. <BR>
  143. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
  144. </TR>
  145. <TR BGCOLOR="white" CLASS="TableRowColor">
  146. <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
  147. <CODE>&nbsp;<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">PLAYER</A></CODE></FONT></TD>
  148. <TD><CODE><B><A HREF="../../../../aima/core/search/adversarial/Game.html#getPlayer(STATE)">getPlayer</A></B>(<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A>&nbsp;state)</CODE>
  149. <BR>
  150. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
  151. </TR>
  152. <TR BGCOLOR="white" CLASS="TableRowColor">
  153. <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
  154. <CODE>&nbsp;<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">PLAYER</A>[]</CODE></FONT></TD>
  155. <TD><CODE><B><A HREF="../../../../aima/core/search/adversarial/Game.html#getPlayers()">getPlayers</A></B>()</CODE>
  156. <BR>
  157. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
  158. </TR>
  159. <TR BGCOLOR="white" CLASS="TableRowColor">
  160. <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
  161. <CODE>&nbsp;<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A></CODE></FONT></TD>
  162. <TD><CODE><B><A HREF="../../../../aima/core/search/adversarial/Game.html#getResult(STATE, ACTION)">getResult</A></B>(<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A>&nbsp;state,
  163. <A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">ACTION</A>&nbsp;action)</CODE>
  164. <BR>
  165. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
  166. </TR>
  167. <TR BGCOLOR="white" CLASS="TableRowColor">
  168. <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
  169. <CODE>&nbsp;double</CODE></FONT></TD>
  170. <TD><CODE><B><A HREF="../../../../aima/core/search/adversarial/Game.html#getUtility(STATE, PLAYER)">getUtility</A></B>(<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A>&nbsp;state,
  171. <A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">PLAYER</A>&nbsp;player)</CODE>
  172. <BR>
  173. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
  174. </TR>
  175. <TR BGCOLOR="white" CLASS="TableRowColor">
  176. <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
  177. <CODE>&nbsp;boolean</CODE></FONT></TD>
  178. <TD><CODE><B><A HREF="../../../../aima/core/search/adversarial/Game.html#isTerminal(STATE)">isTerminal</A></B>(<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A>&nbsp;state)</CODE>
  179. <BR>
  180. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
  181. </TR>
  182. </TABLE>
  183. &nbsp;
  184. <P>
  185. <!-- ============ METHOD DETAIL ========== -->
  186. <A NAME="method_detail"><!-- --></A>
  187. <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
  188. <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
  189. <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
  190. <B>Method Detail</B></FONT></TH>
  191. </TR>
  192. </TABLE>
  193. <A NAME="getInitialState()"><!-- --></A><H3>
  194. getInitialState</H3>
  195. <PRE>
  196. <A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A> <B>getInitialState</B>()</PRE>
  197. <DL>
  198. <DD><DL>
  199. </DL>
  200. </DD>
  201. </DL>
  202. <HR>
  203. <A NAME="getPlayers()"><!-- --></A><H3>
  204. getPlayers</H3>
  205. <PRE>
  206. <A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">PLAYER</A>[] <B>getPlayers</B>()</PRE>
  207. <DL>
  208. <DD><DL>
  209. </DL>
  210. </DD>
  211. </DL>
  212. <HR>
  213. <A NAME="getPlayer(java.lang.Object)"><!-- --></A><A NAME="getPlayer(STATE)"><!-- --></A><H3>
  214. getPlayer</H3>
  215. <PRE>
  216. <A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">PLAYER</A> <B>getPlayer</B>(<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A>&nbsp;state)</PRE>
  217. <DL>
  218. <DD><DL>
  219. </DL>
  220. </DD>
  221. </DL>
  222. <HR>
  223. <A NAME="getActions(java.lang.Object)"><!-- --></A><A NAME="getActions(STATE)"><!-- --></A><H3>
  224. getActions</H3>
  225. <PRE>
  226. java.util.List&lt;<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">ACTION</A>&gt; <B>getActions</B>(<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A>&nbsp;state)</PRE>
  227. <DL>
  228. <DD><DL>
  229. </DL>
  230. </DD>
  231. </DL>
  232. <HR>
  233. <A NAME="getResult(java.lang.Object,java.lang.Object)"><!-- --></A><A NAME="getResult(STATE, ACTION)"><!-- --></A><H3>
  234. getResult</H3>
  235. <PRE>
  236. <A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A> <B>getResult</B>(<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A>&nbsp;state,
  237. <A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">ACTION</A>&nbsp;action)</PRE>
  238. <DL>
  239. <DD><DL>
  240. </DL>
  241. </DD>
  242. </DL>
  243. <HR>
  244. <A NAME="isTerminal(java.lang.Object)"><!-- --></A><A NAME="isTerminal(STATE)"><!-- --></A><H3>
  245. isTerminal</H3>
  246. <PRE>
  247. boolean <B>isTerminal</B>(<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A>&nbsp;state)</PRE>
  248. <DL>
  249. <DD><DL>
  250. </DL>
  251. </DD>
  252. </DL>
  253. <HR>
  254. <A NAME="getUtility(java.lang.Object,java.lang.Object)"><!-- --></A><A NAME="getUtility(STATE, PLAYER)"><!-- --></A><H3>
  255. getUtility</H3>
  256. <PRE>
  257. double <B>getUtility</B>(<A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">STATE</A>&nbsp;state,
  258. <A HREF="../../../../aima/core/search/adversarial/Game.html" title="type parameter in Game">PLAYER</A>&nbsp;player)</PRE>
  259. <DL>
  260. <DD><DL>
  261. </DL>
  262. </DD>
  263. </DL>
  264. <!-- ========= END OF CLASS DATA ========= -->
  265. <HR>
  266. <!-- ======= START OF BOTTOM NAVBAR ====== -->
  267. <A NAME="navbar_bottom"><!-- --></A>
  268. <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
  269. <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
  270. <TR>
  271. <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
  272. <A NAME="navbar_bottom_firstrow"><!-- --></A>
  273. <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  274. <TR ALIGN="center" VALIGN="top">
  275. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  276. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  277. <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  278. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  279. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  280. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  281. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  282. </TR>
  283. </TABLE>
  284. </TD>
  285. <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
  286. </EM>
  287. </TD>
  288. </TR>
  289. <TR>
  290. <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  291. &nbsp;<A HREF="../../../../aima/core/search/adversarial/AlphaBetaSearch.html" title="class in aima.core.search.adversarial"><B>PREV CLASS</B></A>&nbsp;
  292. &nbsp;<A HREF="../../../../aima/core/search/adversarial/IterativeDeepeningAlphaBetaSearch.html" title="class in aima.core.search.adversarial"><B>NEXT CLASS</B></A></FONT></TD>
  293. <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  294. <A HREF="../../../../index.html?aima/core/search/adversarial/Game.html" target="_top"><B>FRAMES</B></A> &nbsp;
  295. &nbsp;<A HREF="Game.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
  296. &nbsp;<SCRIPT type="text/javascript">
  297. <!--
  298. if(window==top) {
  299. document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  300. }
  301. //-->
  302. </SCRIPT>
  303. <NOSCRIPT>
  304. <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
  305. </NOSCRIPT>
  306. </FONT></TD>
  307. </TR>
  308. <TR>
  309. <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  310. SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
  311. <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  312. DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
  313. </TR>
  314. </TABLE>
  315. <A NAME="skip-navbar_bottom"></A>
  316. <!-- ======== END OF BOTTOM NAVBAR ======= -->
  317. <HR>
  318. </BODY>
  319. </HTML>