Kezdőoldal » Számítástechnika » Programozás » Hogyan oldjam meg egy amőba...

Hogyan oldjam meg egy amőba játékban a gépi ellenfél gondolkodását?

Figyelt kérdés
Nem igazán akarok mélyen belemerülni a mesterséges intelligencia tudományába, de valaki tudna egy viszonylag egyszerű elméleti megoldással előállni?
2012. okt. 31. 14:58
 1/5 anonim válasza:
chh, tanulj meg c# vagy c++ nyelven :D
2012. okt. 31. 17:29
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
Az már megvan, nem is nyelvfüggő megoldásra gondoltam, hanem nyelvfüggetlen elméletre.
2012. okt. 31. 17:55
 3/5 anonim ***** válasza:
Gondold át, hogyan gondolkodsz te, mint játékos, és azokat a döntéseket próbáld megvalósítani!
2012. okt. 31. 18:35
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

A játékmezőn kívül legyen két "térkép" a memóriában is.

Az egyik térképen a gépi játékos lépéseihez, a másikon az emberke lépéseihez tartozó értékeket tárold, a következő képpen:

Az utoljára lerakott X vagy O melletti üres helyeknek megfelelő térképcellákba írd be az adott mezőkig tartó leghosszabb elemsor értékét.

Ez alapján tudhatod melyik a győzelem felé vezető legjobb , illetve melyik a legveszélyesebb mező.

2012. okt. 31. 19:26
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:
52%

Prioritásos feltétel-rendszer. N darab feltétel, minden feltételhez meghatározva, hogy mit kell lépni.

Definiálsz N darab kritériumot, melyek mindegyikét a legerősebbtől a leggyengébbig haladva kiértékeli a program az adott játékállásra minden körben, és az első olyan feltételre, ami igaznak bizonyul, végrehajtja a hozzá tartozó lépést, és vége. Ami fontos, hogy a legvégső feltétel mindig igaz, és a hozzá rendelt lépés egy randomra lerakott jel(vagy pl. az ellenfél utolsó jele mellé raksz, esetleg csinálsz egy körre előre "gondolkodást", azaz kigenerálod az összes lehetséges esetet egy körre előre, és annak megfelelően raksz.)


Egyszerű példa, a feltétel-rendszered nézhet ki így, gyengülő sorrendben:

1. Van-e négy darab sorban lévő eleme a gépi játékosnak, melynek legalább az egyik vége szabad? A hozzárendelt lépés nyilván az, hogy berakod az 5. elemet, és nyertél.


2. Van-e a humán játékosnak négy darab sorban lévő jele, melynek legalább az egyik vége szabad? A feltételhez rendelt lépés : berakom a végére a saját jelemet, hogy megakadályozzam az ellenfél győzelmét.


3. Van-e a gépi játékosnak 3 db sorban lévő eleme, melynek mindkét végén van szabad hely? Hozzátartozó lépés: az egyik végére rakok még 1et.


4. Van-e a humán játékosnak 3 db sorban lévő eleme, melynek mindkét végén van szabad hely? Hozzátartozó lépés: az egyik végére rakok egy saját jelet, hogy megakadályozzam az ellenfél győzelmét.


Ez persze csak egy példa, ennél azért kicsit szofisztikáltabb helyzet-értékelő feltételek kellenek, és sokkal több, ha értelmes gépi játékost akarsz összerakni.


Egy jól tervezett program-struktúrával ez könnyen bővíthető, sőt, az megírt feltétel-halmazodból tetszés szerint építhető fel a lánc, így különböző nehézségi szintek könnyen megvalósíthatóak.

2012. okt. 31. 21:23
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!