Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Tekoäly

Sivun loppuun

Gaxx [07.05.2004 21:20:02]

#

Minua on pitkään kismittänyt, etten ole keksinyt minkään näköistä toteutus tapaa seuraavanlaiselle tekoälylle:
Meillä on "ukko1", joka haluaisi päästä paikasta A paikkaan B. Matkalla on kuitenkin ylitse pääsemätön este esim. talo, joka pitäisi kiertää lyhintä mahdollista reittiä pitkin.

Miten tämän lyhimmän reitin määrittäminen siis onnistuu? Osaan kyllä laittaa sen kiertämään esteen, mutta se ei takaa sitä, että se menisi lyhintä mahdollista reittiä pitkin. Eli laittaisin sen kiertämään kaikki esteet joko vasemman kautta tai sitten vaihtoehtoisesti oikean kautta.

En halua mitään sekavaa koodia(tai no kyllä sellanenkin kelpaa, jos ei muuta ole), mutta selvä suomenkielinen selostus, kuinka tällainen toteutetaan, olisi mainio juttu.

Edit: sanavalinta muunnos

Heikki [07.05.2004 21:42:42]

#

Eiköhän se ole niin, että lasket kuinka pitkä matka on oikealta ja kuinka pitkä matka vasemmalta, ja lyhyempää käytetään. Tietysti jos esteitä on enemmän, kasvaa tarkistettavien reittien määrä huomattavasti.

rndprogy [07.05.2004 21:48:23]

#

Tee niin että koodi käy ensin pelkillä muuttujilla läpi ja sitten valitsee niistä lyhyimmän reitin. Ja reitit tallennetaan mahdollisesti taulukkoon.

Gaxx [07.05.2004 21:54:08]

#

Joo niin kai se menee teoriassa. Tähän se mullakin oikeastaan tökkää. Kun ajatellaan, että näiden pisteiden paikat ovat satunnaisia ja... Hhmmmm... Sain idean, jota täytyy kyllä himean miettiä... Kertokaa vaan, jos suinkin tiedätte/osaatte tämän homman.

Edit: Kappas rndprogy ehti vastata. Tommonen tuli mieleen joo ja toi reitin taulukkoon tallentaminen oli hyvä idea.

hunajavohveli [07.05.2004 22:13:51]

#

Tee ohjelma, joka etsii kaikki mahdolliset reitit (ei välttämättä aivan helppo juttu) ja niistä valitsee lyhyimmän. Ja kielestä riippuen voi tulla aika hidaskin.

sqwiik [08.05.2004 08:39:52]

#

Millaista karttarakennetta käytät? Onko se määritelty palasina (kuin erkki) vai jollain muulla tavalla?

Sharph [08.05.2004 08:42:41]

#

Tai sitte sellane että se laskee randomina muutamatuhat reittiä, ja kattoo lyhimmän? Vai onko tämä liian hidas?

sqwiik [08.05.2004 08:49:13]

#

Minulla on erääseen QB-peliini tehty AI-koodi, joka osaa kiertää esteitä (kohtuullisen hyvin, mutta jää jumiin tietyn muotoisiin luolankohtiin jos kohde on kaukana) käyttämättä taulukkoa liikkeessä. Jos tahdot, voi laittaa sen sinullepäin.

hunajavohveli [08.05.2004 09:07:01]

#

Topi91 kirjoitti:

Tai sitte sellane että se laskee randomina muutamatuhat reittiä, ja kattoo lyhimmän? Vai onko tämä liian hidas?

Jos kyseessä on QB, niin taitaapi olla. Väsäsin kerran itse tekoälyä, joka perustui eräänlaiseen muistiin, jolloin äly ei palannut enää takaisin umpikujaksi havaitsemaansa paikkaan.

Gaxx [08.05.2004 11:18:00]

#

sqwiik kirjoitti:

Minulla on erääseen QB-peliini tehty AI-koodi, joka osaa kiertää esteitä (kohtuullisen hyvin, mutta jää jumiin tietyn muotoisiin luolankohtiin jos kohde on kaukana) käyttämättä taulukkoa liikkeessä. Jos tahdot, voi laittaa sen sinullepäin.

Pistä tuleen vaan. Kielenä ajattelin käyttää C++:aa, mutta voin kääntää sen ihan itekki. Tajuampahan sitten ainakin mitä siinä tehdään.

Edit:

sqwiik kirjoitti:

Millaista karttarakennetta käytät? Onko se määritelty palasina (kuin erkki) vai jollain muulla tavalla?

Palasina kuten erkissä.

sqwiik [08.05.2004 12:16:07]

#

Se koodini on tehty kahdeksansuuntaiselle liikkeelle. Toivottavasti ei haittaa. Peräisin vanhasta, toimivasta qworld-roolipelistäni. Taidan laittaa sen tänne koodivinkkeihin, mutta siinä on kaksi haittaa:
1) se on liian suurikokoinen exeksi käännettäväksi, ja
2) se on jaettu useampaan bas-tiedostoon, ja ohjelma hyppii
run-komennolla niiden välillä (datansiirto erillisellä tiedostolla).
Mietin vain, mitä kaikkea siitä revitään irti...
Siinä on kiintästi mukana: Loitsintasysteemi, aseet(kantavat, ampuvat, melee), KAIKKI esineet, luolaston luonti, pääkartalla liikkuminen, vastustajien AI, hiiriohjaus, inventoori (parempi kuin erkissä :P), esineiden käyttö ääniefektien kera. Pääkartta toimii kuten falloutin.

sqwiik [08.05.2004 13:09:03]

#

Muokkausaika meni :(
Eli JOS sitä ei hyväksytä 'vinkiksi', niin se on kuitenkin ladattavissa erkki-sivulta :) (nyt jo, qbpeli.zip)

Kaikki ko. zipissä oleva on itse tekemääni (lukuunottamatta bittikartan latauskoodia), ja annan täyden käyttöoikeuden tuohon koodiin kaikille joita kiinnostaa.

Gaxx [08.05.2004 13:12:39]

#

Juu kiitoksia. Täytyy tutkia josko siitä saisi jotain irti.


Sivun alkuun

Vastaus

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

Tietoa sivustosta