Link to source code
[troll.git] / config / statement_en.html
1 <div class="statement-body">
2    <!-- GOAL --> 
3    <div class="statement-section statement-goal"> 
4      <h2> 
5        <span class="icon icon-goal">&nbsp;</span> 
6        <span>The Goal</span> 
7      </h2> 
8      <div class="statement-goal-content"> 
9        Don't get destroyed by the troll.
10      </div>
11    </div> 
12    <!-- RULES --> 
13    <div class="statement-section statement-rules"> 
14      <h2> 
15        <span class="icon icon-rules">&nbsp;</span> 
16        <span>Rules</span> 
17      </h2> 
18      <div class="statement-rules-content">
19        If you have stones, shoot <const>1</const> or more of them.
20        <br>
21        If you don't have stones, shoot <const>0</const> exactly.
22      </div>
23    </div>
24    <div class="statement-section statement-warning">
25      <h2>
26        <span class="icon icon-warning">&nbsp;</span>
27        <span>Rule Evolution</span>
28      </h2>
29      <div class="statement-warning-content">
30        The following ideas are still in flux, waiting for some
31        opinions.  Please drop a word on the
32        <a href="https://www.codingame.com/contribute/view/507070b7925f661e2d2835c14f950b9d157e">
33          contribution's page
34        </a>
35        or
36        <a href="https://forum.codingame.com/t/troll-vs-castles-brainstorm/184827?u=jbm">
37          on the forum
38        </a>
39        <ul>
40          <li>
41            Is it even worth publishing? can the problem be totally solved?
42          </li>
43          <li>
44            More maps? (a map is a {road length} × {initial stone count} pair)
45          </li>
46          <li>
47            Leagues? I could conceive the referee being permissive
48            (allow 0 stones thrown) in the first one, and then strict.
49          </li>
50          <li>
51            Fog of war? (see only troll position, not enemy throw/stones left)
52          </li>
53          <li>
54            <strong>variable</strong> for of war? (seeing enemy stones
55            is a boolean decided randomly as part of the map?
56          </li>
57          <li>
58            alternative fog of war? (seeing enemy stones only when
59            troll is close to us?)
60          </li>
61          <li>
62            Praise for my artistic skillz
63          </li>
64          <li>
65            Other remarks?
66          </li>
67        </ul>
68      </div>
69    </div>
70    <div class="statement-victory-conditions">
71      <div class="icon victory"></div>
72      <div class="blk">
73        <div class="title">Victory Condition</div>
74        <div class="text">Your opponent loses.</div>
75      </div>
76    </div>
77    <div class="statement-lose-conditions">
78      <div class="icon lose"></div>
79      <div class="blk">
80        <div class="title">Defeat Condition</div>
81        <ul>
82          <li>The troll reaches your castle.</li>
83          <li>When no player has stones left, the troll is closer to your castle.</li>
84        </ul>
85      </div>
86    </div>
87    <div class="statement-section statement-protocol">
88      <h2>
89        <span class="icon icon-protocol">&nbsp;</span>
90        <span>I/O Protocol</span>
91      </h2>
92      <div class="statement-protocol-content">
93        Just read the sample code.  You can figure this out.
94        <br>
95        You're currently allowed the default SDK timings.  I think it's
96        one second for the first turn and 50&nbsp;ms then, but don't
97        quote me on this.
98      </div>
99    </div>
100    <div class="statement-section statement-expertrules">
101      <h2>
102        <span class="icon icon-expertrules">&nbsp;</span>
103        <span>Maps</span>
104      </h2>
105      <div class="statement-expert-rules-content">
106        <p>
107          The following maps are currently available and randomly yet
108          extremely fairly (you wouldn't believe the effort that went
109          into this) chosen uniformly at random among the following:
110        </p>
111        <table>
112          <tr><th>Road length</th><th>Stones</th></tr>
113          <tr><td><const>6</const></td><td><const>15</const></td></tr>
114          <tr><td><const>6</const></td><td><const>30</const></td></tr>
115          <tr><td><const>14</const></td><td><const>30</const></td></tr>
116          <tr><td><const>14</const></td><td><const>50</const></td></tr>
117        </table>
118        <p>
119          As with anything in this <em>draft</em> statement, this
120          is <strong>subject to change without notice</strong>.  Why do
121          you think they're provided in the game input?
122        </p>
123      </div>
124    </div>
125    <div class="statement-section statement-protocol">
126      <h2>
127        <span class="icon icon-protocol">&nbsp;</span>
128        <span>Change Log</span>
129      </h2>
130      <ul>
131        <li>
132          This is computer science.  Trees are non-negociable.
133          (asset contributed by
134          <a href="https://www.codingame.com/profile/f529ecfbb6cc3b402a40027fd38beec14437821">
135            Alshock
136          </a>)
137        </li>
138        <li>
139          Don't destroy the castle if the troll doesn't reach it.
140        </li>
141        <li>
142          Ensure proper troll movement direction in all cases of
143          cheating.
144        </li>
145        <li>
146          Fixed the road length fencepost non-issue.
147        </li>
148        <li>
149          Of course that game needed MSG functionality!
150        </li>
151        <li>
152          Enforce the one-stone rule.  (that also fixed the legacy
153          buh&mdash;sorry people!  I put an easter egg in exchange)
154        </li>
155        <li>
156          Cutesy defeat animations.
157        </li>
158        <li>
159          Distinct castle sprites!
160        </li>
161        <li>
162          Terminate game when there are no more stones in sight.
163        </li>
164        <li>
165          More pretty. (SRLSLY)
166        </li>
167        <li>
168          No more void maps. (root cause: Java <const>%</const> on a
169          negative seed)
170        </li>
171      </ul>
172    </div>
173    <div class="statement-story-background">
174      <div class="statement-story"
175           style="position: relative; min-height: min-content">
176        <div class="story-text">
177          <div style="text-align: center">
178            &ldquo;Trolls simply detest the very sight of dwarves (uncooked).&rdquo;
179          </div>
180          <div style="text-align: right">
181            &mdash;&nbsp;J.R.R. Tolkien, <i>The Hobbit</i>
182          </div>
183
184          <p>
185            Based on an involuntary suggestion by
186            <span class="card" cg-codingamer-card-popup=""
187                  userid="user.codingamer.userId">
188              <a class="pseudo"
189                 href="/profile/dbfa96e0ac9b77a3db679628f27224ae8509333"
190                 title="Zaap38">Zaap38</a>
191            </span>
192            on the #Fr channel.  The original appears to be by
193            <a href="http://andre.lovichi.free.fr/teaching/ea/2015-2016/cours/troll/Trolls_et_chateaux.pdf">
194              Romain Andr&eacute;-Lovichi
195            </a>.
196          </p>
197
198          <p>
199            The source code for this game
200            <a href="https://troll.desast.re/troll.git">is available</a>.
201          </p>
202        </div>
203      </div>
204    </div>
205 </div>