Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointiputka: Tekoälyohjelman käyttö

User137 [20.03.2008 17:51:31]

#

Oletetaan että joskus tulisi kisa jossa kilpaileva tekoäly ohjaa esim vuoropohjaista/reaaliaikaista strategiapeliä. Kuinka toteuttaisit ohjelmien kommunikaation siten että tämä ei rajaa ohjelmointikieliä liikaa, eikä käy hitaaksi tai kiintolevyä rasittavaksi?

Ohjelmointiputkan ristinollakisa toteutettiin käynnistämällä molemmat tekoälyohjelmat joka vuorolla kirjoittamalla tekstitiedostoon tulos jonka pääohjelma luki. Tämä on tietysti helppo tapa mutta rasittaa järjestelmää eikä varmaankaan kovin tehokas.

Onnistuisiko esim tcp tyylinen kommunikointi localhost:n tiettyyn porttiin, kuinka moni kieli jäisi ulkopuolelle ja haittaako se ylipäänsä? Tietysti koodaajilla olisi pääohjelma testaamiseen jo tekoälyä tehtäessä joten pakettien yhteensopivuus ei enää kilpailuvaiheessa olisi ongelma.

Blaze [20.03.2008 18:21:08]

#

TCP/IP on hyvä. Ulkopuolelle taitaa jäädä lähinnä QBasic, ja sehän nyt ei ketään kiinnostakaan.
/me ducks and covers

User137 [20.03.2008 20:50:46]

#

Näyttäisi ettei QBasic ehkä edes jäisi ulkopuolelle ;) Lisäkirjastojen käyttö sallittu.

kayttaja-2499 [20.03.2008 21:15:12]

#

Jos kyseessä ei ole verkkopeli, voidaan käyttää myös yhteistä muistialuetta viestien välitykseen.

Metabolix [20.03.2008 21:45:46]

#

Yhteiset muistialueet vasta rajaisivatkin kieliä ulkopuolelle, ja toteutus on muutenkin niin järjestelmäriippuvainen, että tuo vaatisi tasapuolisuuden vuoksi erityistä omaa rajapintaa.

TCP/IP on hyvä vaihtoehto, joskin myös se vaatii monissa kielissä hieman perustasosta poikkeavaa opettelua.

Antti Laaksonen [20.03.2008 23:57:30]

#

Käyttäisin mielelläni tekstitiedostoja myös tulevissa kilpailuissa, koska ne eivät rajoita ohjelmointikieltä eivätkä vaadi ylimääräistä opettelua kilpailijoilta.

Minulla on sellainen tuntuma, että TCP/IP:n käyttö ei ole monelle (esim. minulle) itsestään selvää. Aiempien kokemusten perusteella tekstitiedostot ovat riittävän tehokas ratkaisu.

Vastaus

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

Tietoa sivustosta