+ <p style="margin-bottom: 1em">
+ This place used to read: “Just read the sample code. You can
+ figure this out.” Here are the formalities for <em>that
+ other</em> part of the audience.
+ </p>
+ <div class="blk">
+ <div class="title">Map Input</div>
+ <div class="text">
+ <p>
+ Your first line of input contains three space-separated
+ parameters:
+ <var>roadLength</var> <var>initialStones</var> <var>seed</var>
+ </p>
+ <dl style="margin: 1em;">
+ <dt>roadLength</dt>
+ <dd style="margin-left: 6em;">
+ distance between both castles, between <const>6</const>
+ and <const>14</const>.
+ </dd>
+ <dt>initialStones</dt>
+ <dd style="margin-left: 6em;">
+ number of stones a castle starts the day with,
+ between <const>0</const> and <const>50</const>.
+ </dd>
+ <dt>gameSeed</dt>
+ <dd style="margin-left: 6em;">
+ the game's seed. The game AIs use it to provide you
+ with reproducible matches even when they use stochastic
+ algorithms, and you're encouraged to do the same! See
+ examples section below for simple ways to achieve that.
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="blk">
+ <div class="title">Turn Input</div>
+ <div class="text">
+ <p>
+ At each turn, you are provided with the following three
+ space-separated values:
+ <var>trollDistance</var>
+ <var>stones</var>
+ <var>opponentStones</var>
+ </p>
+ <dl style="margin: 1em;">
+ <dt>trollDistance</dt>
+ <dd style="margin-left: 6em;">
+ distance between the troll and your castle
+ </dd>
+ <dt>stones</dt>
+ <dd style="margin-left: 6em;">
+ number of stones you have left
+ </dd>
+ <dt>opponentStones</dt>
+ <dd style="margin-left: 6em;">
+ number of stones your opponent has left
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="blk">
+ <div class="title">Turn Output</div>
+ <div class="text">
+ <p>
+ After having received your turn input, you are to output
+ a single integer <var>stones</var>: the number of stones
+ you wish to throw at the troll.
+ </p>
+ <p style="margin-top: 1ex">
+ You may optionally provide a <em>message</em> you wish
+ your castle to yell at the troll or at your opponent.
+ Just append it to your output, being sure to separate it
+ with at least one space.
+ <!-- It has no incidence on the game whatsoever. Unless
+ you're god, that is. -->
+ </p>
+ </div>
+ </div>
+ <div class="blk">
+ <div class="title">Timing Considerations</div>
+ <div class="text">
+ <p>
+ You're currently allowed the default SDK timings. I
+ think it's one second for the first turn and 50 ms
+ then, but don't quote me on this.
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="statement-section statement-expertrules">
+ <h2>
+ <span class="icon icon-expertrules"> </span>
+ <span>Expert rules</span>
+ </h2>
+ <div class="statement-expert-rules-content">
+ <p>
+ In the lower leagues, the following maps are currently
+ available and randomly yet extremely fairly (you wouldn't
+ believe the effort that went into this) chosen uniformly at
+ random among the following:
+ </p>
+ <table style="margin: 1ex">
+ <tr>
+ <th style="border-bottom: 2px dashed #f2bb13; min-width: 6em;">Road length</th>
+ <th style="border-bottom: 2px dashed #f2bb13; min-width: 6em;">Stones</th>
+ </tr>
+ <tr>
+ <td style="border-bottom: 1px dashed #f2bb13"><const>6</const></td>
+ <td style="border-bottom: 1px dashed #f2bb13"><const>15</const></td>
+ </tr>
+ <tr>
+ <td style="border-bottom: 1px dashed #f2bb13"><const>6</const></td>
+ <td style="border-bottom: 1px dashed #f2bb13"><const>30</const></td>
+ </tr>
+ <tr>
+ <td style="border-bottom: 1px dashed #f2bb13"><const>14</const></td>
+ <td style="border-bottom: 1px dashed #f2bb13"><const>30</const></td>
+ </tr>
+ <tr>
+ <td style="border-bottom: 1px dashed #f2bb13"><const>14</const></td>
+ <td style="border-bottom: 1px dashed #f2bb13"><const>50</const></td>
+ </tr>
+ </table>
+ <p>
+ You can also override them via game
+ settings <var>roadLength</var> and <var>initialStones</var>,
+ so long as you remember you won't be choosing them for
+ ranking play.
+ </p>
+ </div>
+ </div>
+ <div class="statement-section statement-protocol">
+ <h2>
+ <span class="icon icon-protocol"> </span>
+ <span>Change Log</span>
+ </h2>
+ <p>
+ I'm not maintaining the full changelog here anymore as the
+ <a href="https://troll.desast.re/troll.git">game's source
+ repository</a> is now publicly available. I'll just make note
+ of the single latest change, so you can know how far behind you
+ were lagging. Patches welcome, BTW.
+ </p>
+ <p>
+ This draft's last change is:
+ <strong>
+ game seed is sent in inputs.
+ </strong>
+ </p>
+ </div>
+ <div class="statement-story-background">
+ <div class="statement-story"
+ style="position: relative; min-height: min-content">
+ <div class="story-text">
+ <div style="text-align: center">
+ “Trolls simply detest the very sight of dwarves (uncooked).”
+ </div>
+ <div style="text-align: right">
+ — J.R.R. Tolkien, <i>The Hobbit</i>
+ </div>
+ </div>
+ <div class="story-text" style="margin-top: 4em">
+ <p>
+ Based on an involuntary suggestion by
+ <span class="card" cg-codingamer-card-popup=""
+ userid="user.codingamer.userId">
+ <a class="pseudo"
+ href="/profile/dbfa96e0ac9b77a3db679628f27224ae8509333"
+ title="Zaap38">Zaap38</a>
+ </span>
+ on the #Fr channel. The original appears to be by
+ <a href="http://andre.lovichi.free.fr/teaching/ea/2015-2016/cours/troll/Trolls_et_chateaux.pdf">
+ Romain André-Lovichi
+ </a>.
+ </p>
+ </div>