Skip to content

Latest commit

 

History

History
15 lines (15 loc) · 1.89 KB

readme.md

File metadata and controls

15 lines (15 loc) · 1.89 KB
  • 修改总目标:去除GUI内存储的牌的数据,使得GUI只负责显示,不负责存储、修改数据
  • Poker
    • 对Poker实现进行简化,改为继承自QLabel,默认不可见
    • 移除一张牌不再调用deleteLater,而是设为不可见。其实在TimeBridgeGUI中,一次性创建了所有可能用上的Poker,之后循环利用。
  • QPlayer(原Player,取这个名是为了让人联想起Qt,意识到它和UI有关,你们也可以改为其他合适的名字)
    • 移除其存储的牌的数据
    • 移除initialize函数(因为不再需要用此函数传递牌的数据),其他变量初始化在构造函数中进行
    • 新增update,此函数接收手牌(hand_pokers)和刚打出的牌(played_poker)为参数,played_poker是Poker类型,而hand_pokers是Poker组成的list。此函数将Poker放置在合适的位置(依据自身存储的)。每次调用时,将原先存储的Poker设为不可见,将接收到的参数存储,把它们放到合适的地方,并使它们可见。
  • TimeBridgeGUI
    • 新增成员_pokers,包含52张正面向上的牌,52张背面向上的牌(Poker类型)。这些牌会循环利用。
    • 增加update_players函数,它通过调用controller提供的接口controller.get_player_info(i),返回一个元组(关于玩家手牌信息,有3个元素,分别是手牌、刚打出的牌、手牌是否可见)
    • 于是,更新界面的方式变为,Controller觉得界面需要更新时,发出view_update_signal,此信号连接到两个函数,update(导致叫牌区、出牌表更新)、update_players(导致玩家的牌更新)
    • 来自Controller的信号减少,只有更新界面信号view_update_signal和输出信息信号output_signal(此信号会传递一个字符串,用这个字符串设置某个Qlabel上的文字完成输出)
  • MainWindow
    • 增加此类是为了使用菜单项