add all the help
This commit is contained in:
parent
93542e4e90
commit
14bd2d5e24
9 changed files with 233 additions and 40 deletions
|
@ -5,7 +5,7 @@ use rocket_contrib::templates::Template;
|
||||||
|
|
||||||
use crate::util::*;
|
use crate::util::*;
|
||||||
|
|
||||||
const MAX: usize = 3;
|
const MAX: usize = 6;
|
||||||
|
|
||||||
#[get("/info")]
|
#[get("/info")]
|
||||||
fn help_base() -> Redirect {
|
fn help_base() -> Redirect {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
.content {
|
.content {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
max-height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pointer {
|
.pointer {
|
||||||
|
@ -16,14 +17,14 @@
|
||||||
height: 70%;
|
height: 70%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
clip-path: polygon(100% 0%, 50% 48%, 100% 100%, 50% 100%, 0% 50%, 50% 0);
|
clip-path: polygon(100% 0%, 50% 48%, 100% 100%, 50% 100%, 0% 50%, 50% 0);
|
||||||
background-color: #ff7f00;
|
background-color: #A35200;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p_right {
|
.p_right {
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
height: 70%;
|
height: 70%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: #ff7f00;
|
background-color: #A35200;
|
||||||
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0% 100%, 50% 50%, 0% 0%);
|
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0% 100%, 50% 50%, 0% 0%);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,6 +71,11 @@
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.help_content {
|
||||||
|
overflow: auto;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.boxed {
|
.boxed {
|
||||||
border: 3px #A35200 solid;
|
border: 3px #A35200 solid;
|
||||||
border-radius: 50px;
|
border-radius: 50px;
|
||||||
|
@ -109,6 +115,28 @@
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.help_content_2 {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 80%;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.help_content_2 h2 {
|
||||||
|
margin: 2px 0;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.help_content_2 em {
|
||||||
|
color: #A35200;
|
||||||
|
}
|
||||||
|
|
||||||
|
.help_content_2 h3 {
|
||||||
|
margin: 5px;
|
||||||
|
color: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
.arrow {
|
.arrow {
|
||||||
width: 20%;
|
width: 20%;
|
||||||
background-color: #A35200;
|
background-color: #A35200;
|
||||||
|
@ -120,3 +148,35 @@
|
||||||
.arrow>div {
|
.arrow>div {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
margin: 10px inherit;
|
||||||
|
color: #eee;
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin: 10px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.help_content_1 h2 {
|
||||||
|
color: #bbb;
|
||||||
|
margin-top: 2em;
|
||||||
|
font-size: 1.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre code {
|
||||||
|
background-color: #333;
|
||||||
|
border: 1px solid #eee;
|
||||||
|
display: block;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.commands {
|
||||||
|
font-size: 1.3em;
|
||||||
|
}
|
|
@ -2,41 +2,29 @@
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
|
|
||||||
How does it work?
|
Information
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
{% block help %}
|
{% block help %}
|
||||||
|
|
||||||
<div class="help_content_1">
|
<div class="help_content_2">
|
||||||
<div class="boxed centering">
|
<h2>Rules</h2>
|
||||||
<div>
|
<ul>
|
||||||
Game State
|
<li>turn-based</li>
|
||||||
</div>
|
<li>planets on 2d plane</li>
|
||||||
</div>
|
<li>players can occupy planets</li>
|
||||||
<div class="arrow centering">
|
<li>each turn, an occupied planet constructs a new ship for its owner</li>
|
||||||
<div>
|
<li>spaceship travel time is proportional to the euclidean distance (floor(sqrt(dx * dx - dy * dy)))</li>
|
||||||
stdin
|
<li>combat happens only on planets</li>
|
||||||
</div>
|
</ul>
|
||||||
</div>
|
<h2>Turn Order</h2>
|
||||||
<div class="boxed centering">
|
<ul>
|
||||||
<div>
|
<li>ship construction</li>
|
||||||
Bot (you!)
|
<li>dispatches</li>
|
||||||
</div>
|
<li>combat resolution</li>
|
||||||
</div>
|
</ul>
|
||||||
<div class="arrow centering">
|
|
||||||
<div>
|
|
||||||
stdout
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="boxed centering">
|
|
||||||
<div>
|
|
||||||
Actions
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class=help_content_1_sub>
|
|
||||||
<div>Turn</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -2,13 +2,25 @@
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
|
|
||||||
|
Information
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
{% block help %}
|
{% block help %}
|
||||||
|
|
||||||
|
<div class="help_content_2">
|
||||||
|
<h2>Combat resolution</h2>
|
||||||
|
<ul>
|
||||||
|
<li>fleets belonging to the same player are merged</li>
|
||||||
|
<li>each ship destroys one ship in all other fleets</li>
|
||||||
|
<li>this means the largest fleet wins, with <em>|fleet| - |second largest fleet|</em> ships remaining</li>
|
||||||
|
</ul>
|
||||||
|
<h2>How to win</h2>
|
||||||
|
<ul>
|
||||||
|
<li>The last player standing wins!</li>
|
||||||
|
<li>When the turn limit is reached, all remaining players tie.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -2,13 +2,46 @@
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
|
|
||||||
|
Interaction with the game
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
{% block help %}
|
{% block help %}
|
||||||
|
|
||||||
|
<div class="help_content_1">
|
||||||
|
<div class="boxed centering">
|
||||||
|
<div>
|
||||||
|
Game State
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="arrow centering">
|
||||||
|
<div>
|
||||||
|
stdin
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="boxed centering">
|
||||||
|
<div>
|
||||||
|
Bot (you!)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="arrow centering">
|
||||||
|
<div>
|
||||||
|
stdout
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="boxed centering">
|
||||||
|
<div>
|
||||||
|
Actions
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class=help_content_1_sub>
|
||||||
|
<div>Turn</div>
|
||||||
|
</div>
|
||||||
|
<div class=help_content_1>
|
||||||
|
<h2>
|
||||||
|
Format: line-separated JSON (one line for each turn)
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
42
backend/templates/help/help_4.html.tera
Normal file
42
backend/templates/help/help_4.html.tera
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{% extends "help/base" %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
|
||||||
|
Format: Game state
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
{% block help %}
|
||||||
|
|
||||||
|
<div class="help_content_2">
|
||||||
|
<pre>
|
||||||
|
<code>{
|
||||||
|
"planets": [
|
||||||
|
{
|
||||||
|
“name”: “my cool planet”,
|
||||||
|
“x”: 42,
|
||||||
|
“y”: 42,
|
||||||
|
“owner”: 1,
|
||||||
|
“ship_count”: 23
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"expeditions": [
|
||||||
|
{
|
||||||
|
“id”: 1000,
|
||||||
|
“origin”: “my boring planet”,
|
||||||
|
“destination”: “my cool planet”,
|
||||||
|
“turns_remaining”: 3,
|
||||||
|
“owner”: 2,
|
||||||
|
“ship_count”: 18
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}</code>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h3>Player numbers are rotated so that you are always player 1.</h3>
|
||||||
|
<h3>Note that player numbers are 1-based.</h3>
|
||||||
|
<h3>Neutral planets exist, they don’t have an owner (not in JSON, null, …)</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
30
backend/templates/help/help_5.html.tera
Normal file
30
backend/templates/help/help_5.html.tera
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{% extends "help/base" %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
|
||||||
|
Format: Player turn (actions)
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
{% block help %}
|
||||||
|
|
||||||
|
<div class="help_content_2">
|
||||||
|
<pre>
|
||||||
|
<code>{
|
||||||
|
“moves”: [
|
||||||
|
{
|
||||||
|
“origin”: “my boring planet”,
|
||||||
|
“destination”: “my cool planet”,
|
||||||
|
“ship_count”: 23
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}</code>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h3>Invalid commands are ignored by the game implementation.</h3>
|
||||||
|
<h3>If your bot crashes, you can reconnect but chances of winning are slim.</h3>
|
||||||
|
<h3>Your bot is allowed one second to compute its turn.</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
28
backend/templates/help/help_6.html.tera
Normal file
28
backend/templates/help/help_6.html.tera
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{% extends "help/base" %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
|
||||||
|
How to connect
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
{% block help %}
|
||||||
|
|
||||||
|
<div class="help_content_2">
|
||||||
|
|
||||||
|
<h2>You run your bot at your own pc and connect over tcp.</h2>
|
||||||
|
<h3>Follow these commands to connect using <em>simple.py</em>.</h3>
|
||||||
|
|
||||||
|
<pre class="commands">
|
||||||
|
<code>
|
||||||
|
$ wget mozaic.zeus.gent/bot/runner.py
|
||||||
|
$ wget mozaic.zeus.gent/bot/simple.py
|
||||||
|
$ python runner.py -p 9142 --host mozaic.zeus.gent \
|
||||||
|
-n <Your name> -i <Id from the lobby> \
|
||||||
|
python simple.py
|
||||||
|
</code>
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
|
@ -28,7 +28,7 @@
|
||||||
<h3>Create a game</h3>
|
<h3>Create a game</h3>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<a class="step" href='/info'>
|
<a class="step" href='/info/6'>
|
||||||
<div class="step_content">
|
<div class="step_content">
|
||||||
<h2>Step 3:</h2>
|
<h2>Step 3:</h2>
|
||||||
<h3>Play!</h3>
|
<h3>Play!</h3>
|
||||||
|
|
Loading…
Reference in a new issue