sigla.pngMinisterul Educat ¸iei Nat ¸ionale s ¸i Cercet ˘arii S ¸tiint ¸ifice Universitatea ”OVIDIUS” Constant ¸a Facultatea de Matematic ˘a s ¸i… [608826]
sigla.pngMinisterul Educat ¸iei Nat ¸ionale s ¸i Cercet ˘arii S ¸tiint ¸ifice
Universitatea ”OVIDIUS” Constant ¸a
Facultatea de Matematic ˘a s ¸i Informatic ˘a
Specializarea Informatic ˘a
StrategoAI – analiza s ¸i implementarea unui
juc˘ator inteligent pentru jocul Stratego
Lucrare de licent ¸ ˘a
Coordonatori s ¸tiint ¸ifici:
Lect. univ. dr. B ˘autu Elena Coordonator Principal
Prof. univ. dr. Popovici Mircea Coordonator Secundar
Absolvent: [anonimizat] ¸a
2018
Cuprins
Cuprins i
Lista Figurilor 1
1 Introducere 2
1.1 Jocul Stratego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 De ce Stratego? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Elementele care determin ˘a animat ¸ia . . . . . . . . . . . . . . . . . . . . . 3
2 Starea actual ˘a a domeniului 5
3 Solut ¸ia propus ˘a 6
4 Prezentarea aplicat ¸iei 7
Referint ¸e bibliografice 8
i
Lista Figurilor
1.1 Explicat ¸ie figur ˘a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1
Capitolul 1
Introducere
1.1 Jocul Stratego
Stratego este un joc ˆın care juc ˘atorii det ¸in informat ¸ii incomplete. Fiecare juc ˘ator are o armat ˘a
iar scopul final este capturarea steagului inamic. Locul exact al pieselor este, la ˆınceput,
cunoscut doar de cel ce le det ¸ine. Juc ˘atorii ˆıs ¸i mut ˘a cˆate o pies ˘a, pe r ˆand, pe o pozit ¸ie
al˘aturat ˘a, liber ˘a sau pe care se afl ˘a o pies ˘a a inamicului. ˆIn cel de-al doilea caz, o b ˘at˘alie are
loc. Piesa mai slaba este eliminat ˘a iar identitatea piesei c ˆas ¸tig ˘atoare este descoperit ˘a.
1.2 De ce Stratego?
Am ales aceast ˘a tem ˘a, deoarece sunt pasionat de jocurile de strategie, precum,S ¸ah, Go, Dame
s ¸i Stratego. Acest tip de jocuri dezvolt ˘a gˆandirea analitic ˘a s ¸i ajut ˘a la imbun ˘at˘at ¸irea memoriei.
De-a lungul timpului implementarea unor juc ˘atori inteligent ¸i eficient ¸i pentru astfel de
jocuri a reprezentat un pas esent ¸ial ˆın dezvoltarea inteligent ¸ei artificiale s ¸i int ¸elegerea g ˆandirii
umane. ˆIn prezent, exista o mult ¸ime de algoritmi dezvoltat ¸i pentru jocuri precum s ¸ahul, unde
calculatorul poate investiga toate posibilele mut ˘ari chiar s ¸i cu un anumit num ˘ar de pas ¸i ˆın
viitor. X s ¸i O, Go sau Awari sunt suficient de simplu de rezolvat, ˆınsemn ˆand c ˘a, pentru toate
situat ¸iile, calculatorul s ¸tie care este cea mai bun ˘a solut ¸ie pentru a cas ¸tiga jocul.
ˆIn cazul jocului Stratego, spre deosebire de celelalte, enumerate anterior, informat ¸ia
este incomplet ˘a ceea ce ˆınseamn ˘a c˘a necesit ˘a abilit ˘at ¸i umane precum analizarea g ˆandirii
adversarului. Misiunea unui juc ˘ator inteligent ,pentru un astfel de joc, este extrem de di-
ficil˘a. Acesta este nevoit s ˘a ghiceasc ˘a piesele adversarului s ¸i ˆın acelas ¸i timp s ˘a intuiasca
urm˘atoarele mis ¸c ˘ari. Juc ˘atorul, pe care mi-am propus s ˘aˆıl realizez, este capabil s ˘a creeze
formule de start c ˆat mai originale, s ˘a fac ˘a presupuneri legate de piesele necunoscute ale ad-
versarului s ¸i s ˘a fac ˘a mut ˘ari cˆat mai corecte pentru al ajuta ˆın cˆas ¸tigarea unui joc de Stratego.
2
Introducere Elementele care determin ˘a animat ¸ia
Figura 1.1 : Explicat ¸ie figur ˘a.
1.3 Elementele care determin ˘a animat ¸ia
ˆIn primul r ˆand ne vor trebui c ˆateva variabile care s ˘a cont ¸in ˘a deplasarea p ˆan˘aˆın momentul
curent.
static float axisRot = 0.0f;
static float globRotR = 0.0f;
static float globRotG = 120.0f;
static float globRotB = 240.0f;
Astfel avem o variabil ˘a ce ret ¸ine rotat ¸ia ˆın jurul axei proprii, axisRot ,ˆımpreun ˘a cu alte 3
variabile ce ret ¸in rotat ¸iile fiec ˘arui cub ˆın jurul originii (globRotR, globRotG, globRotB) .
Arbitrar, am atribuit un caracter static acestor variabile; acest lucru face ca variabilele
marcate cu static s˘aˆıs ¸i p˘astreze valorile de la o iterat ¸ie la alta. Acelas ¸i efect se putea
obt ¸ine s ¸i cu variabile globale. Urmeaz ˘a afis ¸area celor 3cuburi:
glColor3f (1.0f, 0.0f, 0.0f);
glPushMatrix ();
glTranslatef (0.0f,0.0f,-20); //deplasat pe axele x, y, z
glRotatef (globRotR, 0,0,1);
glTranslatef (5.0f,0.0f,0.0f);
glRotatef (axisRot,0,1,0); //rotit pe axa Y
glutSolidCube (2); //cub cu latura 2
glPopMatrix ();
glColor3f (0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (0.0f,0.0f,-20); //deplasat pe axele x, y, z
glRotatef (globRotG, 0,0,1);
glTranslatef (5.0f,0.0f,0.0f);
glRotatef (axisRot,0,1,0); //rotit pe axa Y
glutSolidCube (2); //cub cu latura 2
glPopMatrix ();
glColor3f (0.0f, 0.0f, 1.0f);
glPushMatrix ();
glTranslatef (0.0f,0.0f,-20); //deplasat pe axele x, y, z
glRotatef (globRotB, 0,0,1);
glTranslatef (5.0f,0.0f,0.0f);
glRotatef (axisRot,0,1,0); //rotit pe axa Y
glutSolidCube (2); //cub cu latura 2
3
Introducere Elementele care determin ˘a animat ¸ia
glPopMatrix ();
Este important de observat modul ˆın care sunt aplicate transform ˘arile pe fiecare cub ˆın parte:
1.prima dat ˘a cubul este deplasat cu 20pe axa Ozastfel ˆıncˆat s˘a fie vizibil,
2.apoi se rotes ¸te cubul cu un unghi,
3.datorit ˘a rotat ¸iei, translat ¸ia aplicat ˘a,+5pe axa Ox, va fi conform ˘a orient ˘arii obiectului,
4.ˆınainte de a fi afis ¸at cubul se aplic ˘a s ¸i o rotat ¸ie ˆın jurul axei sale.
Dup˘a afis ¸area celor 3cuburi, urmeaz ˘a pasul de modificare a gradelor de rotat ¸ie folosite.
axisRot += 1.0f; axisRot=fmod(axisRot, 360.0f);
globRotR += 0.5f; globRotR=fmod(globRotR, 360.0f);
globRotG += 0.5f; globRotG=fmod(globRotG, 360.0f);
globRotB += 0.5f; globRotB=fmod(globRotB, 360.0f);
Fiind variabile statice, acestea ˆıs ¸i p˘astreaz ˘a valorile de la o iterat ¸ie la alta. Mai exact, aplic ˆand
o incrementare, axisRot += 1.0f , obt ¸inem o nou ˘a rotat ¸ie care difer ˘a de vechea rotat ¸ie
cu un grad.
Funct ¸ia fmod() este echivalentul operatorului %, dar act ¸ioneaz ˘a asupra variabilelor ˆın
virgul ˘a flotant ˘a. Mai exact, fmod(a,b) returneaz ˘a restul, ˆın virgul ˘a flotant ˘a, aˆımp˘art ¸irii
luialab.ˆIn acest exemplu ne ajut ˘a s˘a p˘astr˘am variabilele ˆın intervalul [0;360) grade.
4
Capitolul 2
Starea actual ˘a a domeniului
5
Capitolul 3
Solut ¸ia propus ˘a
6
Capitolul 4
Prezentarea aplicat ¸iei
7
Referint ¸e bibliografice
8
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: sigla.pngMinisterul Educat ¸iei Nat ¸ionale s ¸i Cercet ˘arii S ¸tiint ¸ifice Universitatea ”OVIDIUS” Constant ¸a Facultatea de Matematic ˘a s ¸i… [608826] (ID: 608826)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
