Strategii pentru jocul de dame Dame Inteligente

Similar documents
Metrici LPR interfatare cu Barix Barionet 50 -

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban

GHID DE TERMENI MEDIA

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962)

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; }

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N

Auditul financiar la IMM-uri: de la limitare la oportunitate

Versionare - GIT ALIN ZAMFIROIU

Subiecte Clasa a VI-a

Olimpiad«Estonia, 2003

Modalitǎţi de clasificare a datelor cantitative

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC)

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: "9",

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows

Procesarea Imaginilor

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm

Reţele Neuronale Artificiale în MATLAB

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A.

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii

Update firmware aparat foto

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

Mecanismul de decontare a cererilor de plata

ANTICOLLISION ALGORITHM FOR V2V AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP V2V (VEHICLE-TO-VEHICLE)

KAJOT V.RO BLACK PLANET JOC DE NOROC CU RISC LIMITAT

Propuneri pentru teme de licență

X-Fit S Manual de utilizare

Printesa fluture. Мобильный портал WAP версия: wap.altmaster.ru

INSTRUMENTE DE MARKETING ÎN PRACTICĂ:

Metoda de programare BACKTRACKING

CHAMPIONS LEAGUE 2017 SPONSOR:

În continuare vom prezenta unele dintre problemele de calcul ale numerelor Fibonacci.

ISBN-13:

Managementul Proiectelor Software Metode de dezvoltare

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs

Itemi Sisteme de Operare

Compendiu Jocuri de Mate

Software Process and Life Cycle

Metoda BACKTRACKING. prof. Jiduc Gabriel

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET

O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE

Ghid de utilizare a Calculatorului valorii U

USING SERIAL INDUSTRIAL ROBOTS IN CNC MILLING PROCESESS

STARS! Students acting to reduce speed Final report

Proiectarea Sistemelor Software Complexe

Nume şi Apelativ prenume Adresa Număr telefon Tip cont Dobânda Monetar iniţial final

Jocuri dinamice. Coordonarea strategiilor; căi spre cooperare

Managementul referinţelor cu

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router

Calculatoare Numerice II Interfaţarea unui dispozitiv de teleghidare radio cu portul paralel (MGSH Machine Guidance SHell) -proiect-

PROCEDURA PRIVIND DECONTURILE. 2. Domeniu de aplicare Procedura se aplică în cadrul Universităţii Tehnice Cluj-Napoca

EN teava vopsita cu capete canelate tip VICTAULIC

The First TST for the JBMO Satu Mare, April 6, 2018

earning every day-ahead your trust stepping forward to the future opcom operatorul pie?ei de energie electricã și de gaze naturale din România Opcom

Prima. Evadare. Ac9vity Report. The biggest MTB marathon from Eastern Europe. 7th edi9on

Mircea Merca 1) Articol dedicat Prof. Dr. Ioan Tomescu la a 70-a aniversare

Structuri de date: ARBORI

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe

1. Creaţi un nou proiect de tip Windows Forms Application, cu numele MdiExample.

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog

INPUT MODELLING USING STATISTICAL DISTRIBUTIONS AND ARENA SOFTWARE

CERERI SELECT PE O TABELA

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive.

PACHETE DE PROMOVARE

Manual Limba Romana Clasa 5 Editura Humanitas File Type

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Ce pot face pe hi5? Organizare si facilitati. Pagina de Home

Modele de dezvoltare software suplă, agilă

Class D Power Amplifiers

ACTA TECHNICA NAPOCENSIS

INTEROGĂRI ÎN SQL SERVER

Normalizarea tăriei sonore şi nivelul maxim permis al semnalelor audio

Regulile jocului Universal Monsters The Phantom's Curse Video Slot

Evoluția pieței de capital din România. 09 iunie 2018

Capete terminale şi adaptoare pentru cabluri de medie tensiune. Fabricaţie Südkabel Germania

PROIECT. La Baze de date. Evidența activității pentru o firmă IT. Îndrumător: ș. l. dr. ing. Mirela Danubianu. Efectuat de: Grigoriev Sergiu gr.

ANALIZA FUNCŢIONALĂ, O METODĂ DE MODELARE ÎN PROIECTAREA UTILAJELOR

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M )

Decizia manageriala în conditii de risc. Profilul riscului.

Mai bine. Pentru c putem.

VIRTUAL INSTRUMENTATION IN THE DRIVE SUBSYSTEM MONITORING OF A MOBIL ROBOT WITH GESTURE COMMANDS

Preţul mediu de închidere a pieţei [RON/MWh] Cota pieţei [%]

Aplicarea tehnicilor inteligenței artificiale și comunicarea în timp real în jocurile de tip browser

HEAPSORT I. CONSIDERAŢII TEORETICE

Transmiterea datelor prin reteaua electrica

Proceduri stocate. Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig.

SISTEM ONLINE DE ÎNVĂŢĂMÂNT

Universitatea Babeş-Bolyai, Cluj-Napoca Facultatea de Matematică şi Informatică

APLICAŢII ELEMENTARE CU ARBORI

METODE DE EVALUARE A IMPACTULUI ASUPRA MEDIULUI ŞI IMPLEMENTAREA SISTEMULUI DE MANAGEMENT DE MEDIU

Strategia Europeană în Regiunea Dunării - oportunităţi pentru economiile regiunilor implicate -

2. In the pattern below, which number belongs in the box? 0,5,4,9,8,13,12,17,16, A 15 B 19 C 20 D 21

ACTA TECHNICA NAPOCENSIS

NOTE PRIVIND MODELAREA MATEMETICĂ ÎN REGIM CVASI-DINAMIC A UNEI CLASE DE MICROTURBINE HIDRAULICE

Transcription:

Strategii pentru jocul de dame Dame Inteligente Rezumat Acest raport detaliaza dezvoltarea unui program pentru a juca jocul de dame englezesti. Scopul acestui proiect a fost de a proiecta si implementa un program care ar putea juca dame la un nivel inteligent. Acest lucru a necesitat o intelegere a jocului de dame si diferite strategii abordate de catre jucatori. Este necesar de asemenea cunoasterea principiilor teoriei jocurilor, precum si abilitati de programare necesara pentru a le pune in aplicare. Astfel, raportul abordeaza aspecte cheie ale programului, inclusiv proiectarea deciziilor luate, optimizarile utilizate pentru a imbunatati performanta, si testarea implementarii care a fost folosita pentru a aprecia cât de bine programul poate juca impotriva omului. Scopul principal al acestui proiect a fost de a elabora si implementa un program de joc care joaca jocul de dame la un nivel inteligent. Obiectivul initial a fost ca programul ar putea detine propriile sale arme impotriva adversarilor umani de diferite de calificari. Programul a fost scris in Java si se bazeaza pe principiile teoriei jocurilor. Numele ales pentru program este Dame Inteligente ". Multumiri As dori sa multumesc supraveghetorului meu, domnului profesor Catalin Stoean, pentru tot sprijinul si sfatul pe care mi l-a dat pe parcursul proiectului. Domnul profesor a fost intotdeauna abordabil si a dorit sa ma ajute cu orice probleme sau intrebari pe care le-am avut.

Scopurile si obiectivele Planul de proiect ofera o lista completa a scopurilor si obiectivelor proiectului, cu toate acestea ele pot fi rezumate dupa cum urmeaza: obtineti o versiune de lucru a jocului de dame capabila sa joace impotriva oamenilor scrieti un program care incearca sa joace dame(chiar daca acesta joaca slab) imbunatatiti programul astfel incat sa joace la un nivel ridicat permiteti utilizatorului sa selecteze intre o varietate de stari de dificultate testati programul impotriva oamenilor si a altor programe de dame Regulamentul jocului de dame englezesti Programul de joc este implementat pe baza regulilor din jocul de Dame englezesti. Jocul de Dame englezesti este jucat de doi jucatori, "negru" si "alb", care incep pe laturile opuse ale unei table. In Damele englezesti, versiune a jocului pe care este proiectat programul in cauza, jocul este jucat pe o tabla de 8x8, si fiecare jucator incepe cu douasprezece piese. Piesele sunt prevazute dupa cum se arata in figura 1. Scopul jocului este de a elimina fie toate piesele adversarului de la bord, fie de a le pune intr-o pozitie in cazul in care nu au mutari legale la rândul lor. Fig. 1 Piesele se misca in diagonala, ceea ce inseamna ca patrate albe nu sunt utilizate in joc, toate piesele se misca in diagonala intre patrate negre. O piesa poate fi mutata intr-o directie de inainte cu un patrat, fie spre dreapta sau spre stânga. Figura 2 prezinta o bucata neagra ce se deplaseaza inainte.

Fig 2 Fig 3 Fig 4 Daca o piesa este diagonal adiacenta pentru o piesa opozanta, din fata ei, si exista un patrat gol in partea de dincolo a piesei opuse, piesa poate sari peste piesa opusa scotind-o de la bord. Acest lucru este cunoscut sub numele de "salt" sau "captarea" piesei adversarului, si este demonstrata in figurile 2.3 si 2.4. Daca un om, o piesa ajunge in partea departata a bordului (cunoscuta ca "rândul regelui"), piesa este actualizata la denumirea de rege". Regii sunt puternici, deoarece acestia se pot deplasa si face salturi inapoi, precum si inainte. In versiunile de calculator a jocului, regii sunt de obicei etichetati cu o coroana sau un "R". Implementarea Limbajul ales pentru program este Java. Un motiv pentru aceasta este faptul ca, in Java este posibil sa creezi obiecte pentru a reprezenta diferite aspecte ale domeniului, in acest caz un joc de dame. Obiectele implementate in Dame Inteligente includ un obiect de mutare, care a fost utilizat ori de câte ori detalii despre o miscare au trebuit sa fie transmise intre metode. De asemenea, un obiect "patrat" a fost implementat, care reprezinta un patrat de pe bord si contine informatii despre piesa de pe acel patrat (sau lipsa acestora). Un alt motiv pentru a alege Java a fost ca Java ofera pachetul Swing, care permite crearea unei interfete grafice pentru utilizator atractiva. Desi acest lucru nu este critic pentru functionarea programului, este mult mai convenabil atât pentru scopuri de testare si pentru utilizatorii finali ai programului. Acesti factori au condus la decizia de a folosi Java pentru punerea in aplicare a programului.

Interfata grafica a jocului cuprinde trei ferestre principale in care se desfasoara jocul. Fereastra Intro este fereastra de start a jocului. Ofera informatii despre denumirea jocului, realizatorul jocului, etc. Fereastra Setari permite utilizatorului sa-si aleaga setarile jocului. Utilizatorul poate sasi aleaga un nume altul decat cel implicit, sa-si aleaga culoarea pieselor si nivelul de dificultate.

Fereastra Tabla de joc este fereastra principala a jocului, aici desfasurandu-se practic jocul in sine. Afiseaza informatii despre starea curenta a jocului, scorul realizat de jucatori, jucatorul care este la rand sa mute, numarul de piese al fiecarui jucator la un moment dat, etc. Arborele de joc Un mod util de a analiza jocuri este de a le vedea ca o structura arborescenta, in cazul in care fiecare nod din arbore reprezinta o pozitie posibila (sau stare a jocului). Radacina arborelui reprezinta pozitia initiala, si in aceasta stare initiala se afla mutarea jucatorului care este la rand. Fiecare mutare valabila care poate fi facuta de catre jucator duce la un nod copil care reprezinta noua pozitie care rezulta din aceasta miscare. Aceasta craca continua in josul arborelui pe masura ce jucatorii fac mutari. Nodurile frunze ale arborelui reprezinta starile terminale unde jocul s-a incheiat, in mod normal, in cazul in care un jucator a castigat sau jocul s-a incheiat la egalitate. De obicei, un jucator are posibilitatea de a alege intre cateva potentiale mutari de fiecare data, si ca rezultat dimensiunea arborelui jocului poate creste exponential. Acest lucru este valabil in special in jocuri cum ar fi damele si sahul, pentru ca in timp ce jocul progreseaza jucatorii pot avea mai multe miscari disponibile decât au avut la inceput, cand tabla se deschide.

Algoritmul Minmax Strategiile poate fi utile in jocuri mici, cum ar fi x si zero, cu toate acestea pentru jocuri mai mari, cum ar fi damele acestea nu pot fi utilizate. Acest lucru se datoreaza faptului ca arborele de joc este prea mare pentru ca un calculator sa poata stoca o strategie completa. Arborele jocului in sine este, de asemenea, prea mare pentru a fi stocat in memorie, din cauza factorului de bransament si adâncimii mari a arborelui ( multe jocuri de dame dureaza mai mult de 100 de mutari). Prin urmare, atunci când scrieti un program de joc, este comun numai sa generezi parti ale arborelui care sunt cerute in acel moment. Algoritmul Minmax este o metoda de cautare inainte prin arbore,de a alege cea mai buna mutare pentru un jucator atunci când se presupune ca adversarul va juca un joc perfect. Functia de evaluare Pentru jocuri mari, ca damele, arborele complet al jocul nu poate fi generat in acelasi timp, dupa cum am mentionat mai devreme. Prin urmare, nu este posibil sa se aplice algoritmul minmax standard pentru un astfel de joc. Deoarece noi nu putem cauta toate modalitatile de a ajunge la nodurile frunza (unde castigurile/rasplatile sunt gasite), suntem in imposibilitatea de a gasi adevarata valoare a oricarei pozitii intermediare in arborele de joc. Cu toate acestea, putem obtine o aproximare a valorii pozitiei utilizând o functie de evaluare. Cel mai important si interesant aspect al unui program de joc este functia de evaluare. Functia de evaluare este necesara pentru a incerca sa indice cat de favorabila este pozitia atunci când nu putem cauta inainte pana la nodurile frunza ale arborelui jocului. Deoarece nu putem cauta inainte la pozitiile finale, functia de evaluare poate fi vazuta ca o aproximare la valoarea reala a unei pozitii, si, ca atare, nu poate fi in intregime corecta. Eficienta functiilor de evaluare, prin urmare, poate fi masurata doar prin testare. Functia de evaluare analizeaza o pozitie bazandu-se pe o serie de factori specifici jocului. Fiecare factor da o ponderare bazata pe efectul pe care factorul il are asupra jocului, si prin combinarea acestor factori se calculeaza o valoare totala a pozitiei. Atunci când este echipat cu o functie de evaluare, programul de joc poate cauta in fata un anumit numar de miscari, gasi valorile pozitiilor la acest nivel, si apoi trimite aceste valori inapoi prin arbore folosind algoritmul minimax. Valoarea obtinuta prin utilizarea functiei de evaluare nu va reflecta

intotdeauna valoarea reala a pozitiei. Pentru a gasi adevarata valoare conceptual, am avea nevoie sa facem o cautare minmax exhaustiva a tuturor modalitatilor de a gasi noduri frunze (pozitii finale), dar acest lucru nu este posibil. Singura modalitate de a imbunatati estimarea functiei de evaluare a valorilor pozitiilor este de observare in timp a jocului, si de ajustare a coeficientilor in consecinta, pentru a imbunatati performanta. Realizarea scopurilor si obiectivelor Principalele obiective ale proiectului au fost indeplinite. Initial am intentionat sa dezvolt o versiune de lucru a jocului de dame, iar acest lucru a fost realizat in intregime. Scopul de baza urmator a fost sa scriu un program care incerca sa joace dame, chiar daca juca slab. Acest lucru a fost realizat prin implementarea unui algoritm minimax de baza si a unei functii de evaluare. Urmatorul scop este deasemenea la fel de important: de a imbunatati programul, astfel incât acesta sa joace jocul destul de bine pentru a putea invinge majoritatea adversarilor umani. In anasmblu sunt multumit de programul creat pana acum. Sper ca in curand sa fie gata in intregime si sa poata juca la un nivel foarte bun! Referinte a) Referinte Web 1. A Knowledge-Based Approach of Connect Four Victor Allis http://www.farfarfar.com/games/connect_four/connect4.pdf 2. Chinook Jonathan Schaeffer http://www.cs.ualberta.ca/~chinook/ 3. Rules of Draughts The Official English Draughts Association http://home.clara.net/davey/newpage4.htm 4. The Rules of Draughts Masters Games

http://www.mastersgames.com/rules/draughts-rules.htm 5. The International Draughts Site Nicolas Guibert http://membres.lycos.fr/nic55/dames/dames2_old.htm 6. Checker Bitboard Tutorial Jonathan Kreuzer http://www.3dkingdoms.com/checkers/bitboards.htm 7. Solving Connect Four Victor Allis http://web.archive.org/web/20041204210315/www.cs.vu.nl/~victor/connect4.html 8. Reviving the Game of Checkers Jonathan Schaeffer http://www.cs.ualberta.ca/~jonathan/papers/papers/olympiad.ps 9. Chess Evaluation Functions - François Dominic Laramée http://www.gamedev.net/reference/articles/article1208.asp 10. Sharp Checkers Paulo Pinto http://www.progtools.org/games/projects/sharp_checkers/sharp_checkers.html 11. ICheckers Adnan Khalid http://www.geocities.com/icheckers/ b) Referinte literare 12. Andrea Schalk, COMP30191: The Theory of Games and Game Models, University of Manchester, School of Computer Science, 2006 13. Catalin Stoean, Ruxandra Stoean : Evolutie si Inteligenta artificiala. Paradigme moderne si aplicatii, Editura Albastra, 2010