当前位置: 代码迷 >> J2SE >> 关于初学java,面向对象编程时的疑义,求教
  详细解决方案

关于初学java,面向对象编程时的疑义,求教

热度:122   发布时间:2016-04-23 19:41:05.0
关于初学java,面向对象编程时的疑问,求教
                本人学习java已经有一段时间了,在学习过程中,感觉和语法比起来,面向对象编程的思想才是敲代码不至于卡壳的指南针。但由于初学理解还不是很深,在练习过程中遇到点问题,麻烦大神给个总体思路。
                问题很简单,就是编写一个扫雷小游戏,但我的思路是把每个Cell看成一个对象,两个成员变量记录自身属于雷还是普通,以及周围有几个地雷;一个构造方法初始化属性;最后在主方法创建一个二维Cell类数组,初始化每个Cell时通过随机算法埋雷。
                以上就是我的总体思路,但获取周围地雷个数的方法应该在哪里?还有很多细节,感觉这个思路漏洞百出。希望能有大神能提供点具体的编写思路,感谢~~

------解决思路----------------------
我给出两个思路:

第一,在生成雷区的时候,采用多遍扫描的方法,由生成地雷的代码在确定所有地雷位置后,判断每个cell周围雷的数量,用set方法将该数值保存进cell中;这个方法可行是因为该数据是静态的(不会变动);
第二,可以用动态扫描的方法,即每次调用的时候让cell对象获得访问周围对象的能力,然后由该方法统计周围雷的数量。

具体优劣则由楼主自行分析了。
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:
Quote: 引用:

Quote: 引用:
写在cell类里,然后点用此方法时传给二维数组  如何

调用不是点用写错了

Cell类里定义一个方法,检测自己周围Cell雷数量,返回int值?
这个方法我纠结很久,自己是Cell,如何检测周围Cell的属性?求源码

传给这个方法的cell对象二维数组保存着每个cell的状态,再传给被点击的cell位置(a,b)。(a,b)cell调用这个方法,所以判断周围八个位置(x,y)

也就是不用自己对比周围同类的属性,在主方法二维数组生成雷区的时候,每个Cell对象调用一个方法,以这个二维数组为参返回自己周围的雷区状况?

刚又写了一遍,Area类生成boolean二维数组并随机生成雷区,但这样Cell类需要定义坐标属性、周围雷区个数,就不能放入Area的二维数组了,除非重新定义一个一样大小的二维数组,二者叠加(就是同样大小的二维数组,那样位置可以一一对应)。

class cell{
boolean dilei;
    public int zhouweishu(cell[][] dilei,int a,int b){
    }
}
然后再主函数建 cell[][] dilei;
然后用循环new。我的大概意思是这样  用手机的特慢只能写这么多 见谅