Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Tekoälyyn suunnitteluun apua!

helkepet [26.02.2012 08:41:52]

#

Olemme tekemässä PGH4 -lautapeliä puhelimeen.
Verkon yli pelattava versio valmistuu, kun valmistuu, mutta tekoälyn ja pelaajan välinen ottelu kaipaa tekoälyn osalle apua.
Pelistä saattaa saada, jonkinlaisen käsityksen www.petesgamesaff.com/pgh4.php -tyhmästä versiosta, jossa teet molempien siirrot.
Ideana pelissä on laittaa nappula kirjaimen päälle, josta se työnnetään sisään pelialueelle. Jos siirtoruudussa oli jo nappula, työntyy se sisään jne.
Tarkoituksena on saada neljän suora. "Myllymatti" -efektin poissulkemiseksi on suunniteltu lisäsääntöä, samaan ruutuun (saman kirjaimen kautta) ei saa siirtää kuin kahdesti, jos vastustaja siirtää "toistaen oman siirtonsa".
Itse ohjelmointiin ei tarvita "aivoja", mutta jos kellä on innostusta miettiä pseudokoodi tasolla älyn olemusta, hän voi kommentoida tänne tai lähettää viestiä LovePGH4@gmail.com:iin postia.
Olen / olemme kiitollisia avusta / vihjeistä!

Petri

Metabolix [26.02.2012 19:24:37]

#

Peli vaikuttaa niin yksinkertaiselta, että eiköhän tuohon saisi aika hyvän tekoälyn aivan alkeellisilla tekoälymenetelmillä kuten minmax-algoritmilla. Kannattaa ehkä katsoa Ohjelmointiputkan kilpailujen tulossivuilta parhaiden tekoälyjen kuvauksia koodeja, jos nyt niistä mitään ymmärtää.

User137 [26.02.2012 20:55:12]

#

Tuohon minmax:iin liittyvänä myös vielä yksinkertaisempi satunnainen tekoäly. Ensinnä, tekoälyllä voi olla käytännössä ihan samat tekniset rajoitteet kuin pelaajalla. Kun pelaaja yrittää siirtää johonkin, kysyt funktiolta voiko haluttuun ruutuun siirtää. Tekoälyllä sama, käyt läpi koko pelialueen, ja kysyt kunkin ruudun kohdalla "voiko tähän laittaa". Sitten joko min-maxilla (pisteytetään siirron hyödyllisyys), tai ihan vaan arpomalla joku noista ruuduista joihin voi siirtää.

Pekka Karjalainen [26.02.2012 21:22:56]

#

Erään tämän kaltaisen pelin nimi on Pousse, mikä on ranskaa. Sanalla on jotakin tekemistä työntämisen kanssa, kuten pelin siirroillakin.

Webistä hakemalla löytyi pari tekoälyä hieman harvinaisemmilla kielillä. Lisäksi eräällä sivulla mainittiin, että yhden sääntöversion mukaan pelissä saman aseman toistaminen johtaa aseman toistavan siirron tehneen pelaajan häviöön. Tämän säännön ottaminen omaan versioonne ainakin estäisi tasapelit.

Tällä sivulla selitetään Cilk-kielellä toteutetun tekoälyn toimintaa. Sieltä voi ainakin saada paria ideaa evaluaatiofunktioon, joka arvioi kuinka hyviä erilaiset ratkaisemattomat pelitilanteet ovat ja ohjaa hakua.

http://people.csail.mit.edu/pousse/

Muista perustekniikoista löytyy neuvoja mm. täältä, jos erikseen kysyy.

helkepet [27.02.2012 10:35:04]

#

Kiitos Pekka vihjeestä. Pelit ovat melko samanlaisia. PGH4 -pelistä tehtiin uutus- tutkimus jo 1984, silloin ei POUSSEA löytynyt, en löytänyt Googlella historiaa pelistä. Ranskan kielen taitoa on vain shakki-palstan lukuun.

TVdata [28.02.2012 16:48:19]

#

http://www.petesgamesaff.com/pgh4.php

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta