因为有单人、双人竞赛、双人合作三种模式可玩,而单人模式是单Player,单Scene;双人竞赛为双Scene,双Player,一个Player控制一个Scene;双人合作则是单Scene,双Player,两个Player控制一个Scene。故设计了Player类和Scene类,Scene类中有19个元素(从上至下为19行)的Line数组——Line *m_Line[19]。而Player类有用户输入的判断,包括了CurrentBlock的Move、Turn都在此类内完成,而这势必就要读取和改写Scene中的Line对象。
      我是这样做的:
      应该有多少个Scene与Player对象,完全由游戏的运行模式决定,这个由Game类控制。而Scene中有数据成员Player并由Scene初始化,Player中有一个Line **m_Line数据成员,用来保存Scene中的m_Line[19]的首地址。从而在Player中对Scene的Line数组进行读写。这样做目的是达到了,但是程序的封装性显得不是很好,模块化也不强,对于问题的描述有些混乱。
      本来想到用一个全局对象来描述Scene的Line,但因为Scene个数不定,此法也就无能为力了。
      不知哪位有更好的变通的方法,欢迎提出宝贵建议。谢谢!