6 python qt asynchronous signals
我使用Python创建了一个简单的基于控制台的Scrabble游戏.我试图尽可能地从I/O封装游戏模型,这意味着我创建了一些类来描述游戏的规则和当前状态.基本上我想出了这些课程:
LetterSet
:描述游戏中的图块(分数,总金额等)Board
:董事会的代表及其瓷砖和辅助功能Player
:一个虚拟类,用于子类真实类,如Human或Bot,有一个方法play()
可以让玩家移动Game
: 好 ...使用我的控制台应用程序使用简单的线性和同步流程,一切正常.
但事实证明,将这个概念移植到Qt并不容易.我已经创建了所有必要的小部件,如可拖动的板,描述游戏状态的一般视觉元素和简单的按钮,如"通过","继续","交换".
问题是,我不知道如何处理play()
可能使用我创建的Qt接口生成有效移动的方法.Bot
虽然这没有问题,只是在没有任何互动的情况下搜索一个动作.
我目前的想法是创建一个像这里描述的本地事件循环,并等待按钮在我play()
定义的方法中单击Human(Bot)
.这有点难看,所以我想知道是否有更好的方法来做到这一点.
我希望主要逻辑是相同的,例如,Player
类提供一个play()
生成移动并返回它的方法.这样就可以创建任何类型的Player
网络播放器或机器人.这种同步方式对于基于Qt的信号/槽操作方式不起作用.希望有人有一个巧妙的想法来解决我的问题.
总结: 如何Player
在其play()
方法中生成移动并将其返回为简单move = player.play(game)
调用?
编辑:快照,以了解我在说什么: 快照http://reaktor42.de/~b52/shots/2011-06-26-235749_972x729_scrot.png
编辑2:这是相当陈旧的,我大约两年前成功完成了作业.然而,如果我通过github发布结果,我认为它可能对其他人有用.
在此先感谢,奥利
您可以在 Playerplay
功能中执行以下操作:
这是一种方法,但您应该修改它以适合您的游戏模型
归档时间: |
|
查看次数: |
335 次 |
最近记录: |