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