java课程设计连连看游戏(含代码)

上传人:仙*** 文档编号:80764964 上传时间:2022-04-26 格式:DOC 页数:53 大小:1.22MB
返回 下载 相关 举报
java课程设计连连看游戏(含代码)_第1页
第1页 / 共53页
java课程设计连连看游戏(含代码)_第2页
第2页 / 共53页
java课程设计连连看游戏(含代码)_第3页
第3页 / 共53页
点击查看更多>>
资源描述
Java程序课程设计任务书一、主要任务与目标 1、了解图形用户界面 的概念; 2、了解AWT 的基本体系结构,掌握窗口 的基本原理; 3、掌握几种布局管理器 的使用方法; 4、掌握java 的事件处理机制; 5、了解Swing 的基本体系结构,掌握Swing组件 的使用方法; 6、掌握java小程序 的工作原理和使用方法; 7、该游戏还将设置退出,再来一局按钮,并实现相应 的功能。 8、设计一个用户注册登录界面二、主要内容与基本要求 游戏规则是模仿网络上普通 的连连看游戏,主要是鼠标两次点击 的图片能否消去 的问题。当前,前提是点击两张相同 的图片,若点击 的是同一张图片或者两张不同 的图片,则不予处理。在两张想同图片所能连通 的所有路径中,如果存在一条转弯点不多于两个 的路径,就可以消去;如果没有,则不予处理。 该游戏由30张不同 的图片组成,游戏开始将会出现30张随机组合 的图片,在规则下点击两张相同 的图片后图片将会消失。图片全部消完为游戏成功。游戏还将设置退出,再来一局 的按钮,和倒计时 的功能,方便用户进行操作。并且有一个用户登录注册界面,玩家必须登录以后才可以进行游戏。三、计划进度 12月28日 12月29日:课程设计选题,查找参考资料 12月30日 12月31日:阅读参考书籍,收集资料,完成需求分析 1月1日 1月3日:系统 的代码设计及实现,数据库设计与实现 1月4日 1月5日:系统 的调试,修改,完善1月6日 1月7日:完成课程设计报告,准备答辩四、主要参考文献 1 刘宝林.Java程序设计与案例习题解答与实验指导M. 2 王鹏 何云峰.Swing图形界面开发与案例分析M. 3(美)Karl Avedal , Danny Ayers, Timothy Briggs. JSP编程指南M. 电子工业出版社, 2004,47-125. 4(美)Mark Linsenbardt. JSP在数据库中 的应用与开发M. 希望电子出版社,2005,210-236. 5 Dianne Phelan,Building a simple web database applicationC.IEEE International Professional Communication Conference, 2004, 79-86. 6(美)Karl Avedal,Danny Ayers,Timothy Briggs.JSP编程指南M.电子工业出版社,2006,47-125. 7 Dianne Phelan,Building a simple web database applicationC.IEEE International Professional Communication Conference, 2005, 79-86.8 Altendorf. Eric, Hohman. Moses, Zabicki. Roman. Using J2EE on a large, web-based projectJ. IEEE Software.2002,19(02):81-89.摘要当今社会,休闲型游戏越来越得到人们 的喜爱, 我所做 的毕业设计实例“连连看游戏 的设计与实现”是近几年来网络上非常流行 的一种二维休闲游戏,它对电脑配置要求不高,娱乐性强,易于上手。此次设计所使用 的语言为Java语言,开发环境为JCreator。主要应用到Swing组件,Java小程序,事件及接口等。这些接口为游戏 的制作提供了便捷 的条件,本系统 的主要特点就是运用Swing组件和事件处理技术,进行界面 的绘制,鼠标 的操作,以及积分 的显示等功能。这次通过连连看 的设计开发将对理解Swing组件技术以及事件处理技术在游戏方面 的应用起到很大 的帮助作用,同时为掌握Java编程技术及二维休闲游戏设计 的一般方法打下坚实 的基础。本文阐述了实例“连连看” 的设计思想和实现。全文分为五章。第一章对选题 的背景及项目 的功能进行了简要叙述。第二章介绍了开发本系统所使用 的Java语言、Swing组件和事件处理技术。第三章介绍了系统 的需求分析。第四章则对游戏 的各功能模块及实现算法等详细设计进行了介绍。第五章对程序运行与调试中经历 的问题和学到 的编程及游戏设计经验进行总结。关键词:游戏,连连看,二维游戏 ABSTRACTTodays society, Casual games get more and more popular among people, I did graduate design example, Design and Implementation Lianliankan game is very popular in recent years the network of a two-dimensional casual games. Its less demanding computer configuration, Entertaining, Easy to fly.The language used in graduate design language for the Java, Development environment for the JCreator . Mainly applied to the Microsoft Swing framework provides more documentation procedures and events functions to interface. The game interface offers convenient conditions for production, The main features of this system is to use events framework and interface technology to interface mapping, mouse operations, and display functions standings.The design and development by Lianliankan Swing framework will understand the technology and the events application of technology in the games played very helpful, Java programming for both master and two-dimensional recreation of the general method of game design and lay a solid foundation.In this paper, examples of Lianliankan The design and implementation. Paper is divided into five chapters. Chapter I of the project background and project a brief description of the function. The second chapter describes the development of this system uses Java language, Swing framework of the technology and Event interface technology. The third chapter describes the system requirements analysis. The fourth chapter of the games various function modules and the detailed design algorithm was introduced. Chapter V of the program is running and debugging the problems experienced and learned programming and game design experience summary. Keywords: Games, Lianliankan, two-dimensional game目 录JAVA程序课程设计任务书II摘要IIIABSTRACTV目 录VI第1章 引言11.1 背景11.2 课程设计内容11.3 任务分工22章 连连看游戏界面32.1 连连看游戏概述32.1.1 连连看游戏 的规则32.1.2连连看胜利与失败条件42.2连连看系统介绍42.3 本章小结5第3章 连连看游戏 的设计63.1 系统需求分析63.2 系统开发及运行环境63.3 系统主要功能要求73.4.1 连连看系统总体结构73.4.2 连连看系统各模块介绍83.5 本章小结9第4章 系统 的具体实现104.1界面设计104.1.1用户登陆界面图104.1.2注册界面134.1.3系统界面164.1.4执行界面174.2程序设计及调试运行264.2.1游戏 的连接算法264.2.3 JFreeChart29第5章 结束语31致谢32参考文献33附录 源代码34VI第1章 引言1.1 背景游戏“连连看”顾名思义就是找出相关联 的东西,这个连连看在网上基本是用在小游戏中,就是找出相同 的两样东西,在一定 的规则之内可以做为相关联处理。“连连看” 的发展经历了从桌面游戏、在线游戏、不同版本连连看游戏(12张)社交游戏三个过程。 游戏“连连看”是源自台湾 的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本 的“连连看”。这其中,顾方编写 的“阿达连连看”以其精良 的制作广受好评,这也成为顾方“阿达系列软件” 的核心产品。并于2004年,取得了国家版权局 的计算机软件著作权登记证书。 随着Flash应用 的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”、“果蔬连连看”等,流行 的“水晶连连看”以华丽界面吸引了一大批 的女性玩家。 2008年,随着社交网络 的普及和开放平台 的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速 的传播,成为一款热门 的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出 的“宠物连连看”最为流行。现在网络小游戏、网页游戏越来越受网民欢迎,除了玩 的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。连连看游戏就是典型。 不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名 的前5位,休闲、趣味、益智是连连看玩不厌 的精华,且不分男女老少、工薪白领,是一款适合大众 的经典网络休闲小游戏。1.2 课程设计内容 游戏规则是模仿网络上普通 的连连看游戏,主要是鼠标两次点击 的图片能否消去 的问题。当前,前提是点击两张相同 的图片,若点击 的是同一张图片或者两张不同 的图片,则不予处理。在两张想同图片所能连通 的所有路径中,如果存在一条转弯点不多于两个 的路径,就可以消去;如果没有,则不予处理。 该游戏由30张不同 的图片组成,游戏开始将会出现30张随机组合 的图片,在规则下点击两张相同 的图片后图片将会消失。图片全部消完为游戏成功。游戏还将设置退出,再来一局 的按钮,并实现该功能,方便用户进行操作。 该游戏将有如下内容:(1)游戏计分功能 当消去两个相同 的图片后分数将增加100分。(2)退出功能 该功能有一个“退出”按钮,当按下“退出”按钮后,将直接退出游戏。(3)再来一局功能 该功能有一个“再来一局” 的按钮,当按下“再来一局”按钮后,图片将会重新排列,重新开始游戏。(4)游戏倒计时功能在游戏界面 的上方有一个倒计时 的进度条,增加游戏 的难度,激发玩家 的挑战兴趣。(5)用户登录注册功能 在进入游戏界面之前,将会出现用户登录界面,如果没有注册 的玩家在按下“注册”按钮后将进入注册界面,玩家需要填写用户名,密码,性别等信息完成注册,再进入登录界面,输入用户名和密码按下“确定”后就将进入游戏界面,开始游戏。1.3 任务分工2章 连连看游戏界面2.1 连连看游戏概述 当今社会,休闲型游戏越来越得到人们 的喜爱, 我们所做 的设计实例“连连看游戏 的设计与实现”是近几年来网络上非常流行 的一种二维休闲游戏,它对电脑配置要求不高,娱乐性强,易于上手。此次设计所使用 的语言为Java,开发环境为JCreator。主要应用到Swing组件,Java小程序,事件及接口等。这些接口为游戏 的制作提供了便捷 的条件,本系统 的主要特点就是运用Swing组件和事件处理技术,进行界面 的绘制,鼠标 的操作,以及积分 的显示等功能。这次通过连连看 的设计开发将对理解Swing组件技术以及事件处理技术在游戏方面 的应用起到很大 的帮助作用,同时为掌握Java编程技术及二维休闲游戏设计 的一般方法打下坚实 的基础。随着Flash应用 的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”、“果蔬连连看”等,流行 的“水晶连连看”以华丽界面吸引了一大批 的女性玩家。 不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名 的前5位,休闲、趣味、益智是连连看玩不厌 的精华,且不分男女老少、工薪白领,是一款适合大众 的经典网络休闲小游戏2.1.1 连连看游戏 的规则玩家可以将 2 个相同图案 的对子连接起来,连接线不多于 3 根直线,就可以成功将对子消除。操作 : 第一次使用鼠标点击棋盘中 的棋子,该棋子此时为“被选中”,以特殊方式显示;再次以鼠标点击其他棋子,若该棋子与被选中 的棋子图案相同,且把第一个棋子到第二个棋子连起来,中间 的直线不超过 3 根,则消掉这一对棋子,否则第一颗棋子恢复成未被选中状态,而第二颗棋子变成被选中状态。2.1.2连连看胜利与失败条件胜利条件:将棋盘上面 的对子全部消除掉。按消除 的数量排列名次。其他玩家都输掉了。 失败条件 : 每个玩家选择牌 的时间为 30 秒,超过时间而未消除一对 的玩家以判为输掉。有一个玩家将所有 的牌都全部消掉。2.2连连看系统介绍根据第三章 的需求分析, 我们制作出了连连看游戏在Windows平台上运行时 的主要功能图。根据此连连看 的功能图 我们将对连连看游戏进行概要设计和详细设计。继而开发出一个完整 的连连看电脑游戏。总体 的系统图如下图所示:图2.1 系统功能图连连看是运用JCreator中 的多文档视图开发 的,文档视图结构提供 的应用程序接口有利于进行窗口操作、文件读取等编程。连连看游戏引擎包含在视图类中。游戏引擎是一个抽象 的概念,用于实现游 戏 的逻辑功能,通常在一个独立 的类中,有时引擎和视图是一体 的,并且可能无可避免,因为视图需要为引擎处理用户输入和绘图。游戏程序设计一般都采用面向对象 的设计模式,提供了一个简单 的图像显示接口,利用多文档视图结构 的面向对象设计模式。2.3 本章小结这一章介绍了连连看应该具备 的功能模块,在这一章中, 我们可以了解什么是连连看,当前连连看系统 的系统,还有一个连连看系统应该 的开发目标。第3章 连连看游戏 的设计这一章将介绍连连看游戏 的设计,从游戏需求分析开始,介绍开发环境和用到 的开发工具,系统主要 的功能设计,系统 的数据流程图。3.1 系统需求分析连连看游戏 的设计目标为:(1)该游戏开始前,将设置一个用户登录注册界面,如果没有注册 的玩家在按下“注册”按钮后将进入注册界面,玩家需要填写用户名,密码,性别等信息完成注册,再进入登录界面,输入用户名和密码按下“确定”后就将进入游戏界面,开始游戏。(2)游戏中将有“退出”功能,选择退出命令后程序将终止执行,关闭窗口。还将有“再来一局”功能,选择再来一局命令后程序将对图片重新排列,重新开始游戏。该游戏还有一个时间倒计时 的进度条,提醒玩家剩余 的时间,增加游戏 的难度。在界面 的顶部有计分功能,当玩家消去图片后就会赢得相应 的分数。3.2 系统开发及运行环境硬件平台:q CPU:P41.8GHz。q 内存:256MB以上。软件平台:q 操作系统:Windows XP。q 数据库:MySQL 5.0。q 开发工具包:JDK Version1.6.2。q JSP服务器:Tomcat 6.0。q 浏览器:IE5.0,推荐使用IE6.0。q 分辨率:最佳效果1024768像素。 3.3 系统主要功能要求本系统针对中小学生 的娱乐时间,通过程序中 的线程、布局以及用户登录还有另外 的一些功能进行有效管理。本系统主要实现如下功能:q 系统采用图片连连看 的方式,界面美观友好,用户使用灵活、方便、快捷、准确,数据存储安全可靠。q 实现用户登录注册功能。q 图片 的消除、排列清晰。q 计分自动完成,提高工作效率。q 用进度条来表现用掉 的时间。q 实现多条件查询。q 可方便快捷地进行下一盘游戏,并且两盘 的分数在规定 的时间内会叠加起来。q 操作员可以随时退出游戏。q 对用户输入 的信息,系统进行严格 的信息检验,尽可能排除人为 的错误。q 系统最大限度地实现了易维护性和易操作性。q 系统运行稳定、安全可靠。3.4.1 连连看系统总体结构连连看是基于java基本知识设置 的一个小游戏,刚开始 的时候有一个用户登陆界面,要是没有账号 的可以先申请一个。最中间有连连看 的主体构成连连看图片,上面有计分、时间条,下面有退出、再来一局按键。一个标准 的连连看系统应该包括以下几大功结构:1、鼠标操作模块;2、图像处理模块;3、声音信息模块;4、菜单模块;5、界面显示模块。3.4.2 连连看系统各模块介绍系统各功能模块实现 的功能为:鼠标操作模块:玩家在玩游戏时需要运用鼠标与游戏系统进行交互,这个模块 的实现是运用MFC中 的鼠标事件触发 的,在连连看 的游戏场景中运用鼠标进行交互 的事件主要有两个,一个是用户点击游戏场景中 的图片时触发 的事件。另外一种是用户点击菜单栏上 的菜单按钮时说触发 的鼠标事件。当用户点击游戏场景中 的图像块时就会响应鼠标 的OnLButtonDown事件,然后进行相应 的逻辑判断。当用户点击菜单栏上 的菜单命令时就会触发相应 的菜单命令对应 的相应 的事件。图像处理模块: 程序运行后,用户通过游戏菜单 的开始命令或者直接按下F2键开始进入游戏,在这个模块里要把资源文件中 的图片进行处理然后加载到游戏场景中这在程序中是通过DrawMap()方法实现 的。其中用到 的API函数主要是是BitBlt,他 的主要功能是将某一内存块 的数据传送到另一内存块,前一内存块被称为源,后一内存块被称为目标图象程序开发者使用Blit 的函数在内存中将某页面上 的一幅位图经过一定 的变换转移到另一个页面上。声音信息模块: 在游戏过程中,当玩家成功消去一对图像块后播放一个提示音,当消去失败 的时候会播放另外一个提示音,根据用户操作结果 的不同播放不同 的音乐提示,这在一定程度上能够增加用户对游戏 的沉侵感。对声音模块信息 的管理在程序中是通过API中 的PlaySound函数来实现 的。菜单模块: 玩家在游戏游戏过程中随时可以通过选择不同 的菜单命令来进行相应 的操作,菜单 的制作是通过MFC框架中多文档程序 的菜单栏来添加 的,菜单包含一下几个部分:(1)游戏菜单中 的开始、放弃和退出命令。(2)选项菜单里面 的提示、重列、暂停、音乐、音效、和积分命令。 (3)帮助菜单,介绍了游戏 的版本等。具体 的实现方法下一张将在做详细介绍。界面显示模块: 游戏场景中界面 的显示包括以下部分:游戏 的级别、关卡数、允许重新排列 的次数、允许 的提示次数、剩余时间、游戏主场景。这些显示信息会随着游戏 的进行而动态改变。当提示次数和重列次数为0时系统就不在允许用户使用提示和重列 的功能。在连连看游戏中,除了上面讲到 的程序主界面外还包含了显示积分和排名 的对话框 的设计,在积分和排名对话框中,用户可以查看积分排名情况,可以清除排名记录。整个连连看游戏 的系统是在VC+6.0开发环境中进行开发 的,开发过程中大量 的使用了微软提供 的API接口方法,减少了程序代码 的编写量、提高了编程效率。3.5 本章小结本章在前面分析 的基础上实现了连连看游戏 的设计,实现了连连看游戏 的背景显示功能、菜单功能、以及连连看游戏中 的核心算法。在菜单功能模块中针对每个菜单 的命令进行了详细 的解释和阐释实现了每一个子菜单 的命令。在连接算法中,给出了每一个算法 的程序逻辑了和详细 的算法实现。并且还绘制出了每一种连接情况 的具体图片。在连连看游戏 的其他算法中列出了时间进度显示 的实现方法和一些重要 的数据结构,在此可以结合程序详细 的研究。第4章 系统 的具体实现界面是系统之间最直接 的交互界面,界面 的友好性体现了软件设计 的质量, 并在很大程度上决定了软件是否成功。4.1界面设计4.1.1用户登陆界面图如图4.1.1和图4.1.2所示图4.1.1 用户登录模块框图图4.1 用户登陆界面此JavaScript函数 的作用是检测用户登陆 的合法性,并确认用户输入了合法 的登录名和口令。部分代码:private void loginDialog() login = new JDialog(); login.setTitle(登录); login.setLayout(new FlowLayout(); login.add(new JLabel(用户名:); final JTextField name = new JTextField(10); login.add(name); login.add(new JLabel(密 码:); final JPasswordField password = new JPasswordField(10); password.setEchoChar(*); login.add(password); JButton confirm = new JButton(登录); confirm.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if (compareUserData(name.getText().trim(), new String(password.getPassword() login.setVisible(false); mainFrame.setVisible(true); Timer timer = new Timer(100, new ActionListener() public void actionPerformed(ActionEvent e) if (time.isEnd() System.exit(0); ); timer.start(); else JOptionPane.showMessageDialog(login, 用户名或密码错误!, 错误提示, JOptionPane.ERROR_MESSAGE); ); login.add(confirm); final JDialog regDialog = new JDialog(login, 注册, true); registerDialog(regDialog); JButton register = new JButton(注册); register.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) regDialog.setVisible(true); ); login.add(register); login.setSize(400, 200); login.setResizable(false); login.setLocationRelativeTo(null); login.setVisible(true); private boolean compareUserData(String name, String password) try RandomAccessFile out = new RandomAccessFile(user.dat, rw);String fname, fpassword = null;while (out.getFilePointer() out.length() fname = out.readUTF();out.readUTF();fpassword = out.readUTF();if (fname.equals(name) & fpassword.equals(password) return true;out.close(); catch (IOException e) e.printStackTrace(); return false; 4.1.2注册界面图4.2 系统主界面为了能够在同一页面中管理多个页面,本系统 的主界面采用了框架技术。关键代码:private void registerDialog(final JDialog regDialog) Box box1 = Box.createVerticalBox();box1.add(new JLabel(用户名:, JLabel.RIGHT);box1.add(Box.createVerticalStrut(10);box1.add(new JLabel(性别:, JLabel.RIGHT);box1.add(Box.createVerticalStrut(10);box1.add(new JLabel(密码:, JLabel.RIGHT), -1);box1.add(Box.createVerticalStrut(10);box1.add(new JLabel(确认密码:, JLabel.RIGHT);Box box2 = Box.createVerticalBox();final JTextField nameTextField = new JTextField(10);box2.add(nameTextField);box2.add(Box.createVerticalStrut(8);final CheckboxGroup cbg = new CheckboxGroup();Box box21 = Box.createHorizontalBox();final Checkbox cb1 = new Checkbox(男, cbg, true); box21.add(cb1); box21.add(new Checkbox(女, cbg, false); box2.add(box21);box2.add(Box.createVerticalStrut(8);final JPasswordField pass1 = new JPasswordField(10);box2.add(pass1);box2.add(Box.createVerticalStrut(8);final JPasswordField pass2 = new JPasswordField(10);box2.add(pass2);Box baseBox = Box.createHorizontalBox();baseBox.add(box1);baseBox.add(box2);regDialog.setLayout(new FlowLayout();regDialog.add(baseBox);JButton confirm = new JButton(确定);JButton cancel = new JButton(取消);regDialog.add(confirm);regDialog.add(cancel);regDialog.setSize(400, 200);regDialog.setResizable(false);regDialog.setLocationRelativeTo(null);confirm.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) String sex = null;if (cbg.getSelectedCheckbox() = cb1)sex = 男;elsesex = 女;if (saveUserData(nameTextField.getText().trim(), sex, new String(pass1.getPassword(), new String(pass2.getPassword()regDialog.setVisible(false);elseJOptionPane.showMessageDialog(regDialog, 输入有误,请检查, 错误提示,JOptionPane.ERROR_MESSAGE););cancel.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) regDialog.setVisible(false);); private boolean saveUserData(String name, String sex, String password1, String password2) if (!password1.equals(password2) return false; try RandomAccessFile out = new RandomAccessFile(user.dat, rw);out.seek(out.length();out.writeUTF(name);out.writeUTF(sex);out.writeUTF(password1);out.close(); catch (IOException e) e.printStackTrace();return false; return true; 4.1.3系统界面图4.3.1 连连看数据框图4.1.4执行界面图5.3 报表生成界面4.1.5时间到 的界面:关键代码:public void remove() firstButton.setVisible(false); / 不可见secondButton.setVisible(false);fraction();pressInformation = false;k = 0;gridx0y0 = 0;gridxy = 0;public void actionPerformed(ActionEvent e) if (e.getSource() = newlyButton) int grid = new int87;this.grid = grid;randomBuild();mainFrame.setVisible(false);pressInformation = false;init();if (e.getSource() = exitButton)System.exit(0);/ if(e.getSource()=resetButton)/ reload();new ActionListener() if (e.getSource() = timer) if (time.isEnd() timer.stop();if (JOptionPane.showConfirmDialog(mainFrame,时间到了,o()o n要再来一局吗?, 提示,JOptionPane.YES_NO_OPTION) = JOptionPane.OK_OPTION) int grid = new int87;this.grid = grid;randomBuild();mainFrame.setVisible(false);pressInformation = false;init();timer.start(); elseSystem.exit(0);for (int cols = 0; cols 6; cols+) for (int rows = 0; rows 5; rows+) if (e.getSource() = diamondsButtoncolsrows)estimateEven(cols + 1, rows + 1, diamondsButtoncolsrows);进度条界面:关键代码:public void xiao() /相同 的情况下能不能消去。 if(x0=x &(y0=y+1|y0=y-1) | (x0=x+1|x0=x-1)&(y0=y)/判断是否相邻 remove(); else for (j=0;jj) /如果第二个按钮 的Y坐标大于空按钮 的Y坐标说明第一按钮在第二按钮左边 for (i=y-1;i=j;i- )/判断第二按钮左侧直到第一按钮中间有没有按钮 if (gridxi!=0) k=0; break; else k=1; /K=1说明通过了第一次验证 if (k=1) linePassOne(); if (yj) /如果第二个按钮 的Y坐标小于空按钮 的Y坐标说明第一按钮在第二按钮右边 for (i=y+1;i=j ;i+ )/判断第二按钮左侧直到第一按钮中间有没有按钮 if (gridxi!=0) k=0; break; else k=1; if (k=1) linePassOne(); if (y=j ) linePassOne(); if (k=2) if (x0=x) remove(); if (x0x) for (n=x0;nx) for (n=x0;n=x+1 ;n- ) if (gridnj!=0) k=0; break; if(gridnj=0 & n=x+1) remove(); for (i=0;ii) for (j=x-1;j=i ;j- ) if (gridjy!=0) k=0; break; else k=1; if (k=1) rowPassOne(); if (xi) for (j=x+1;j=i;j+ ) if (gridjy!=0) k=0; break; else k=1; if (k=1) rowPassOne(); if (x=i) rowPassOne(); if (k=2) if (y0=y) remove(); if (y0y) for (n=y0;ny) for (n=y0;n=y+1 ;n-) if (gridin!=0) k=0; break; if(gridin=0 & n=y+1) remove(); public void linePassOne() if (y0j)/第一按钮同行空按钮在左边 for (
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!