我在基于 Windows 窗体的简单游戏项目中组织 clesses 时遇到概念性问题。我必须使用 Windows 窗体实现Whack-A-Mole游戏。Molehills 由复选框表示。如果选中复选框,则痣丘中有一颗痣。可以通过单击选中的复选框来杀死鼹鼠。
我设法创建GamePlay
了包含 ia 类的类:(GameBoard
基于TableLayoutPanel
复选框和数组的游戏板表示),Rules
(概率,一轮中的最大痣数,一轮持续时间等)。在GamePlay
课堂上也有PointsCounter
(到目前为止已经杀死了多少痣)。我的解决方案中有更多的类/结构,但在这个问题的上下文中它们并不重要。
游戏板的大小可以在配置窗口中设置,因此我在点击开始游戏按钮后动态地在TableLayoutPanel上创建复选框。复选框数组和它们的事件处理程序放置在类中。鼹鼠被杀后我必须更新(实际上我必须添加从类中调用的适当值)。但我不能在这样的类模型中。事件处理程序复选框鼠标单击(在类中)无法访问(在类中)。GameBoard
pointsForMoleKilling
Rules
PointsCounter
GamePlay
GameBoard
我应该如何重新组织类之间的依赖关系?
我的临时解决方案是 makeRules
和(pointsForMoleKilling
也score()
来自GamePlay
类)static。