Hogyan oldjam meg egy amőba játékban a gépi ellenfél gondolkodását?
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ő.
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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!