我目前正在学习Java有几个原因,但其中一个主要原因是它是面向OOP的语言,并且使用Java编写代码真的帮助我理解OOP编程背后的核心概念。OOP:简单游戏设计中的对象继承和组合关系
但是,我很难定义我的类之间的关系。我理解继承和构图之间的区别,但是我看到整个画面时遇到了一些困难,以及我的所有类如何作为整体一起工作。
我将如何使用OOP编写一个简单的井字游戏的例子;
创建
Game
类 - 创建gameBoard
类的实例, 决定谁第一个开始,跟踪比赛赢了,输了,开始 并结束游戏。创建
gameBoard
类 - 更新井字棋板, 确定下一个玩家的回合,如果此举是合法的,并 决定时,有一个赢家创建一个抽象
Player
类 - 保存的游戏者的瓦片(X或O),和 包含需要gameBoard
实例作为参数和 通过引用创建由玩家到实例所作的移动的方法3210类扩展
Player
类。包含 处理玩家从键盘输入的方法创建一个
Computer
类,该类扩展了Player
类。有 方法,它接受gameBoard
实例作为论据和分析 的游戏键盘的获奖移动,阻挡移动,或任何其他 动,然后进行一招
这是我采取的方法。但是,我将所有类关联在一起时遇到了一些麻烦。在某些情况下,这条线似乎有些模糊,以至于某些方法和领域应该属于哪里。
编辑:修订问题:
什么是确定明确,定义的角色对我的班,没有在试图定义和ecapsulate我的程序的各个方面得到太多赶上了一个好方法?很多我的对象可以从其他类被调用来执行每个类具有的特定功能,即Player
更新gameBoard
,gameBoard
更新Game
,但我不知道这是好的做法,还是会使僵化和难以维护通过传递太多的对象引用来实现代码。
您的问题太宽泛而无法合理回答。你能否进一步把它煮沸,并以你想要回答的具体问题结束(因为我可以在文本中看到很多问题,每个问题都不容易回答)? – Polygnome 2013-02-21 22:32:24
我会尝试将我的问题转换成一个具体问题。 – 2013-02-21 22:36:00
从堆栈溢出FAQ:“你的问题应该是合理的,如果你可以想象整本书能够回答你的问题,你就会问得太多。”这不是堆栈溢出的问题。 – antonijn 2013-02-21 22:36:28