Umělá inteligence Transport Tycoon - OpenTTD Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 27.12.2014
Umělá inteligence
Transport Tycoon - OpenTTD
Připravil: Ing. Jiří Lýsek, Ph.D.
Verze: 27.12.2014
Program cvičení
• Zadání úkolu
• Ukázka práce s API
strana 2
OpenTTD
• Simulátor vedení dopravní společnosti
• http://www.openttd.org
• Jazyk Squirrel
– API pro AI
– http://noai.openttd.org/api/trunk/
strana 3
strana 4
Úkol
• Naprogramujte funkční AI pro
OpenTTD
– umí stavět dráhy (vlaky) pro přepravu
libovolného nákladu
– umí hrát na libovolné mapě
strana 5
OpenTTD - AI
• AI nemá přístup k jiným možnostem
než lidský hráč
• Dokumenty\ OpenTTD\
content_download\ai\MyAI
– info.nut
– main.nut
strana 6
info.nut
class MyAi extends AIInfo
{
function GetAuthor() { return "Jiri Lysek"; }
function GetName() { return "MyAi";}
function GetDescription() { return "Testovaci Ai pro OpenTTD"; }
function GetVersion() { return 1; }
function GetDate() { return "2014-10-20"; }
function CreateInstance() { return "MyAi"; }
function GetShortName() { return "MYAI"; } //4 znaky!!!
function GetAPIVersion() { return "1.1"; }
function GetSettings() {}
}
RegisterAI(MyAi());
strana 7
main.nut
class MyAi extends AIController
{
vlastnost = null;
constructor() {
…
}
}
// hlavni metoda AI
function MyAi::Start() {
…
}
strana 8
Konzola ve hře
• spustí se klávesou ` (EN) nebo ; (CZ)
– startai MyAI
– stopai #cisloAI
– reloadai #cisloAI
• Je dobré otevřít i konzolu skriptů
strana 9
Logování
• Do konzoly skriptů
– AILog.Info("Text...");
• Přímo na plochu
– AISign.BuildSign(index, "text");
strana 10
Číslování polí
• pravý horní roh je index 0
– kokem mapy je offset 1 pole
– reálně je první pozice:
• 1 + AIMap.GetMapSizeX()
– pole směrem na:
• NW: index - AIMap.GetMapSizeX()
• SW: index + 1
• SE: index + AIMap.GetMapSizeX()
• NE: index - 1
strana 11
Stažení knihovny
• Bude se hodit knihovna:
– AyStar
• V menu hry tlačítko "stahovat
součásti"
strana 12
Ukázka funkčního algoritmu
• katureel
• A*
– h() heuristika - odhad ceny
– g() vzdálenost
• Přepnout směřování
strana 13
strana 14
Cheat ve hře
• Ctrl+Alt+C
– můžete si přidat peníze pro vlastní
společnost
• např. pro úpravy terénu při testování AI
strana 15
Editor pro Squirrel - Eclipse
strana 16