Document length/distance duality and impending doom
[troll.git] / config / statement_en.html
index b47d627..0102747 100644 (file)
@@ -1,4 +1,4 @@
-<div class="statement-body"> 
+<div class="statement-body">
    <!-- GOAL --> 
    <div class="statement-section statement-goal"> 
      <h2> 
    <!-- GOAL --> 
    <div class="statement-section statement-goal"> 
      <h2> 
        turn if you have any left.
      </div> 
    </div>
        turn if you have any left.
      </div> 
    </div>
-   <div class="statement-section statement-expertrules">
+   <div class="statement-section statement-warning">
      <h2>
      <h2>
-       <span class="icon icon-expertrules">&nbsp;</span>
+       <span class="icon icon-warning">&nbsp;</span>
+       <span>Breaking Change</span>
+     </h2>
+     <p>
+       The <var>roadLength</var> game input variable used to be the
+       cardinal number of positions the troll could be in.  That's the
+       way it was presented in the original game, but I leaned more
+       towards distances to make the I/O protocol easier on beginners.
+       So it's currently inconsistent.
+     </p>
+     <p>
+       This is going to change in the following days to be a distance
+       everywhere, more in line with the protocol's other measures.
+       Not to mention being somewhat more consistent with the variable
+       name.  Thanks
+       <a href="https://www.codingame.com/profile/c4a50746f425cb125f77487aaf51350c7258821">
+         @Snef
+       </a>
+       for reminding me of this.
+     </p>
+     <p>
+       If you used this variable, I suggest you temporarily used one
+       of these workarounds so you don't get bit by the upcoming
+       change:
+     </p>
+     <table>
+       <tr><th>Former use</th><th>As a</th><th>Try this</th></tr>
+       <tr>
+         <td><pre>roadLength - 1</pre></td>
+         <td><pre>distance to opponent</pre></td>
+         <td><pre>roadLength & (~1)</pre></td>
+       </tr>
+       <tr>
+         <td><pre>roadLength</pre></td>
+         <td><pre>number of troll states</pre></td>
+         <td><pre>roadLength | 1</pre></td>
+       </tr>
+       <tr>
+         <td><pre>roadLength + 1</pre></td>
+         <td><pre>I have no idea</pre></td>
+         <td><pre>(roadLength + 1) & (-1)</pre></td>
+       </tr>
+     </table>
+   </div>
+   <div class="statement-section statement-warning">
+     <h2>
+       <span class="icon icon-warning">&nbsp;</span>
        <span>Rule Evolution</span>
      </h2>
        <span>Rule Evolution</span>
      </h2>
-     <div class="statement-expert-rules-content">
-       The following points are still ideas in flux, waiting for some
-       opinions (leave a comment on the draft submission page!)
+     <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>
        <ul>
          <li>
-           is it even worth publishing? can the problem be totally solved?
+           Is it even worth publishing? can the problem be totally solved?
          </li>
          <li>
          </li>
          <li>
-           More maps? (a map is a road length / initial stones pair)
+           More maps? (a map is a {road length} × {initial stone count} pair)
          </li>
          <li>
          </li>
          <li>
-           leagues? I could conceive the referee being permissive (allow 0 stones thrown) in the first one, and then strict.
+           Leagues? I could conceive the referee being permissive
+           (allow 0 stones thrown) in the first one, and then strict.
          </li>
          <li>
          </li>
          <li>
-           fog of war? (see only troll position, not enemy throw/stones left)<br>
-           <string>variable</string> for of war? (seeing enemy stones
-           is a boolean decided randomly as part of the map?) (or
-           seeing enemy stones only when troll is close to us?)
+           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>
            Praise for my artistic skillz
    <div class="statement-section statement-protocol">
      <h2>
        <span class="icon icon-protocol">&nbsp;</span>
    <div class="statement-section statement-protocol">
      <h2>
        <span class="icon icon-protocol">&nbsp;</span>
-       <spam>I/O Protocol</spam>
+       <span>I/O Protocol</span>
      </h2>
      <div class="statement-protocol-content">
        Just read the sample code.  You can figure this out.
      </div>
    </div>
      </h2>
      <div class="statement-protocol-content">
        Just read the sample code.  You can figure this out.
      </div>
    </div>
+   <div class="statement-section statement-expertrules">
+     <h2>
+       <span class="icon icon-expertrules">&nbsp;</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>7</const></td><td><const>15</const></td></tr>
+         <tr><td><const>7</const></td><td><const>30</const></td></tr>
+         <tr><td><const>15</const></td><td><const>30</const></td></tr>
+         <tr><td><const>15</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">&nbsp;</span>
+       <span>Change Log</span>
+     </h2>
+     <ul>
+       <li>
+         Enforce the one-stone rule.  (that also fixed the legacy
+         buh&mdash;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">
+         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&eacute;-Lovichi
+         </a>.
+       </div>
+     </div>
+   </div>
 </div>
 </div>