IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

pyReversi

pyReversi


précédentsommairesuivant

V. Global.py

Vous pouvez visualiser le contenu du fichier en cliquant sur le lien Global.py

V.A. Les constantes

Toutes mes constantes sont en majuscules. INFINITY représente la valeur maximum pour l'évaluation du score d'une position de jeu lors du déroulement de l'algorithme alpha-beta.
Les constantes commençant par IA définissent les fonctions pour le calcul du score. Ainsi, si vous souhaitez d'autres fonctions de calcul du score, il suffit de définir ici un identifiant puis d'écrire la fonction de calcul du score dans le module Plate.
Actuellement, j'en ai défini 6 dont 5 basiques et une faisant intervenir le calcul de quelques paramètres intéressants.

 
Sélectionnez
INFINITY = 1000
IAALEATORY = 0 ## "Coup aléatoires"
IABADSCORE = 1 ##  "Pions other - Pions self"
IABESTSCORE = 2 ## "Pions self - Pions other"
IABESTSCOREMIN = 3 ## "min(1, Pions self - Pions other)"
IABESTSCOREMOVE = 4 ## "ScoreMove self - ScoreMove other"
IAWINLOSE = 5 ## "max(-1, min(1, Pions self - Pions other))"

IACHOICES = [u"Coup aléatoires",
             u"Score normal négatif",
             u"Score normal",
             u"Gagne ou meilleur perte",
             u"ScoreMove self - ScoreMove other",
             u"Gagne ou perd"]

Nous avons aussi 4 constantes pour le plateau de jeu ou les coups:

  • PLATEINIT : plateau de jeu initial
  • PLATEMOVE : cases du plateau de jeu où il peut y avoir un pion
  • FREEMOVEINIT : case vide au départ d'une partie
  • PLATEMOVEINIT : case prise par un pion au départ d'une partie

V.B. Les variables globales

Je définis souvent un dictionnaire global glovar comment variable globale contenant toutes mes variables globales pour éviter d'avoir des conflits dans l'espace des noms quand on redéfinit une variable en ayant oublié de la déclarer global.
Ici, toutes les valeurs concernent les paramètres initiaux de la réflexion des ordinateurs noirs et blancs à savoir

  • La durée des phases du début et fin de partie.
  • La profondeur de réflexion des coups en début, milieu et fin de partie.
  • L'IA sélectionnée pour chacune des phases.

Les deux dernières valeurs freemove représentent pour une partie, les cases libres en cours et platemove, les cases utilisées.

 
Sélectionnez
glovar = {}
glovar['levelbeginblack'] = 6
glovar['levelbeginwhite'] = 6
glovar['levelmiddleblack'] = 4
glovar['levelmiddlewhite'] = 4
glovar['levelendblack'] = 8
glovar['levelendwhite'] = 8
glovar['thinkingblack'] = True
glovar['thinkingwhite'] = True
glovar['iabeginblack'] = IABESTSCOREMOVE
glovar['iabeginwhite'] = IABESTSCOREMOVE
glovar['nbmovebeginblack'] = 6
glovar['nbmovebeginwhite'] = 6
glovar['iaendblack'] = IABESTSCOREMIN
glovar['iaendwhite'] = IABESTSCOREMIN
glovar['nbmoveendblack'] = 8
glovar['nbmoveendwhite'] = 8
glovar['iamiddleblack'] = IABESTSCOREMOVE
glovar['iamiddlewhite'] = IABESTSCOREMOVE

glovar['freemove'] = range(11, 89)
glovar['platemove'] = []

précédentsommairesuivant

Copyright © 2008 Guillaume Duriaud. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.