当前位置: 首页>>代码示例>>Python>>正文


Python Arena.handleNextMarbleMove方法代码示例

本文整理汇总了Python中arena.Arena.handleNextMarbleMove方法的典型用法代码示例。如果您正苦于以下问题:Python Arena.handleNextMarbleMove方法的具体用法?Python Arena.handleNextMarbleMove怎么用?Python Arena.handleNextMarbleMove使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在arena.Arena的用法示例。


在下文中一共展示了Arena.handleNextMarbleMove方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: ArenaController

# 需要导入模块: from arena import Arena [as 别名]
# 或者: from arena.Arena import handleNextMarbleMove [as 别名]
class ArenaController():
    """
    classe qui gère tout le bazar pour une Arena : 
    Déroulement des cycles d'animation et de jeu, affichage de l'Arena entière, des anims, ...
    L'affichage est effectué sur la sortie standard, paf, direct.
    Type MVC : Contrôleur
    """
    
    def __init__(self):
        """ Constructeur """
        # Arena de largeur 5 et de hauteur 2. L'initialisation du contenu de l'Arena
        # (ses Components) est directement effectuée dans l'init de la classe Arena.
        # TRODO : d'ailleurs c'est mal. Mais provisoire.
        self.arena = Arena((5, 2))
        self.arenaDisplayer = ArenaDisplayer(self.arena)
        
        
    def printSeparator(self):
        """ écrit une superbe ligne de séparation sur la sortie standard """
        print "#" * 79
        
        
    def refreshAndDisplayAll(self):
        """
        Rafraîchit en entier l'image de l'arenaDisplayer, représentant toute l'Arena.
        Et balance cette image sur la sortie standard, suivi d'une superbe ligne de séparation.
        """
        self.arenaDisplayer.refreshAllScreen()
        for line in self.arenaDisplayer.screen:
            print line
        self.printSeparator()

    
    def ProcessAndAnimOneGameCycle(self):
        """
        Exécute, anime, et affiche un cycle de jeu, sur la sortie standard.
        On peut recommencer un autre cycle de jeu immédiatement après celui-là.
        """
        # Préparation du cycle de jeu en cours
        self.arena.handleNextMarbleMove()
        self.arenaDisplayer.initAnimation()
    
        # Exécution des cycles d'animation de ce cycle de jeu en cours.
        for animCounter in xrange(NB_ANIM_CYCLE_PER_GAME_CYCLE):
            if self.arenaDisplayer.advanceAnimationCounter():
                # Le cycle d'animation qu'on vient d'exécuter a provoqué un changement dans
                # la grande image représentant l'arène.
                # On indique quelle est le numéro du cycle d'anim en cours. Pour pouvoir se
                # repérer un minimum dans le temps. (Parce qu'en vrai, on peut pas trop
                # gérer le temps, puisqu'on balance tout derec sur la sortie standard).
                print "animCounter :", animCounter
                # Rafraîchissement des zones de l'image de l'Arena qui sont susceptibles 
                # de changer. Et affichage, sur la sortie standard, de toute l'image
                self.arenaDisplayer.refreshAnimation()
                for line in self.arenaDisplayer.screen:
                    print line
                self.printSeparator()
            # Si le cycle d'anim qu'on vient d'exécuter n'a pas provoqué de changement dans
            # l'image, on ne la réaffiche pas sur la sortie standard. Ca servirait à rien.
    
        print "animation ended"
        # Terminaison du cycle de jeu en cours. Modification des coordonnées des marbles
        # dans l'Arena, selon le mouvement qu'on avait prévus lors de la préparation de ce
        # cycle de jeu.
        self.arena.doMarbleMove()
        self.printSeparator()
        
开发者ID:darkrecher,项目名称:GMarble,代码行数:68,代码来源:ctrlaren.py


注:本文中的arena.Arena.handleNextMarbleMove方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。