The Prophet Documentation

Transcription

The Prophet Documentation
The Prophet Documentation
Release 0.1
Pierre Cosquer, Pierre Chesneau, Gregory Flaquiere,
Martin Guillon-Verne, Pascal Garcia
April 26, 2009
CONTENTS
1
Documentation utilisateur
3
2
Documentation pour développeur
2.1 Règle de codage pour le code écrit en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
5
6
3
Licence
21
4
Indices and tables
23
Module Index
25
Index
27
i
ii
The Prophet Documentation, Release 0.1
pokerCal est un projet d’aide à la décision pour le poker. Il permet d’aider le joueur à prendre les bonnes décisions
dans des tournois de type Sir’n go. Les règles suportées sont celles du Texas Hold ‘hem no limit.
CONTENTS
1
The Prophet Documentation, Release 0.1
2
CONTENTS
CHAPTER
ONE
DOCUMENTATION UTILISATEUR
Documentation utilisateur
3
The Prophet Documentation, Release 0.1
4
Chapter 1. Documentation utilisateur
CHAPTER
TWO
DOCUMENTATION POUR
DÉVELOPPEUR
Ces pages présentent la documentation de la partie interface du projet pokerCal.
2.1 Règle de codage pour le code écrit en Python
Le code doit compiler avec Python 2.5 et la 2.6, et si possible avec la version 2.4
Le code n’est pas compatible avec Python 3, on utilisera les scripts de conversion quand toutes les bibliothèques
utilisées supporteront la version 3 et quand le code sera finalisé.
Les règles sont précisées ici : http://www.python.org/dev/peps/pep-0008/
Résumé
•
•
•
•
•
• indentation avec 4 espaces, aucune tabulation (\t) dans le code
encoding : utf-8 → #-*- coding:utf-8 -*- en début de ficher
pas d’accent dans les commentaires de type #
accents dans les chaînes unicode → utilsation de u""
fin de ligne Unix → \n
nom des variables/méthodes/classes → anglais, la plupart des termes viennent du poker et
sont en anglais (stack, dealer...)
Traduction
• La traduction se fait avec gettext, il ne faut donc pas réaffecter la variable _
• Le texte par défaut doit être en français
• Tout texte visible par l’utilisateur doit être traduit avec la fonction _, en outre quand une
string dépend d’une valeur, il faut utiliser l’opérateur %
• exemple : _("votre tapis est de %d") % stack et non _("votre tapis
est de " + str(stack)")
2.2 Outils
Listes des outils utiles pour le développement du projet
pour l’interface
• Python : le langage de programmation utilisé
• GTK et PyGTK : le toolkit utilisé
• SWIG : utilisé pour le binding vers le code écrit en C++
• Sphinx : utilisé pour générer la documentation
5
The Prophet Documentation, Release 0.1
2.3 Modules
2.3.1 about — Boîte À propos...
class AboutBox()
Boîte de dialogue À propos... du projet
show_aboutbox(*args)
Lance la AboutBox du projet
2.3.2 advice — widget affichant des conseils pour le joueur
class AdviceWidget(game)
Ce widget affiche les conseils pour le hero du jeu game
Il affiche en outre les équités
Parameter game – le game.Game dont on veut afficher les données des joueurs
get_ev_widget()
update_advice()
Met à jour les conseils donnés à l’utilisateur
class Calculator(game)
compute_equity()
compute_fgs()
set_etat(player)
exception CalculatorException
class EVView()
Tableau d’affichage d’es ev des joueurs
2.3.3 card — classe décrivant une carte et widget pour sélectionner une main
Module card définissant l’objet Card et les widgets permettant de sélectionner une main
classes
• Card : un objet représentant une carte
• HandWidget : un widget permettant de sélectionner les cartes d’une main
fonctions
• hand_to_str()
• str_to_hand()
Constantes BACK_CARD
Objet de type Card représentant une carte indéterminée
CLUB
DIAMOND
HEART
SPADE
entiers représentant une couleur
class Card(height, color)
Classe représentant une carte
Parameters • height (int de -1 à 12) – hauteur de la carte, -1 signifie indéterminée
• color (int) – la couleur de la carte, valeurs possibles :CLUB, DIAMOND, HEART ou
SPADE
6
Chapter 2. Documentation pour développeur
The Prophet Documentation, Release 0.1
class from_int(card_number)
classmethod qui retourne une Card en fonction du nombre card_number
Parameter card_number (int de 0 à 52) – numéro de la carte
Returns la carte correspondant à card_number
Return type Card
Exemple
>>> :Card.from_int(51)
Card(12, SPADE)
>>> int(Card(12, SPADE))
51
>>> Card(12, SPADE) == Card.from_int(51)
True
>>> Card.from_int(52)
Card(-1, -)
>>> Card(12, SPADE) == Card.from_int(52)
False
>>> BACK_CARD == Card.from_int(52)
True
>>> int(BACK_CARD)
52
class from_str(card_str)
classmethod qui retourne une Card en fonction du str card_str (ex Ac)
Parameter card_str (string) – chaîne représentant la carte
Returns la carte correspondant à card_str
Return type Card
Exemple
>>> :Card.from_str(’5c’)
Card(4, CLUB)
>>> str(Card(4, CLUB))
’5c’
>>> Card(4, CLUB) == Card.from_str(’5c’)
True
>>> Card.from_str(’--’)
Card(-1, -)
>>> BACK_CARD == Card.from_str("--")
True
class HandWidget(player, ratio=0.5)
Widget représentant la main d’un joueur ‘player’ affiche des boutons pour sélectionner et afficher la main
du joueur
Parameters • player (player.Player) – le player dont on veut afficher la main
• ratio (float > 0) – ratio de la taille de l’image par rapport à la taille d’origine
button_clicked_cb(button, i)
Callback quand l’on clique sur button (d’indice i dans buttons) affiche un dialog pour sélectionner la
carte
folded_changed_cb(player, folded)
Callback quand le statut couché/pas couché du joueur change
hand_changed_cb(player, cards)
Callback quand la main du player a changé : on met à jour nos images
get_card_pixbuf(card)
Retourne un gtk.Pixbuf représentant la carte card (de type Card ou int):
•0 : as de Trèfle, ..., 12 : roi de Trèfle
•13 : as de Carreau, ..., 25 : roi de Carreau
•26 : as de Coeur, ..., 38 : roi de Coeur
2.3. Modules
7
The Prophet Documentation, Release 0.1
•39 : as de Pique, ..., 51 : roi de Pique
•52 : carte de dos
hand_to_str(hand)
Convertit la main hand en string de la forme ‘As Th’
Parameter hand (tuple ou liste de Card) – la main à convertir
Returns représentation de la main
Return type string
Exemple
>>> : hand_to_str((Card(0, CLUB), Card.from_int(24)))
’AcQd’
>>> hand_to_str((Card(0, CLUB), BACK_CARD))
’Ac--’
str_to_hand(hand_str)
Convertit la string hand_str de la forme ‘As Th’ en main (liste de Card)
Parameter hand_str (string) – la chaîne à convertir en main
Returns la main correspondante
Return type liste de Card
Exemple
>>> : str_to_hand("AsKc")
[Card(0, SPADE), Card(12, CLUB)]
>>> str_to_hand("As--")
[Card(0, SPADE), Card(-1, -)]
2.3.4 console — mode de saisie par console (terminal)
Ce module contient décrit le mode de saisie par console (the Geek Way)
class History()
Basic command history class
append(line)
Append a new command to history
next(current)
Get next command in history
prev(current)
Get previous command in history
class InterpreterTextView(game)
Widget qui affiche une console pour contrôler le jeu game
Parameter game – le game.Game que l’on veut controler
Raccourcis clavier • Ctrl-A, home : place le curseur juste après le prompt
• Ctrl-E : place le curseur à la fin de la commande
• Ctrl-L : efface la commande en cours
• flêche haut, flêche bas : navigation dans l’historique des commandes
clear()
Clear text buffer & view
current_line()
Get current active line
current_line_bounds()
Get current active line bounds
8
Chapter 2. Documentation pour développeur
The Prophet Documentation, Release 0.1
eval()
Evaluate if current line is ready for execution
execute(cmd)
Execute the command cmd by the interpreter
on_key_pressed(widget, event)
Key pressed handler
prompt()
Display normal prompt
replace(line)
Replace current active line with line
write(line, style=None)
Write a line using given style (if any)
class InterpreterWidget(game)
ScrolledWindow qui contient un InterpreterTextView
Parameter game – le game.Game que l’on veut controler
class PokerInterpreter(game, stdout)
emptyline()
class gtkoutfile(console, fn, tag=’normal’)
A fake output file object. It sends output to a GTK TextView widget, and if asked for a file number, returns
one set on instance creation
close()
fileno()
flush()
isatty()
read(size)
readline()
readlines()
seek(position)
tell()
truncate()
write(string)
writelines(lines)
2.3.5 cooPoker — programme principal
Programme principal de l’interface du projet
class MainWindow(games=())
ask_winner(*args)
compute(*args)
Calcule les conseils du jeu en cours
destroy(widget, data=None)
Détruit toutes les fenêtres
double_blinds(*args)
fermer(*args)
Ferme l’onglet courrant
2.3. Modules
9
The Prophet Documentation, Release 0.1
give_money_to_winner(*args)
ifgame(function)
Décorateur à utilisé pour des fonctions qui appellent une methode d’un game si il n’y a pas de jeu
en cours (notebook vide), rien ne se passe si il y a un jeu, la méthode game.*function.__name__* est
appelée
imp(*args)
Lance l’importation de partie
move_dealer(*args)
new_game(*args)
Affiche une fenêtre pour commencer une nouvelle partie
open_game(*args)
Affiche une fenêtre pour ouvrir une nouvelle partie
preference(*args)
Affiche la fenêtre des préférences
save_game(*args)
Affiche une fenêtre pour sauvegarder la partie courante
main()
Lance l’application
quit()
Quitte le programme
2.3.6 datalabel — widget affichant des propriétés d’un joueur sur la table
Ce module contient des Widgets utiles pour table.PokerTableWidget
class DataLabel(player)
Widget abstrait pour afficher textuellement une propriété de player l’utilisateur peut modifier la valeur en
doucle cliquant sur le texte
Parameter player – le player.Player dont on veut afficher une propriété
entry_activate_cb(entry)
Callback quand l’utilisateur valide la saisie
entry_escape_cb(entry, event)
Callback quand l’utilisateur appuie sur une touche si il s’agit de la touche echap, on ne modifie pas la
propriété
set_text(text)
update_label(new_text)
Fonction appelée pour mettre à jour la propriété
Parameter new_text (string) – le text entré par l’utilisateur
class NameLabel(player)
DataLabel affichant le nom du joueur
update_label(new_text)
class NumberLabel(player, template=’Stack:%d$’, property=’stack’)
DataLabel affichant une propriété entière du joueur
Parameters • template (string) – le texte à afficher, doit contenir %d
• property (string) – la propriété (au sens GObject) de le player à afficher, doit être de
type entier
update_label(new_text)
10
Chapter 2. Documentation pour développeur
The Prophet Documentation, Release 0.1
2.3.7 fgs — Arbre d’exploration FGS
class FGSDialog(parent, fgs_engine)
Dialog affichant des résultats sur un calcul de fgs (arbre)
class FGSTreeView(fgs_engine)
Objet représentant un arbre de simulation FGS
2.3.8 game — classe décrivant un jeu
prize_money_to_str(prize_money)
Retourne un affichage simplifié de la répartition des gains prize_money
Parameter prize_money (tuple de float) – la répartition des gains
Return type str
Exemple:
>>> prize_money_to_str((50, 30, 20))
’50.00, 30.00, 20.00’
>>> prize_money_to_str((50.5, 30.00000001, 20))
’50.50, 30.00, 20.00’
str_to_prize_money(prize_str)
Retourne un affichage simplifié de la répartition des gains prize_str
Parameter prize_str – chaîne représentant la répartition des gains
Return type list de float
Exemple:
>>> str_to_prize_money("50, 30., 20.00")
[50.0, 30.0, 20.0]
>>> prize_money_to_str(str_to_prize_money("12.3, 32.49, 43, 1"))
’12.30, 32.49, 43.00, 1.00’
class Game(name="", players=, [], pot=0, cards=(BACK_CARD, )*5)
Gobject représentant une partie
Parameters • name (string) – le nom de la partie
• players (liste de player.Player) – la liste des joueurs
• pot (int >= 0) – la valeur du pot
• cards (tuple de card.Card) – tuple des cartes du flop
Attributs • name – le nom du de la partie
• pot – la valeur du pot
• ante – la valeur de l’ante
• small_blind – la valeur de la small blind
• big_blind – la valeur de la big blind
• cards – tuple des card.Card de la table
• players – liste des player.Player de la partie
• dealer – le dealer player.Player de la partie
• hero – le player.Player que l’on doit conseillé
• prize_money – tuple de float – la répartition des gains, valeur par défaut : (50, 30, 20)
Chacun de ces attributs peut être obtenu avec la méthode “get_attr_name” et modifié avec la méthode
“set_attr_name”
Quand un de ces attributs est modifié, un signal de nom “attr_name-changed” est émis
Deux signaux supplémentaires peuvent être émis :
ajouté à la liste des joueurs
2.3. Modules
• “player-added” : émis quand un joueur est
11
The Prophet Documentation, Release 0.1
• “player-removed” : émis quand un joueur est rétiré de la liste des joueurs
Exemple
>>> : g = Game("jeu")
>>> g.get_name()
’jeu’
>>> def f(p, n):
...
print "Nouveau nom : %s" % n
...
>>> s = g.connect("name-changed", f)
>>> g.set_name("Game")
Nouveau nom : Game
>>> g.set_big_blind(100)
>>> (g.get_ante(), g.get_small_blind(), g.get_big_blind())
(0, 0, 100)
add_player(player)
Ajoute le player.Player à la liste des joueurs
Exemple
>>> :g = Game("Jeu")
>>> def f(g, p):
...
print "Nouveau joueur : %s" % p.get_name()
...
>>> s = g.connect("player-added", f)
>>> g.add_player(Player("Robert"))
Nouveau joueur : Robert
remove_player(player)
Supprime le player.Player de la liste des joueurs Si player est le héros, le nouveau player devient
le joueur situé à droite de player, de même si il est dealer
Exemple
>>> :g = Game("Jeu")
>>> p = Player("Robert")
>>> g.add_player(p)
>>> len(g.get_players())
1
>>> def f(g, p):
...
print "%s quitte le jeu" % p.get_name()
...
>>> s = g.connect("player-removed", f)
>>> g.remove_player(p)
Robert quitte le jeu
>>> len(g.get_players())
0
2.3.9 gamewidget — widgets affichant les caractéristiques d’une partie
class GameWidget(game)
Widget représentant un game.Game, il inclut la table et le tableau de saisie ainsi que les autres informations
sur le jeu game
Parameter game – le game.Game que l’on veut afficher
class InfoGameWidget(game)
Widget qui affiche les informations générales d’une partie telles que le nom, la valeur des blinds
Parameter game – le game.Game dont on veut afficher les informations
check_validation()
Vérifie si toutes les entries sont valides
compute()
do_get_property(property)
12
Chapter 2. Documentation pour développeur
The Prophet Documentation, Release 0.1
do_set_property(property, value)
validate()
Active toutes les entries
class TreeGameWidget(game)
Tableau de saisie des données des joueurs d’une partie
Parameter game – le game.Game dont on veut afficher les données des joueurs
add_player(player)
bool_toggled_cb(cell, path, model, i)
text_edited_cb(cell, path, new_text, model, i, conv)
int_(str_)
Conversion d’une chaine en int, si la chaine représente un float, la conversion tronque le nombre
Exemple:
>>> int_("42")
42
>>> int_("16.64")
16
2.3.10 handwidget — widgets affichant les cartes/plage de mains d’un joueur
class HandRangeWidget(game, player)
Widget qui sélectionne un affichage adéquoit suivant le statut hero de player
Parameters • game – le game.Game dont on veut afficher les données de player
• player – le player.Player dont on veut afficher les cartes
2.3.11 handselector — widget de sélection de mains
HO_to_range(ho)
class RangeSelectorDialog(parent, player)
Dialog qui affiche un RangeSelectorWidget
Parameters • parent – la fenêtre parente ou None
• player – le player.Player dont on veut modifier la plage
class RangeSelectorWidget()
Widget de séléection d’une plage de mains, affiche un tableau avec toutes les mains, un slide pour choisir le
pourcentage et une entrée pour choisir, voir la plage
button_toggle_cb(button)
Callback lors d’un clic sur un bouton
get_range()
Returns la plage de mains au format concis
Return type str
set_range(range_str)
Met à jour la plage de main en fonction de range_str
update_entry()
Met à jour l’entry de saisie
value_changed_cb(scale, *w)
Callback quand l’user change le pourcentage
class RangeWidget(player)
Widget qui affiche une image de cartes, le pourcentage de mains et une représentation simplifiée de la plage
de main du joueur. Si on double clique sur cette plage, une RangeSelectorDialog est affichée.
2.3. Modules
13
The Prophet Documentation, Release 0.1
Parameter player – le player.Player dont on veut modifier la plage
cmp_hands(x, y)
Compare les mains x et y en fonction des hauteurs. Cette fonction assume que la hauteur la plus forte d’une
main est le premier caractère. Retourne -1 si x < y, 0 si x == y, 1 si x > y
Parameters • x (str) – la première main à comparer
• y (str) – la deuxième main à comparer
Returns -1 si x < y, 0 si x == y, 1 si x > y
Return type int
Exemple
>>> : cmp_hands("AA", "KK")
1
>>> cmp_hands("KTs", "KQs")
-1
>>> cmp_hands("KTo", "KTo")
0
expand_hand(hand)
Retourne la liste des mains que l’on peut obtenir à partir de la main simplifiée hand
Parameter hand (str) – une main
Returns la liste des mains
Return type liste de str
Exemple
>>> : expand_hand("22")
[’22’]
>>> expand_hand("ATs+")
[’ATs’, ’AJs’, ’AQs’, ’AKs’]
expand_string(hands)
Retourne la liste des mains que l’on peut obtenir à partir de la plage simplifiée hands
Parameter hands (str) – la plage de mains
Returns la liste des mains
Return type liste de str
Exemple
>>> : sorted(expand_string("22, KK+, AKo,ATo+"))
[’22’, ’AA’, ’AJo’, ’AKo’, ’AQo’, ’ATo’, ’KK’]
>>> sorted(expand_string("33, AcKh, 2sKd"))
[’2sKd’, ’33’, ’AcKh’]
>>> len(expand_string(’random’))
169
find_offsuited(x)
Retourne la liste des offsuited hands de selected_hands en simplifiant le résultat sous le format XXs+
Parameter selected_hands (liste de str) – la liste des mains
Return type liste de str
Exemple
>>> : find_offsuited(sorted_hands[120:])
[’QTo+’, ’K9o+’, ’A5o+’]
find_pairs(selected_hands)
Retourne la liste des paires de selected_hands en simplifiant le résultat sous le format XX+
14
Chapter 2. Documentation pour développeur
The Prophet Documentation, Release 0.1
Parameter selected_hands (liste de str) – la liste des mains
Returns la liste simplifiée des paires
Return type liste de str
Exemple
>>> : find_pairs(("45s", "AA", "TT", "QQ", "KK", "44", "33"))
[’33’, ’44’, ’TT’, ’QQ+’]
find_range(hands)
Retourne la liste des paires, suited et offsuited de hands en simplifiant le résultat sous le format XXs+
Parameter hands (liste de str) – la liste des mains
Returns la liste simplifiée des mains
Return type str
Exemple
>>> : find_range(sorted_hands[100:])
’33+,T9s,J8s+,Q6s+,K3s+,A2s+,J9o+,Q8o+,K6o+,A2o+’
find_suited(selected_hands, s=’s’)
Retourne la liste des suited hands de selected_hands en simplifiant le résultat sous le format XXs+
Parameters • selected_hands (liste de str) – la liste des mains
• s (str de un caractère) – caractère définissant le type de mains
Returns la liste simplifiée des suited
Return type liste de str
Exemple
>>> : find_suited(sorted_hands[120:])
[’JTs’, ’Q9s+’, ’K6s+’, ’A2s+’]
is_range_valid(range)
Retourne vrai si range représente une plage de mains valide
Exemple:
>>> is_range_valid("AKs, 22+, T3o+")
True
>>> is_range_valid("22,55,AA")
True
>>> is_range_valid("AKs, 22+, T^o+")
False
main()
Fonction de test du RangeSelectorWidget
str_to_range(string)
Retourne le couple (string, pourcentage de mains) où string représente une plage dans le format concis
2.3.12 menu — menu et barre d’outils
class Menu(app)
Menu
action_toggle(action, objet)
update_menu(pager, page, page_num)
Met à jour le menu en fonction des actions possibles
2.3. Modules
15
The Prophet Documentation, Release 0.1
2.3.13 newgame — dialog pour créer une nouvelle partie
Ce module contient le widget permettant de créer une nouvelle partie
class NewGameDialog(parent)
Dialog qui permet de créer un nouveau game.Game, accessible par l’attribut game
check_validity()
Vérifie si on peut valider la création d’une partie
class PlayersTreeView(game)
Tableau de saisie des noms des joueurs d’une partie
Parameter game – le game.Game dont on veut afficher les données des joueurs
add_player(player)
ajoute player
get_selected_player()
Retourne le joueur sélectionné ou None si pas de sélection
class SimpleIGW(game)
check_template(template)
Vérifie si les valeurs de template sont correctes, retourne une exception de type ValueError en cas d’échec
csv_split(value)
Splite la str value selon le principe d’une ligne au format csv
Exemple:
>>> csv_split(’Robert, Jean, "Po po"’)
[’Robert’, ’Jean’, ’Po po’]
get_templates()
Retourne la liste des templates définisant une nouvelle partie La liste retournée contient des dicts avec les
valeurs voulues
2.3.14 notebook — gestion des onglets
Ce module contient le Notebook qui permet d’afficher les parties
class Notebook()
Notebook qui affiche les différentes parties
add_game(game)
Ajoute game à la liste des parties, et crée un onglet avec un gamewidget.GameWidget affichant
les caractérisques de game
Parameter game – le game.Game à ajouter
get_current_game()
Retourne le game affiché ou None si pas de jeu
get_games()
Retourne la liste des game.Game en cours
remove_current_game()
Supprime l’onglet actif et son game.Game
remove_game(game)
Supprime la page qui contient game
2.3.15 player — classe décrivant un joueur
class Player(name="", stack=0, cards=(BACK_CARD, BACK_CARD))
GObject représentant un joueur de poker
16
Chapter 2. Documentation pour développeur
The Prophet Documentation, Release 0.1
Parameters • name (string) – le nom du joueur
• stack (int >= 0) – le tapis du joueur
• cards (tuple de card.Card) – tuple des cartes du joueurs
Attributs • name – le nom du joueur
• stack – le tapis du joueur
• bet – la mise du joueur
• folded – booléen : vrai si le joueur est couché
• cards – tuple des card.Card du joueur
• range – tuple (str qui représentent la plage de main, float du pourcentage de mains)
• call_probabiliy – le pourcentage de chance de suivre (compris entre 0 et 1)
Chacun de ces attributs peut être obtenu avec la méthode “get_attr_name” et modifié avec la méthode
“set_attr_name”
Quand un de ces attributs est modifié, un signal de nom “attr_name-changed” est émis
Exemple
>>> : p1 = Player("Patrick", 100)
>>> p1.get_name()
’Patrick’
>>> def f(p, n):
...
print "Nouveau nom : %s" % n
...
>>> s = p1.connect("name-changed", f)
>>> p1.set_name("Robert")
Nouveau nom : Robert
set_range(range)
Met à jour la plage de main et les mains en fonction de la valeur de range (str représentant une
main ou une plage suivant le format concis) Si is_hero est vrai, range doit être de la form “Xc Yc”,
l’attribut cards est mis à jour et l’attribut range devient (range, 1. / 169) Sinon, l’attribut cards devient
(card.BACK_CARD, card.BACK_CARD) et l’attribut range devient (range, pourcentage de mains)
2.3.16 save — sauvegarde de parties
exception ParserException
exception UndoException
get_game(parser)
Retourne le game.Game décrit dans le ConfigParser parser
get_parser(game)
Crée un objet ConfigParser qui permet la sauvegarde de game
load(path)
Retourne le game.Game décrit dans le fichier de chemin path
Raise class:ParserException en cas d’erreur dans le fichier
load_dialog()
Affiche une fenêtre pour ouvrir plusieurs parties. Il s’agit des generator qui retourne les game.Game
correspondant aux fichiers sélectionnés Si une exception de type IOError ou ParserException est lancée,
elle est retournée à la place du game.Game et non relancée :raise: UndoException si l’utilisateur annule la
sauvegarde
save(game, path)
Sauvegarde le game.Game game dans le fichier de chemin path
save_dialog(game)
Affiche une fenêtre pour sauvegarder une partie, la sauvegarde si le chemin est confirmé
Raise class:UndoException si l’utilisateur annule la sauvegarde
2.3. Modules
17
The Prophet Documentation, Release 0.1
2.3.17 table — widget affichant une table de poker
Ce module contient un widget PokerTableWidget qui permet d’afficher visuellement une table de poker
class PokerTableWidget(game)
Widget affichant une table de poker
Parameter game – le game.Game dont on veut afficher la table
compute_rayons()
Calcule la valeur des rayons de l’ellipse qui représente la table
Modifie les attributs rayon_x et rayon_y afin d’afficher correctement la table
do_expose_event(event)
draw_background(context)
Dessine le fond
Parameter context – le CairoContext où l’on dessine
draw_boxes()
Ajoute les informations sur le nom, le tapis et les cartes des joueurs
draw_dealer_button()
Ajoute le bouton qui indique qui est dealer
draw_flop()
Ajoute les cartes centrales et la valeur du pot
draw_players(context)
Dessine les têtes des joueurs
Parameter context – le CairoContext où l’on dessine
draw_table(context)
Dessine la table de poker (l’ovale vert)
Parameter context – le CairoContext où l’on dessine
get_player_at_position(x, y)
Retourne le joueur à la position (x, y)
layout_resize(widget, rect)
2.3.18 utils — fonctions diverses
check_property(prop, value, other=None)
directory(*path)
Retourne le chemin permettant d’ouvrir le fichier de chemin path
get_data_path(file_name)
Retourne le chemin de lu fichier de nom file_name qui se trouve dans le répertoire data/ du projet
get_image_path(image_name)
Retourne le chemin de l’image de nom image_name qui se trouve dans le répertoire data/images du projet
openf(data=None)
Lance la fenêtre d’ouverture d’un fichier, retourne le nom du fichier ou None (annulation)
Parameter path – chemin du fichier sélectionné par défaut
prepare_to_xml(text)
Retourne un str permettant d’utiliser text dans du xml
savef(path=”)
Lance une fenêtre de sauvegarde du fichier, Retourne le nom du fichier ou None (annulation)
Parameter path – chemin du fichier sélectionné par défaut
show_message(message)
Affiche le message d’erreur message
18
Chapter 2. Documentation pour développeur
The Prophet Documentation, Release 0.1
2.3.19 wrapper — wrapper vers l’handEvaluator et calculator
Ce module permet d’importer facilement les wrappers vers handEvaluator et calculator
2.3. Modules
19
The Prophet Documentation, Release 0.1
20
Chapter 2. Documentation pour développeur
CHAPTER
THREE
LICENCE
Non déterminée
21
The Prophet Documentation, Release 0.1
22
Chapter 3. Licence
CHAPTER
FOUR
INDICES AND TABLES
• Index
• Module Index
• Search Page
23
The Prophet Documentation, Release 0.1
24
Chapter 4. Indices and tables
MODULE INDEX
A
about, 6
advice, 6
C
card, 6
console, 8
cooPoker, 9
D
datalabel, 10
F
fgs, 11
G
game, 11
gamewidget, 12
H
handselector, 13
handwidget, 13
M
menu, 15
N
newgame, 16
notebook, 16
P
player, 16
S
save, 17
T
table, 18
U
utils, 18
25
The Prophet Documentation, Release 0.1
26
Module Index
INDEX
A
about (module), 6
AboutBox (class in about), 6
action_toggle() (menu.Menu method), 15
add_game() (notebook.Notebook method), 16
add_player() (game.Game method), 12
add_player() (gamewidget.TreeGameWidget method),
13
add_player() (newgame.PlayersTreeView method), 16
advice (module), 6
AdviceWidget (class in advice), 6
append() (console.History method), 8
ask_winner() (cooPoker.MainWindow method), 9
B
BACK_CARD (in module card), 6
bool_toggled_cb()
(gamewidget.TreeGameWidget
method), 13
button_clicked_cb() (card.HandWidget method), 7
button_toggle_cb()
(handselector.RangeSelectorWidget method), 13
C
Calculator (class in advice), 6
CalculatorException, 6
Card (class in card), 6
card (module), 6
check_property() (in module utils), 18
check_template() (in module newgame), 16
check_validation()
(gamewidget.InfoGameWidget
method), 12
check_validity() (newgame.NewGameDialog method),
16
clear() (console.InterpreterTextView method), 8
close() (console.gtkoutfile method), 9
CLUB (in module card), 6
cmp_hands() (in module handselector), 14
compute() (cooPoker.MainWindow method), 9
compute() (gamewidget.InfoGameWidget method), 12
compute_equity() (advice.Calculator method), 6
compute_fgs() (advice.Calculator method), 6
compute_rayons() (table.PokerTableWidget method),
18
console (module), 8
cooPoker (module), 9
csv_split() (in module newgame), 16
current_line() (console.InterpreterTextView method), 8
current_line_bounds()
(console.InterpreterTextView
method), 8
D
DataLabel (class in datalabel), 10
datalabel (module), 10
destroy() (cooPoker.MainWindow method), 9
DIAMOND (in module card), 6
directory() (in module utils), 18
do_expose_event() (table.PokerTableWidget method),
18
do_get_property()
(gamewidget.InfoGameWidget
method), 12
do_set_property()
(gamewidget.InfoGameWidget
method), 12
double_blinds() (cooPoker.MainWindow method), 9
draw_background() (table.PokerTableWidget method),
18
draw_boxes() (table.PokerTableWidget method), 18
draw_dealer_button()
(table.PokerTableWidget
method), 18
draw_flop() (table.PokerTableWidget method), 18
draw_players() (table.PokerTableWidget method), 18
draw_table() (table.PokerTableWidget method), 18
E
emptyline() (console.PokerInterpreter method), 9
entry_activate_cb() (datalabel.DataLabel method), 10
entry_escape_cb() (datalabel.DataLabel method), 10
eval() (console.InterpreterTextView method), 8
EVView (class in advice), 6
execute() (console.InterpreterTextView method), 9
expand_hand() (in module handselector), 14
expand_string() (in module handselector), 14
F
fermer() (cooPoker.MainWindow method), 9
fgs (module), 11
FGSDialog (class in fgs), 11
FGSTreeView (class in fgs), 11
fileno() (console.gtkoutfile method), 9
find_offsuited() (in module handselector), 14
find_pairs() (in module handselector), 14
27
The Prophet Documentation, Release 0.1
find_range() (in module handselector), 15
find_suited() (in module handselector), 15
flush() (console.gtkoutfile method), 9
folded_changed_cb() (card.HandWidget method), 7
from_int() (card.Card class method), 6
from_str() (card.Card class method), 7
G
Game (class in game), 11
game (module), 11
GameWidget (class in gamewidget), 12
gamewidget (module), 12
get_card_pixbuf() (in module card), 7
get_current_game() (notebook.Notebook method), 16
get_data_path() (in module utils), 18
get_ev_widget() (advice.AdviceWidget method), 6
get_game() (in module save), 17
get_games() (notebook.Notebook method), 16
get_image_path() (in module utils), 18
get_parser() (in module save), 17
get_player_at_position()
(table.PokerTableWidget
method), 18
get_range()
(handselector.RangeSelectorWidget
method), 13
get_selected_player()
(newgame.PlayersTreeView
method), 16
get_templates() (in module newgame), 16
give_money_to_winner()
(cooPoker.MainWindow
method), 9
gtkoutfile (class in console), 9
H
hand_changed_cb() (card.HandWidget method), 7
hand_to_str() (in module card), 8
HandRangeWidget (class in handwidget), 13
handselector (module), 13
HandWidget (class in card), 7
handwidget (module), 13
HEART (in module card), 6
History (class in console), 8
HO_to_range() (in module handselector), 13
I
ifgame() (cooPoker.MainWindow method), 10
imp() (cooPoker.MainWindow method), 10
InfoGameWidget (class in gamewidget), 12
int_() (in module gamewidget), 13
InterpreterTextView (class in console), 8
InterpreterWidget (class in console), 9
is_range_valid() (in module handselector), 15
isatty() (console.gtkoutfile method), 9
L
layout_resize() (table.PokerTableWidget method), 18
load() (in module save), 17
load_dialog() (in module save), 17
28
M
main() (in module cooPoker), 10
main() (in module handselector), 15
MainWindow (class in cooPoker), 9
Menu (class in menu), 15
menu (module), 15
move_dealer() (cooPoker.MainWindow method), 10
N
NameLabel (class in datalabel), 10
new_game() (cooPoker.MainWindow method), 10
newgame (module), 16
NewGameDialog (class in newgame), 16
next() (console.History method), 8
Notebook (class in notebook), 16
notebook (module), 16
NumberLabel (class in datalabel), 10
O
on_key_pressed()
(console.InterpreterTextView
method), 9
open_game() (cooPoker.MainWindow method), 10
openf() (in module utils), 18
P
ParserException, 17
Player (class in player), 16
player (module), 16
PlayersTreeView (class in newgame), 16
PokerInterpreter (class in console), 9
PokerTableWidget (class in table), 18
preference() (cooPoker.MainWindow method), 10
prepare_to_xml() (in module utils), 18
prev() (console.History method), 8
prize_money_to_str() (in module game), 11
prompt() (console.InterpreterTextView method), 9
Q
quit() (in module cooPoker), 10
R
RangeSelectorDialog (class in handselector), 13
RangeSelectorWidget (class in handselector), 13
RangeWidget (class in handselector), 13
read() (console.gtkoutfile method), 9
readline() (console.gtkoutfile method), 9
readlines() (console.gtkoutfile method), 9
remove_current_game() (notebook.Notebook method),
16
remove_game() (notebook.Notebook method), 16
remove_player() (game.Game method), 12
replace() (console.InterpreterTextView method), 9
S
save (module), 17
save() (in module save), 17
save_dialog() (in module save), 17
Index
The Prophet Documentation, Release 0.1
save_game() (cooPoker.MainWindow method), 10
savef() (in module utils), 18
seek() (console.gtkoutfile method), 9
set_etat() (advice.Calculator method), 6
set_range()
(handselector.RangeSelectorWidget
method), 13
set_range() (player.Player method), 17
set_text() (datalabel.DataLabel method), 10
show_aboutbox() (in module about), 6
show_message() (in module utils), 18
SimpleIGW (class in newgame), 16
SPADE (in module card), 6
str_to_hand() (in module card), 8
str_to_prize_money() (in module game), 11
str_to_range() (in module handselector), 15
T
table (module), 18
tell() (console.gtkoutfile method), 9
text_edited_cb()
(gamewidget.TreeGameWidget
method), 13
TreeGameWidget (class in gamewidget), 13
truncate() (console.gtkoutfile method), 9
U
UndoException, 17
update_advice() (advice.AdviceWidget method), 6
update_entry()
(handselector.RangeSelectorWidget
method), 13
update_label() (datalabel.DataLabel method), 10
update_label() (datalabel.NameLabel method), 10
update_label() (datalabel.NumberLabel method), 10
update_menu() (menu.Menu method), 15
utils (module), 18
V
validate() (gamewidget.InfoGameWidget method), 13
value_changed_cb()
(handselector.RangeSelectorWidget method), 13
W
write() (console.gtkoutfile method), 9
write() (console.InterpreterTextView method), 9
writelines() (console.gtkoutfile method), 9
Index
29