|
|
Hi! Elkezdtem én is egy MI játék-projektet. Nálam egy téglalap alakú pályán két robot harcolna egymással az MI alapján. Az MI groovy-scriptben íródna, ami igazából sima szöveg, mindegy hogy .txt-be, .groovy-ba vagy más formátumba van mentve. A szintaxisa hasonló a C#, Java vonalhoz, egy csomó mindent támogat beépítve, plusz ki lehet egészíteni java könyvárakkal, szóval pl. trigonometria nem akadály.
Maga a játékprogram java-ban íródik, rendes Swing-es felületet használ. Most tartok az MI script feldolgozásánál. Mindenképpen befejezem, de kíváncsi lennék innen érdekelne-e valakit.
Kompromisszumok nélkül csak remete vagy halott lehetsz...
|
|
|
A manager program menti le. Az AI mindössze a move fájlba ír, és csak ahoz fér hozzá, mivel más mappába van mind, így egy mást sem befolyásolják. A pályát a move.txt- alapján módosítja a manager program. A mihez az aI nem fér hozzá.
FZoli, ha gondolod beszélhetünk MSN-en, kis tapasztalat cserére. Hátha valami hasznát veszed a fejlesztéseimnek. Kb. olyan 70% -nál tartok. Még az idő, mérés, és a lövés hiányzik. ( meg plusz beállítások. ) Ha gondoljátok, feltehetek, de akkor nem fejlesztem tovább.
Geri: A főprogram ellenörzi a lépést lehetőségét, szóval nem fog semmi féle képp átmenni a falon.
Ezt a hozzászólást misi módosította (2009.02.24 10:56 GMT+1 óra, ---)
|
|
|
Misi: ezzel az a baj hogy nincs cheat protection. Nem a következő AI számára kell lementeni, hanem a manager program számára, aki eztán újra beolvashatja azt, és ellenőrzi, hogy az új helyed vagy akciód a pályán megfelelő -e.
|
|
|
XD. Nem akartam semmit lenyulni. Csak olvastam, láttam ötletek, de mindenki csak itt áll és semmi, gondoltam megcsinálom, de akkor hagyom. Tényleg nem azért volt.  ( Csak a lentebb írtakat gondoltam megvalósítom... )
Mármint azt hittem hogy nem dolgozik rajta senki.
|
|
|
Kedves tőled h lenyúltad a koncepciót. Legalább írhattál volna h nekifogsz, két takkra ugyanolyan projectnek nincs értelme.
Bár én pár dolgot máshogy valósítok meg...kiváncsi lettem volna ha online doksit vezetek, azok is benne lettek volna e a verziódban...
|
|
|
TaiNK
Írok egy progit, txt-vel van a vezérlés. Vannak az AI-k, mindegyik egy egy külön mappában. Ezek a fő program indítása előtt el vannak indítva, és várják hogy megkapják a a map.txt fájl ( és egy status.txt-t ). Beolvassa a status.txt-t. Ennek alapján, tudja hogy ő hányas azonosítójú tank. Ezután beolvassa a map.txt-t. Megkeresi hogy hol van az azonosítójával megegyező szám, és ahhoz képest megnézi ,hogy hogyan mozogjon. Ha megvan akkor ezt kimenti egy move.txt-be:
1 = felfele mozgás
2 = jobbra mozgás
3 = lefele mozgás
4 = balra mozgás
5 = lövés felfele
6 = lövés jobbra
7 = lövés lefele
8 = lövés balra
Utána várakozik míg nem törlik a move.txt-t, és megkapja az új map.txt-t. És minden előröl.
A program elsőnek törli a map.txt-t utána beolvassa az utasítást, és leszimulálja. Ezután átírja a térképet, és ezt kimenti a következő AI - nak.
Minta status.txt-re:
Kód: 8// Játékosok száma
1// Max. élet
2// Max. töltény
8// Várakozási idő ( másodperc )
2// Karakterünk azonosítója
1// 1-es karakter: Életek száma
2// 1-es karakter: Töltények száma
0// 2-es karakter: Életek száma
0// 2-es karakter: Töltények száma
1// 3-es karakter: Életek száma
1// 3-es karakter: Töltények száma
Minta map.txt-re:
Kód: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x2 x 3x
x xxxxxxxxxxxxxxxxxxx x xxxxxxxxxxxxxxxxxx x
x x x x x x x
x x xxxxxxxxxxxxxxx x x x xxxxxxxxxxxxxx x x
x x x x x x x x x x
x x x xxxxxxxxxxxxxxx x x x xxxxxxxxxx x x x
x x x x x x x x x x x
x x x x xxxxxxxxxxxxxxx x xxxxxxxxxx x x x x
x x x x x x x x x x x x
x x x x x xxxxxxxxxxx x xxxxxxxxxx x x x x x
x x x x x x x x x x x x x x x
x x x x x x xxxxxxx x x x xxxxxx x x x x x x
x x x x x x x x x x x x x x x x x x
x x x x x x x xxxxxxx x x x xx x x x x x x x
x x x x x x x x x x x x x x x x x x x
x x x x x x x x xxxxxxx x xx x x x x x x x x
x x x x x x x x x x x x x x x x x x x
x x x x x x x x x xxxxxxxx x x x x x x x x x
x x x x x x x x x x x x x x x x
x x xxxxx x xxxxx x x x xxxxx x xxxxx x
x x x x x x x x
x xxxxxxxxxxxxxxxxx x xxxxxxxxxxxxxxxxx
x 7x 1 x6 x
xxxxxxxxxxxxxxxxx x xxxxxxxxxxxxxxxxx x
x x x x x x x x
x xxxxx x xxxxx x xx xxxxx xxxxx x xxxxx x x
x x x x x x x x x x x x x x x x
x x x x x x x x xx x x xxxxx x x x x x x x x
x x x x x x x x x x x x x x x x x x x
x x x x x x x xxxxxx x x xxxxx x x x x x x x
x x x x x x x x x x x x x x x x x
x x x x x x xxxxxxxxxx x x xxxxx x x x x x x
x x x x x x x x x x x x x x x
x x x x x xxxxxxxxxx x x xxxxxxxxx x x x x x
x x x x x x x x x x x x x
x x x x xxxxxxxxxx x x xxxxxxxxxxxxx x x x x
x x x x x x x x x x x
x x x xxxxxxxxxxxxxx x x xxxxxxxxxxxxx x x x
x x x x x x x x x
x x xxxxxxxxxxxxxxxxxx x x xxxxxxxxxxxxx x x
x x x x x x x
x xxxxxxxxxxxxxxxxxx x x xxxxxxxxxxxxxxxxx x
x5 x0x 4x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
|
Szerintem senki, és szerintem nem is fog.
|
|
|
Kompromisszumok nélkül csak remete vagy halott lehetsz...
|
|
|
Szavazat a txt-re. A dll dolog csapda azok számára, akik nem 3. generációs nyelvben fejlesztenek.
|
|
|
Robocode-ról hallott valaki?
Ezt a hozzászólást robar módosította (2009.02.12 12:55 GMT+1 óra, ---)
Kompromisszumok nélkül csak remete vagy halott lehetsz...
|
|
|
Idézet FZoli :
dll-ről soha nem volt szó.
Igaz, dll-t se lehet mindennel csinálni.
Akkor az egész pálya txt-ben lesz kinyomva, plusz az ellenél adatai.
Ekkor simán meg lehet azt tenni, hogy elindítjuk az egyiket, az lép egyet, elindítja a másikat, az lép, majd kilép, és megint az első jön, nem is kell köztes progi.
Esetleg még egy plusz txt-be lehetne logolni az egymásutáni lépéseket, így meg lehetne másnak is mutatni, mi történt (ehhez akár egy egyszerű lejátszót is lehetne csinálni, ami vizuálisan is lejátssza a meccset.)
- vinyógyilkos egy cucc lesz -
- ráadásul a második program minden lépés után kilép, kezdi előröl az egészet (vagy állapotot ment a hdd-re)
Na akkor hogyis képzeljem el ezt a txt-s szolúciót?
|
|
|
a txt-n keresztüli kommunikáció szerintem fölöslegesen lassitja a dolgot  én is a dll-re szavazok
|
|
|
Ha txt fileokon keresztül megy a kommunikáció, akkor a grafikus felületnek semmi köze a játékhoz, hanem attól függetlenül lehet fejleszteni. Egyébként nem a csalás, meg a hekkelés a cél, ha jól tudom, hanem hogy lehetőleg mindenkinek adott legyen a lehetőség nyelvtől függetlenül.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???
|
|
|
az lesz
|
|
|
majd egy party keretében realtime összemérjük az AI-kat
|
|
|
dll-ről soha nem volt szó.
exek beszélgetnének, txt-ken keresztül. Nem a legkorszerűbb megoldás tudom, de kényelmes nekem, és kényelmes azoknak is, akik nem tudnak dll-ekkel/serverekkel/bármivel bánni.
realtime biztosan nem lehet követni, de akarok egy grafikus verziót is, amolyan lejátszót, amivel a már lejátszott meccseket lehetne megnézni.
akkor marad a tankos  Egyébként tesztre az amőba is jól jöhet, ha a rendszer kialakul, onnantól nem nagy melő másik játékot rakni bele
|
|
|
Érdekes lenne, ha realtime tudná a nagyközönség is követni a dolgot, de ez pláne sok meló (fin*om sincs mennyi) Amúgy, hogy lenne a verseny, mindenki megkapná az összes dll-t és tesztelgetne?
Vagy lenne egy jury és megmondanák a végén, ki győzött? (ez lenne talán a leglátványosabb  )
Esetleg lenne a szerver, az ember felöltené a dll-t, sercegtetne picit, majd kiköpné, a fenn lévő többi induló közül kikkel bírt el.
Amúgy egy 2d-s tankos progit tényleg nem kunszt összehozni, a szerveroldalt nemtom.
|
|
|
Az amőbát nem ajánlom, mivel ismert játék és rengeteg kész algoritmus található hozzá. Legyen a tankos. Vagy valami területfoglalós stratégia.
Idézet kicsy :
Kivitelezés szempontjából egy mindenki által belinkelendő dll-t javasolnék, ami elvégzi a szerverrel a kommunikációt, és nyújt egy api-t a klienseknek, így nem kell mondjuk soap üzenetekkel vagy a kommunikáció egyéb módjával szórakozni. Mondjuk ez attól függ ki milyen nyelven akar fejleszteni.
Egyszerűbb, ha az MI-k vannak dll-ben, és a főprogram hívogatja őket. Emellett lehet fájl alapú kommunkikáció is, a kettő nem zárja ki egymást.
Ezt a hozzászólást kuzanth módosította (2009.02.05 09:51 GMT+1 óra, ---)
Csak semmi játékfejlesztés!
|
|
|
chuck norris egy lépésben rendez szal ö nem jön szóba.
|
|
|
Chuck Norris a MinMaxot is legyőzi!
|
|
|
Legutóbb az egyetemi 24 órás progversenyen többek között MI-t kellett írni adott játékszabályokhoz. A mienk az öt fordulóból kettőben el sem indult, egyben menet közben kihalt, a többiben meg az első két kör után nem csinált semmit. Elsők ugyan nem lettünk, de többeket sikerült megverni 
A tanulság, hogy valami olyan szabályrendszerben érdemes a versenyt rendezni, ahol egy random algoritmusnak vagy egyéb egyszerűségeknek világosan nincs esélye.
Kivitelezés szempontjából egy mindenki által belinkelendő dll-t javasolnék, ami elvégzi a szerverrel a kommunikációt, és nyújt egy api-t a klienseknek, így nem kell mondjuk soap üzenetekkel vagy a kommunikáció egyéb módjával szórakozni. Mondjuk ez attól függ ki milyen nyelven akar fejleszteni.
|
|
|
Idézet Asylum :
és mindenki benevez a min-max algoritmussal 
érdekes lesz.
Csitt, lelőtted az ötletemet.
De komolyra fordítva, még ha mindenki min-maxol is, akkor is lehet, hogy az egyik jobb lesz mint a másik:
- Akinek jobban ki van optimalizálva sebességre, az időegység alatt mélyebben gondolkodhat előre.
- A kiértékelőfüggvénynek (ami a min-max fa levelein hívódik) sem feltétlenül a triviális 'van-e öt egymás mellett' - nek kell lennie...
|
|
|
ne amőba legyen má.....az olyan uncsi
a tankos sokkal jobb vlt
arra még lehet.......pszt
|
|
|
és mindenki benevez a min-max algoritmussal 
érdekes lesz.
|
|
|
Amőbára én is neveznék...
Aztán a tankos-romantikusig belejövünk hogy is kell
|
|
|
Felőlem amőba is lehet... sőt, elsőnek kezd is jobban tetszeni az ötlet, maga a játékot csak át kell ültetni, nem kell saját, működő szabályokat kidolgozni
|
|
|
Engineverseny után volna kedvetek egy AI versenyhez? Amőbával, vagy 7-up-al?
|
|
|
Van egy olyan játék - legalábbis még fősulin, úgy 3 éve volt -, amiben robotokat kellett összetákolni, ahhoz a megadott nyelven progt kellett írni, és egy labirintusban meg kellett keresni egy babát, és a játék végéig meg kellett azt őrizni. Közben persze, ha volt fegyvered, másokat szétlőhettél.
Asszem ez az
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???
|
|
|
Geri, bocs de nem fogok amőbaprogramot írni  Elég sablonos a tankos kergetősdi is, ennél alább nem adok.
|
|
|
Azt közösen kéne megbeszélnetek, hogy mi legyen az anyaprogram szerintem.
|
|
|
Az előzményt is belinkelhetnétek..
|
|
|
FZoli: amúgy egy amőba szerű dolgora gondoltál?
|
|
|
Hát én is szivesen neveznék, de kb semmit se értek az MI fejlesztéshez. Bár lehet hogy addigra gyúrok a dologra
(Esetleg ha tudtok tutorialokat akkor megköszönnél, azért közbe dumálok Google baráttal is  )
Mosolyogj! A holnap rosszabb lesz a mánál. Arthur Bloch
|
|
|
érdekes 5let, várom a fejleményeket
_____________________
C++ && OGL
|
|
|
Ne egyszeri alkalomnak gondoljátok, ha elkészül a progi, mindenképpen úgy szeretném, h mondjuk 2hetente lenne egy bajnokság.
Én továbbra is az 1vs1 2+1 körös meccseket részesítem előnyben, és svájci rendszerben zajlanának a meccsek.
A minden AI egy pálya esetében szvsz túl nagy a szerencsefaktor, 1vs1-nél jobban lehet tervezni és itt talán jobban számít az AI rátermettsége.
|
|
|
Lehetséges, hogy engem is érdekel az MI verseny, majd még meglátom, hogy lesz-e rá kedvem és időm. Kb. 50% az esélye
|
|
|
okéj
|
|
|
Ezt a hozzászólást kicsy módosította (2009.01.29 14:44 GMT+1 óra, ---)
|
|
|
Legújabb project:
Szókirakó 3
Legutóbb frissített project:
Szókirakó 3
Friss kép a galériából:
|