利用Java实现扫雷游戏的算法解析.doc

上传人:精*** 文档编号:963582 上传时间:2024-03-19 格式:DOC 页数:2 大小:122.41KB
下载 相关 举报
利用Java实现扫雷游戏的算法解析.doc_第1页
第1页 / 共2页
利用Java实现扫雷游戏的算法解析.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、SOFTWARE DEVELOPMENT AND DESIGN软件开发与设计电脑编程技巧与维护利用java实现扫雷游戏的算法解析秦亮(四川交通职业技术学院,成都611130)摘要:Java是面向对象的编程语言,可以实现GUI的扫雷游戏需要设计不同的类,在此就如何运用Java实现图 形界面下的扫雷游戏浅谈简单的算法与事件处理的基本实现。关键词:扫雷;事件处理;类;算法Algorithmic Analysis on Realizing Mine-Sweeping Game Through JavaQIN Liang(Sichuan Vocational and Technical College

2、of Communications , Chengdu 611130)Abstract: Java is an object-oriented programming language. It requires to design different categories to realize GUI mine-sweeping game through Java. Aiming at how to realize the mine-sweeping game under graphical interface through Java,the paper presents the simpl

3、e algorithm and the basic realization of events processing.Key words: mine-sweeping ; event processing ; category ; algorithm i引言玩过Windows平台下扫雷游戏的玩家都知道,这是一款 最初以训练鼠标操作为目的而设计的扫雷游戏,因它的规则 简单,玩家容易上手而受到广大用户的青睐。虽然Windows 操作系统历经了无数次的换代与升级,其功能变得越来越庞 大、复杂,但这个经典的小游戏在任何版本的Windows操作 系统里却依然保持其原貌。Java是典型的面向对象的编程语

4、言,用该语言可以设计出许多图形界面下的小游戏,通过游 戏的设计与实现让开发者更进一步理解面向对象的编程概念。 就如何用Java实现扫雷游戏浅析Java中的事件处理与扫雷算 法。2算法分析2.1随机布雷扫雷游戏要求在M行、N列的一块网格游戏区内随机地 布上BombNum个雷,且BombNum的取值应该小于M和N的 乘积。这可以在一张MxN的网格上通过满足均匀分布的随机 算法实现。其中有BombNum个网格是雷区,剩下的网格为非 雷区。游戏的目标是尽可能快地找到所有的雷区,而不踩到 地雷。JAVA提供了实现随机算法的类Math,通过Math类的 random 方法,这可以很方便的实现随机布雷功能。

5、这可以 通过以下的代码实现随机布雷算法。/*布雷*/public void startBomb ()for (int i=0;i= 0) & (j - 1 = 0)if (bombButton i - 1 j - 1 .isBomb = true) count += 1; /检测左上方空格是否是地雷 参考以上的代码,可以把余下的上方、右上方、右下方、 下方、左下方、左方、左上方的网格判断出来,让后设置被 选中网格的周围的雷数为count的值。3系统设计与实现3.1游戏主界面设计游戏主界面由功能设置区域和游戏区组成,如图1所示。 整个窗口采用边界布局,对于功能设置区采用默认的流布局 方式,将信息

6、提示的标签、输人雷数的文本框和控制游戏操 作的按钮布局在北面。游戏区所在的面板采用GridLayout布局 方式,设置为10行10列的一个网格,依次往网格上添加按 钮对象实现整个界面。3.2初始化作者简介:秦亮(1964-),男,讲师,研究方向:数据库、 Java开发。收稿日期:2011-01-013.2.1游戏区域的按钮类Bomb游戏区域的每个按钮可设计为Bomb类,代码如下:if ( ( ( Bomb) e.getSource () ) .isBomb =false & (Bomb) e.getSource () .isClicked = false)(Bomb) e.getSource

7、() .setText ( Bomb) e.getSource () .BombRoundCount ) +);(Bomb) e.getSource () .isClicked=true;(Bomb) e.getSource () .setlcon (null);(Bomb) e.getSource () .setEnabled (false); if (Bomb) e.getSource () .BombRoundCount) = 0) isNulI (bombButton, (Bomb) e.getSource (); isWin ();else if (Bomb) e.getSource

8、 () .isBomb = true)for (int i=0;i (int) Math.sqrt (BlockNum) ;i+) for (intj=0;j (int) Math.sqrt (BlockNum) ;j+) if (bombButton i j .isBomb = true)bombButton i j .setlcon (icon_bnib);class Bomb extends JButton(Bomb) e.getSource () .setlcon (icon_bomb_big);public int num_x,num_y; /第几号方块 public int Bom

9、bRoundCount; /周围雷数 public boolean isBomb;/是否为雷public boolean isClicked;/是否被点击public int BombFlag;/探雷标记public boolean isRight;/是否点击右键JOptionPane msg = new JOptionPane (); JOptionPane.showMessageDialog (this/ 你踩到地雷了, 按确定重来你踩到地雷了”,2); replay ();public Bomb (int x,int y)BombHag = 0; nirni-X = x; num_y =

10、 y;BombRoundCount = 0; isBomb = false; isClicked = false; isRight = false;)3.2.2 主窗口类 MainBomb主窗口类MainBomb继承了 Frame框架窗体,并且实现了 鼠标监听接口和按钮操作监听接口来完成按钮的触发事件。3.3对鼠标事件的处理单击“开始”按钮后开始游戏,游戏过程中点击游戏区 的按钮,即可出现该网格周围的雷数,根据每个网格周围提 示的雷的个数进行扫雷,直至点击的某个按钮为雷则游戏结 束。该游戏可通过游戏玩家自己设定的雷的个数进行游戏难 度的控制,鼠标单击操作是在窗口点击事件里处理的。其代 码如下:

11、public void actionPerformed (ActionEvent e)CountRoundBomb ();4结语该扫雷游戏在 JDK1.6+EcMpse3.2,和 Windows XP SP2 操 作系统上成功实现,能实现基本的游戏难度自定义控制、游 戏操作过程中的对话框提示等功能。经过实验测试,界面美 观,结果正确,各项功能达到游戏要求。该实现方法可对其 他基于Java的游戏开发起到抛砖引玉的作用,其中的键盘、 鼠标等功能的实现方法可用于其他Java编程,同时对各专业 人员借助Java语言快速开发出具备强大计算功能的专业应用 软件具有重要的意义。参考文献1 美ANDRE LAMOTHE. Wndows 游戏编程大师技巧M. 中国电力出版社,2001.2 薇藏扫雷思想解析J.电脑知识与技术,2003,(34):45.3 陈子为.基于MatLabGUI扫雷游戏的设计与实现J.计 算机应用技术,2008,(24): 85-88.4 徐勇.利用VB开发扫雷游戏J.电脑编程技巧与维护, 2006, (3): 75-77.5 张建强,张秀梅.扫雷游戏策略初探J.数学教学, 2004, (6): 32-33.2011. 06 vf

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他资料

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922