Terminal/java-algo/build/docs/javadoc/com/c1games/terminal/algo/GameIO.html
2021-06-01 10:50:27 -05:00

305 lines
13 KiB
HTML

<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>GameIO (algo API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: package: com.c1games.terminal.algo, interface: GameIO">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":6,"i1":1,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<a id="skip.navbar.top">
<!-- -->
</a>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.c1games.terminal.algo</a></div>
<h1 title="Interface GameIO" class="title">Interface GameIO</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="io/DefaultGameIO.html" title="class in com.c1games.terminal.algo.io">DefaultGameIO</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">GameIO</span></pre>
<div class="block">Input and output with the game engine.
This object is used for logging messages, receiving configs and frame data, and making moves.
This object, in many ways, functions similarly to an iterator of frame data, received from the game engine via the standard input.
This object is not at all guaranteed to be thread safe.</div>
</section>
<section class="summary">
<ul class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!-- -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="Config.html" title="class in com.c1games.terminal.algo">Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#config()">config</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the deserialized config file, possibly waiting to receive this from the game.</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>static java.io.PrintStream</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#debug()">debug</a></span>()</code></th>
<td class="colLast">
<div class="block">A printstream to log data which will become visible to the client/user.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="FrameData.html" title="class in com.c1games.terminal.algo">FrameData</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lastFrame()">lastFrame</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the last frame returned by nextTurnFrame or nextFrameAnyType.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="FrameData.html" title="class in com.c1games.terminal.algo">FrameData</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nextFrameAnyType()">nextFrameAnyType</a></span>()</code></th>
<td class="colLast">
<div class="block">Wait for the next frame data from the engine for any type.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="map/GameState.html" title="class in com.c1games.terminal.algo.map">GameState</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nextMoveBuilder()">nextMoveBuilder</a></span>()</code></th>
<td class="colLast">
<div class="block">Wait for the next turn frame, and then use it to construct a move builder.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="FrameData.html" title="class in com.c1games.terminal.algo">FrameData</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nextTurnFrame()">nextTurnFrame</a></span>()</code></th>
<td class="colLast">
<div class="block">Waits for the next frame from the engine of the Action phase, which corresponds to the beginning of the turn.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submitTurn(com.c1games.terminal.algo.map.GameState)">submitTurn</a></span>&#8203;(<a href="map/GameState.html" title="class in com.c1games.terminal.algo.map">GameState</a>&nbsp;builder)</code></th>
<td class="colLast">
<div class="block">Given a set of moves created by a move buider, submit those to the engine as our actions for this turn.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!-- -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="debug()">debug</a></h3>
<div class="memberSignature"><span class="modifiers">static</span>&nbsp;<span class="returnType">java.io.PrintStream</span>&nbsp;<span class="memberName">debug</span>()</div>
<div class="block">A printstream to log data which will become visible to the client/user.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="config()">config</a></h3>
<div class="memberSignature"><span class="returnType"><a href="Config.html" title="class in com.c1games.terminal.algo">Config</a></span>&nbsp;<span class="memberName">config</span>()</div>
<div class="block">Get the deserialized config file, possibly waiting to receive this from the game. This many block initially, since the game needs time to
send over the config file, but will only block once, for the same reason.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="nextTurnFrame()">nextTurnFrame</a></h3>
<div class="memberSignature"><span class="returnType"><a href="FrameData.html" title="class in com.c1games.terminal.algo">FrameData</a></span>&nbsp;<span class="memberName">nextTurnFrame</span>()</div>
<div class="block">Waits for the next frame from the engine of the Action phase, which corresponds to the beginning of the turn. This will skip over any frames
which are not of that type.
Nullable.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="nextMoveBuilder()">nextMoveBuilder</a></h3>
<div class="memberSignature"><span class="returnType"><a href="map/GameState.html" title="class in com.c1games.terminal.algo.map">GameState</a></span>&nbsp;<span class="memberName">nextMoveBuilder</span>()</div>
<div class="block">Wait for the next turn frame, and then use it to construct a move builder.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="nextFrameAnyType()">nextFrameAnyType</a></h3>
<div class="memberSignature"><span class="returnType"><a href="FrameData.html" title="class in com.c1games.terminal.algo">FrameData</a></span>&nbsp;<span class="memberName">nextFrameAnyType</span>()</div>
<div class="block">Wait for the next frame data from the engine for any type. There are several frames per turn. Many algos will prefer to call nextTurnFrame.
Nullable</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="lastFrame()">lastFrame</a></h3>
<div class="memberSignature"><span class="returnType"><a href="FrameData.html" title="class in com.c1games.terminal.algo">FrameData</a></span>&nbsp;<span class="memberName">lastFrame</span>()</div>
<div class="block">Get the last frame returned by nextTurnFrame or nextFrameAnyType.
Nullable.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="submitTurn(com.c1games.terminal.algo.map.GameState)">submitTurn</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">submitTurn</span>&#8203;(<span class="arguments"><a href="map/GameState.html" title="class in com.c1games.terminal.algo.map">GameState</a>&nbsp;builder)</span></div>
<div class="block">Given a set of moves created by a move buider, submit those to the engine as our actions for this turn.</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>