+ If you have stones, shoot <const>1</const> or more of them.
+ <br>
+ If you don't have stones, shoot <const>0</const> exactly.
+ </div>
+ </div>
+ <div class="statement-section statement-warning">
+ <h2>
+ <span class="icon icon-warning"> </span>
+ <span>Rule Evolution</span>
+ </h2>
+ <div class="statement-warning-content">
+ The following ideas are still in flux, waiting for some
+ opinions. Please drop a word on the
+ <a href="https://www.codingame.com/contribute/view/507070b7925f661e2d2835c14f950b9d157e">
+ contribution's page
+ </a>
+ or
+ <a href="https://forum.codingame.com/t/troll-vs-castles-brainstorm/184827?u=jbm">
+ on the forum
+ </a>
+ <ul>
+ <li>
+ Is it even worth publishing? can the problem be totally solved?
+ </li>
+ <li>
+ More maps? (a map is a {road length} × {initial stone count} pair)
+ </li>
+ <li>
+ Leagues? I could conceive the referee being permissive
+ (allow 0 stones thrown) in the first one, and then strict.
+ </li>
+ <li>
+ Fog of war? (see only troll position, not enemy throw/stones left)
+ </li>
+ <li>
+ <strong>variable</strong> for of war? (seeing enemy stones
+ is a boolean decided randomly as part of the map?
+ </li>
+ <li>
+ alternative fog of war? (seeing enemy stones only when
+ troll is close to us?)
+ </li>
+ <li>
+ Praise for my artistic skillz
+ </li>
+ <li>
+ Other remarks?
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="statement-victory-conditions">
+ <div class="icon victory"></div>
+ <div class="blk">
+ <div class="title">Victory Condition</div>
+ <div class="text">Your opponent loses.</div>
+ </div>
+ </div>
+ <div class="statement-lose-conditions">
+ <div class="icon lose"></div>
+ <div class="blk">
+ <div class="title">Defeat Condition</div>
+ <ul>
+ <li>The troll reaches your castle.</li>
+ <li>When no player has stones left, the troll is closer to your castle.</li>
+ </ul>
+ </div>
+ </div>
+ <div class="statement-section statement-protocol">
+ <h2>
+ <span class="icon icon-protocol"> </span>
+ <span>I/O Protocol</span>
+ </h2>
+ <div class="statement-protocol-content">
+ Just read the sample code. You can figure this out.
+ <br>
+ 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.
+ </div>
+ </div>
+ <div class="statement-section statement-expertrules">
+ <h2>
+ <span class="icon icon-expertrules"> </span>
+ <span>Maps</span>
+ </h2>
+ <div class="statement-expert-rules-content">
+ <p>
+ 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>
+ <tr><th>Road length</th><th>Stones</th></tr>
+ <tr><td><const>6</const></td><td><const>15</const></td></tr>
+ <tr><td><const>6</const></td><td><const>30</const></td></tr>
+ <tr><td><const>14</const></td><td><const>30</const></td></tr>
+ <tr><td><const>14</const></td><td><const>50</const></td></tr>
+ </table>
+ <p>
+ As with anything in this <em>draft</em> statement, this
+ is <strong>subject to change without notice</strong>. Why do
+ you think they're provided in the game input?
+ </p>
+ </div>
+ </div>
+ <div class="statement-section statement-protocol">
+ <h2>
+ <span class="icon icon-protocol"> </span>
+ <span>Change Log</span>
+ </h2>
+ <ul>
+ <li>
+ This is computer science. Trees are non-negociable.
+ (asset contributed by
+ <a href="https://www.codingame.com/profile/f529ecfbb6cc3b402a40027fd38beec14437821">
+ Alshock
+ </a>)
+ </li>
+ <li>
+ Don't destroy the castle if the troll doesn't reach it.
+ </li>
+ <li>
+ Ensure proper troll movement direction in all cases of
+ cheating.
+ </li>
+ <li>
+ Fixed the road length fencepost non-issue.
+ </li>
+ <li>
+ Of course that game needed MSG functionality!
+ </li>
+ <li>
+ Enforce the one-stone rule. (that also fixed the legacy
+ buh—sorry people! I put an easter egg in exchange)
+ </li>
+ <li>
+ Cutesy defeat animations.
+ </li>
+ <li>
+ Distinct castle sprites!
+ </li>
+ <li>
+ Terminate game when there are no more stones in sight.
+ </li>
+ <li>
+ More pretty. (SRLSLY)
+ </li>
+ <li>
+ No more void maps. (root cause: Java <const>%</const> on a
+ negative seed)
+ </li>
+ </ul>
+ </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>
+
+ <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>
+
+ <p>
+ The source code for this game
+ <a href="https://troll.desast.re/troll.git">is available</a>.
+ </p>
+ </div>
+ </div>