扫雷游戏设计-Java
2013-03-31 22:00
288 查看
扫雷游戏设计-Java
其实扫雷游戏的实现并不是想象中的那么困难,我在这谈谈自己的方法,虽然不算很好的Idear:1.定义一个10*10的String数组。
2.定义数组的值:共三个:" "(空格),"雷",第三个是数字,即周围的雷的数目,如"3",表示它的周围8个方块里有3个雷。
3.随机生成雷的位置,如要生成10个雷,则生成10个下标[i][j],注意位置不能重复了,下面是代码:
for(int i=0;i<numLei;i++)
{
leiX=a.nextInt(max);
leiY=a.nextInt(max);
if(lei[leiX][leiY].equals("雷"))
i--;
else
lei[leiX][leiY]="雷";
}
4.初始化除雷外的其它值,其实也就是计算不是雷的格子周围雷的数目,方法也不算难,即遍历数组,如果不是雷则算它的周围是不是雷
(i - 1, y - 1)(i , y - 1)(i + 1, y - 1)
(i - 1, y) (i + 1, y)
(i - 1, y + 1)(i - 1, y - 1)(i + 1, y + 1)
代码如下:
for(int i=0;i<lei.length;i++)
for(int j=0;j<lei[i].length;j++)
{
if(!lei[i][j].equals("雷"))
{
for(int r=-1;r<=1;r++)
for(int c=-1;c<=1;c++)
{
if(i+r>=0&&i+r<max&&j+c>=0&&j+c<max)
{
if(lei[i+r][j+c].equals("雷"))
leiNum++;
}
}
if(leiNum!=0)
lei[i][j]=""+leiNum;
leiNum=0;
}
}
如果算出来的雷数量为0,则给赋值为" "一个空格。
5.点击事件,这个应该是整个游戏稍复杂的吧,我这里用10*10 Button表示界面,一开始Lable的Text都为""。
A。点击按钮,程序可以得知该数组位置对应的值是什么:
"雷"则游戏结束
"3"(即雷数目)则对应Button的Lable = "3"
" "则Button的Lable = " ",注意,我们点击按键的时候,如果按钮为数字和" "的话,那我们就不用处理这个点击事件,因为格子已经打开了。
6.处理连续打开,即如果玩家点击的格是" ",即表示周围没雷,则这个应自动打开它周围的格子。
而如果它周围的某个A格的周围也没雷,也要自动打开A格子周围的格子。玩过扫雷的都知道这个动作的,我这里用了递归方法,代码如下:
public void open(int i,int j)
{
for(int r=-1;r<=1;r++)
for(int c=-1;c<=1;c++)
{
if(i+r>=0&&i+r<max&&j+c>=0&&j+c<max&&b[i+r][j+c].getLabel().equals(" "))
{
b[i+r][j+c].setBackground(Color.white);
b[i+r][j+c].setLabel(lei[i+r][j+c]);
if(b[i+r][j+c].getLabel().equals(""))
{
open(i+r,j+c);
}
}
}
}
最后,希望我这篇破文章对Java编程有兴趣的小伙子有些许的帮助吧,下面是我的原代码:有些乱,因为那时候我也是初学呢:
相关文章推荐
- JAVA游戏设计核心类(初学者适用)
- Java动画 重力弹球 如鹏游戏引擎 精灵 设计一个小球加速落地又减速弹起并反复直到停止的Java程序
- [置顶] 基于Java的“多功能五子棋”游戏的设计和实现
- Html+css+jQuery实现扫雷游戏(一)初步设计
- Java扫雷游戏一例
- Java游戏服务器之一元夺宝活动设计(一)
- Java设计模式之从[使命召唤等游戏的任务提示]分析职责链(Chain Of Responsibility)模式
- JAVA实战3——五子棋游戏设计
- Java设计模式之从[打飞机游戏中的控制器]分析命令(Command)模式
- Java手机游戏编程之MIDP图形设计篇01
- /*设计一个鼠标点击速度比赛游戏。 *(1)显示一个按钮和文本框。 *(2)文本框显示鼠标点击次数*/ import javax.swing.*;//引用 import java.awt.*; i
- java课程设计——猜数游戏
- java课程设计源码(游戏:急速生存)
- 跟我学Java Swing之游戏设计(2)-Java基础-Java-编程开发
- java 简单的扫雷游戏
- Java手机游戏编程之MIDP图形设计篇01
- JAVA GAME2D 游戏设计的答辨讲稿
- 用JAVA制作的扫雷游戏
- 扫雷游戏制作过程(C#描述):第二节、界面设计
- Java设计原则2—城堡游戏之封装