-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmoteur_jeu.ads
46 lines (39 loc) · 1.63 KB
/
moteur_jeu.ads
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
with Participant; use Participant;
--with Liste_Generique;
with Ada.Text_IO;
generic
type Etat is private;
type Coup is private;
-- Calcule l'etat suivant en appliquant le coup
with function Etat_Suivant(E : Etat; C : Coup) return Etat;
-- Indique si l'etat courant est gagnant pour J
with function Est_Gagnant(E : Etat; J : Joueur) return Boolean;
-- Indique si l'etat courant est un status quo (match nul)
with function Est_Nul(E : Etat) return Boolean;
-- Affiche a l'ecran le coup passe en parametre
with procedure Affiche_Coup(C : in Coup);
-- Implantation d'un package de liste de coups
with package Liste_Coups is new Liste_Generique(Coup, Affiche_Coup);
-- Retourne la liste des coups possibles pour J a partir de l'etat
with function Coups_Possibles(E : Etat; J : Joueur)
return Liste_Coups.Liste;
-- Evaluation statique du jeu du point de vue de l'ordinateur
with function Eval(E : Etat) return Integer;
-- Profondeur de recherche du coup
P : Natural;
-- Indique le joueur interprete par le moteur
JoueurMoteur : Joueur;
package Moteur_Jeu is
-- Choix du prochain coup par l'ordinateur.
-- E : l'etat actuel du jeu;
-- P : profondeur a laquelle la selection doit s'effetuer
function Choix_Coup(E : Etat) return Coup;
private
-- Evaluation d'un coup a partir d'un etat donne
-- E : Etat courant
-- P : profondeur a laquelle cette evaluation doit etre realisee
-- C : Coup a evaluer
-- J : Joueur qui realise le coup
function Eval_Min_Max(E : Etat; P : Natural; C : Coup; J : Joueur)
return Integer;
end Moteur_Jeu;