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::*;
|
||||
|
||||
const MAX: usize = 3;
|
||||
const MAX: usize = 6;
|
||||
|
||||
#[get("/info")]
|
||||
fn help_base() -> Redirect {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
.content {
|
||||
justify-content: center;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.pointer {
|
||||
|
@ -16,14 +17,14 @@
|
|||
height: 70%;
|
||||
width: 100%;
|
||||
clip-path: polygon(100% 0%, 50% 48%, 100% 100%, 50% 100%, 0% 50%, 50% 0);
|
||||
background-color: #ff7f00;
|
||||
background-color: #A35200;
|
||||
}
|
||||
|
||||
.p_right {
|
||||
margin: 5px;
|
||||
height: 70%;
|
||||
width: 100%;
|
||||
background-color: #ff7f00;
|
||||
background-color: #A35200;
|
||||
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0% 100%, 50% 50%, 0% 0%);
|
||||
}
|
||||
|
||||
|
@ -70,6 +71,11 @@
|
|||
margin: auto;
|
||||
}
|
||||
|
||||
.help_content {
|
||||
overflow: auto;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.boxed {
|
||||
border: 3px #A35200 solid;
|
||||
border-radius: 50px;
|
||||
|
@ -109,6 +115,28 @@
|
|||
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 {
|
||||
width: 20%;
|
||||
background-color: #A35200;
|
||||
|
@ -120,3 +148,35 @@
|
|||
.arrow>div {
|
||||
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 %}
|
||||
|
||||
How does it work?
|
||||
Information
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% 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 class="help_content_2">
|
||||
<h2>Rules</h2>
|
||||
<ul>
|
||||
<li>turn-based</li>
|
||||
<li>planets on 2d plane</li>
|
||||
<li>players can occupy planets</li>
|
||||
<li>each turn, an occupied planet constructs a new ship for its owner</li>
|
||||
<li>spaceship travel time is proportional to the euclidean distance (floor(sqrt(dx * dx - dy * dy)))</li>
|
||||
<li>combat happens only on planets</li>
|
||||
</ul>
|
||||
<h2>Turn Order</h2>
|
||||
<ul>
|
||||
<li>ship construction</li>
|
||||
<li>dispatches</li>
|
||||
<li>combat resolution</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -2,13 +2,25 @@
|
|||
|
||||
{% block header %}
|
||||
|
||||
|
||||
Information
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -2,13 +2,46 @@
|
|||
|
||||
{% block header %}
|
||||
|
||||
|
||||
Interaction with the game
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% 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 %}
|
||||
|
|
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>
|
||||
</div>
|
||||
</a>
|
||||
<a class="step" href='/info'>
|
||||
<a class="step" href='/info/6'>
|
||||
<div class="step_content">
|
||||
<h2>Step 3:</h2>
|
||||
<h3>Play!</h3>
|
||||
|
|
Loading…
Reference in a new issue