diff options
Diffstat (limited to 'html/build/rules/en/ai.html')
| -rw-r--r-- | html/build/rules/en/ai.html | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/html/build/rules/en/ai.html b/html/build/rules/en/ai.html new file mode 100644 index 00000000..97d7fe22 --- /dev/null +++ b/html/build/rules/en/ai.html @@ -0,0 +1,201 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> +<head> + <meta charset="utf-8" /> + <meta name="generator" content="pandoc" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> + <title>AI</title> + <style> + html { + line-height: 1.5; + font-family: Georgia, serif; + font-size: 20px; + color: #1a1a1a; + background-color: #fdfdfd; + } + body { + margin: 0 auto; + max-width: 36em; + padding-left: 50px; + padding-right: 50px; + padding-top: 50px; + padding-bottom: 50px; + hyphens: auto; + word-wrap: break-word; + text-rendering: optimizeLegibility; + font-kerning: normal; + } + @media (max-width: 600px) { + body { + font-size: 0.9em; + padding: 1em; + } + } + @media print { + body { + background-color: transparent; + color: black; + font-size: 12pt; + } + p, h2, h3 { + orphans: 3; + widows: 3; + } + h2, h3, h4 { + page-break-after: avoid; + } + } + p { + margin: 1em 0; + } + a { + color: #1a1a1a; + } + a:visited { + color: #1a1a1a; + } + img { + max-width: 100%; + } + h1, h2, h3, h4, h5, h6 { + margin-top: 1.4em; + } + h5, h6 { + font-size: 1em; + font-style: italic; + } + h6 { + font-weight: normal; + } + ol, ul { + padding-left: 1.7em; + margin-top: 1em; + } + li > ol, li > ul { + margin-top: 0; + } + blockquote { + margin: 1em 0 1em 1.7em; + padding-left: 1em; + border-left: 2px solid #e6e6e6; + color: #606060; + } + code { + font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace; + font-size: 85%; + margin: 0; + } + pre { + margin: 1em 0; + overflow: auto; + } + pre code { + padding: 0; + overflow: visible; + } + .sourceCode { + background-color: transparent; + overflow: visible; + } + hr { + background-color: #1a1a1a; + border: none; + height: 1px; + margin: 1em 0; + } + table { + margin: 1em 0; + border-collapse: collapse; + width: 100%; + overflow-x: auto; + display: block; + font-variant-numeric: lining-nums tabular-nums; + } + table caption { + margin-bottom: 0.75em; + } + tbody { + margin-top: 0.5em; + border-top: 1px solid #1a1a1a; + border-bottom: 1px solid #1a1a1a; + } + th { + border-top: 1px solid #1a1a1a; + padding: 0.25em 0.5em 0.25em 0.5em; + } + td { + padding: 0.125em 0.5em 0.25em 0.5em; + } + header { + margin-bottom: 4em; + text-align: center; + } + #TOC li { + list-style: none; + } + #TOC a:not(:hover) { + text-decoration: none; + } + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + span.underline{text-decoration: underline;} + div.column{display: inline-block; vertical-align: top; width: 50%;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + </style> + <!--[if lt IE 9]> + <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> + <![endif]--> +</head> +<body> +<header id="title-block-header"> +<h1 class="title">AI</h1> +</header> +<h2 id="concepts">Concepts</h2> +<ul> +<li>The algorithms for the AIs should be as simple as possible</li> +<li>They must be executable by human players with normal game materials</li> +<li>They should not take much time</li> +<li>Players want to play the game not execute the AI</li> +<li>Decision making should most of the time rely on RNG</li> +<li>We do not specify how the players implement their randomness</li> +</ul> +<h2 id="units">Units</h2> +<p>To execute a units AI the players follow the introductions in the AI logic in descending order. If no further steps can be executed the unit gets tapped.</p> +<p>Any ambiguity is decided at random (multiple units in attack range, multiple most distant tiles, …). ### Aggressive 1. If enemy Unit in attack Range then attack enemy Unit in Range 2. While move action available do move towards nearest enemy unit if attack action avail then proceed at 1.</p> +<h3 id="shy">Shy</h3> +<pre><code>1. If not in the attack Range of an enemy Unit then + activate full action if available +2. If move action available then + move to most distant point from all enemy units +3. If enemy Unit in attack Range then + attack enemy Unit in Range</code></pre> +<h3 id="wandering-x">Wandering X</h3> +<pre><code>1. If enemy unit in Range X then + execute aggressive AI +2. If move action available then + move to random tile in movement Range + proceed at 1.</code></pre> +<h3 id="supportive">Supportive</h3> +<pre><code>1. Use full action if possible +2. move towards nearest allied Unit +3. If enemy Unit in attack Range + attack enemy Unit in Range</code></pre> +<h2 id="the-kraken">The Kraken</h2> +<p>Instructions for the opponent player in “The Kraken” game mode.</p> +<h3 id="turn-structure">Turn structure</h3> +<pre><code>0. (Shuffle discard pile into empty deck) +1. Get #players * 5 Resource +2. Upkeep: + 2.1 While sum of upkeep cost bigger than available resource + destroy random unit + 2.2 Pay all upkeep cost +3. Actions: + 3.1 Draw a card + 3.2 If the card is playable then + play the card + proceed at 3.1 +4. Discard the unused card</code></pre> +</body> +</html> |
