本文整理汇总了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()