more elaborate game rules

This commit is contained in:
Ilion Beyst 2022-04-23 12:09:25 +02:00
parent 8cda16d1c9
commit c43839f471

View file

@ -1,27 +1,41 @@
<div class="game-rules"> <div class="container">
<p> <div class="game-rules">
Every turn, your bot will receive a json-encoded line on stdin, representing the current game <h3>Welcome to planetwars!</h3>
state.
</p>
Example game state: <p>
<pre>{` Planetwars is a game of galactic conquest for busy people. Your goal is to program a bot that
will conquer the galaxy for you, while you take care of more important stuff.
</p>
<p>
In every game turn, your bot will receive a json-encoded line on stdin, describing the current
state of the game. Each state will hold a set of planets, and a set of spaceship fleets
traveling between the planets (<em>expeditions</em>).
</p>
<p>Example game state:</p>
<pre>{`
{ {
"planets": [ "planets": [
{ {
"ship_count": 2, "ship_count": 2,
"x": -2.0, "x": -2.0,
"y": 0.0, "y": 0.0,
"owner": 1, "owner": 1,
"name": "your planet" "name": "your planet"
}, },
{ {
"ship_count": 4, "ship_count": 4,
"x": 2.0, "x": 2.0,
"y": 0.0, "y": 0.0,
"owner": 2, "owner": 2,
"name": "enemy planet" "name": "enemy planet"
}, },
{
"ship_count": 2,
"x": 0.0,
"y": 2.0,
"owner": null,
"name": "neutral planet"
}
], ],
"expeditions": [ "expeditions": [
{ {
@ -36,13 +50,20 @@
} }
`}</pre> `}</pre>
<p> <p>
Every turn, you may send out expeditions to conquer other planets. You can do this by writing a The <code>owner</code> field holds a player number when the planet is held by a player, and is
json-encoded line to stdout: <code>null</code> otherwise. Your bot is always referred to as player 1.<br />
</p> Each turn, every player-owned planet will gain one additional ship. <br />
Planets will never move during the game.
</p>
Example command: <p>
<pre>{` Every turn, you may send out expeditions to conquer other planets. You can do this by writing
a json-encoded line to stdout:
</p>
<p>Example command:</p>
<pre>{`
{ {
"moves": [ "moves": [
{ {
@ -54,16 +75,40 @@
} }
`} `}
</pre> </pre>
<p>
All players send out their commands simultaneously, so there is no turn order. You may send as
many commands as you please.
</p>
The amount of turns an expedition will travel is equal to the ceiled euclidean distance between <p>
its origin and target planet. The amount of turns an expedition will travel is equal to the ceiled euclidean distance
between its origin and target planet.
</p>
<p>
Ships will only battle on planets. Combat resolution is simple: every ship destroys one enemy
ship, last man standing gets to keep the planet.
</p>
<p>
Head over to the editor view to get started - a working example is provided. <br />
Feel free to just hit the play button to see how it works!
</p>
</div>
</div> </div>
<style lang="scss"> <style lang="scss">
.game-rules { .container {
padding: 15px;
overflow-y: scroll; overflow-y: scroll;
height: 100%; height: 100%;
box-sizing: border-box; box-sizing: border-box;
} }
.game-rules {
padding: 15px 30px;
max-width: 800px;
}
.game-rules p {
padding-top: 1.5em;
}
</style> </style>