ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:47.48KB ,
资源ID:17414068      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17414068.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java课程设计贪吃蛇游戏设计Word格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java课程设计贪吃蛇游戏设计Word格式.docx

1、 JDK 1.6开发工具:Eclipse jdk3.1设计方案论证3.1.1设计思路贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模块和游戏控制模块。在此只实现游戏的游戏主界面模块、游戏控制模块。并且只是实现移动速度、暂停、重新开始等功能。游戏主界面模块:游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、游戏的速度选择更新界面、新生方块的预览、暂停游戏按钮、重新开始游戏按钮。从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。游戏控制模块:这个模块是游戏的中心环节,主要完成控制游戏的开始、暂停、重新开始等功能。为了能够给玩家一个

2、很好的游戏环境,这部分应该做到易懂、易操作。本设计所开发的是基于Java的一个贪吃蛇游戏软件,主要实现游戏的速度控制、游戏的暂停、游戏的退出等功能,分为: 游戏主界面模块、游戏控制模块以二个模块。3.1.2程序概述本程序是一个利用Java应用软件制作的贪食蛇小游戏。在游戏过程中,用户通过点击小键盘区的方向键来控制蛇的运行方向;游戏运行过程中,如果想暂停,只需要按F3键即可。重新开始游戏的按键为F2。当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结束。本程序的另一个功能是在程序运行窗口的左上角显示,用户在游戏过程中的移动和长度。3.1.3程序流程图本次游戏设计的处理流程如图1所示。单击“F2”按钮

3、, 游戏开始,蛇开始随机。键盘操作:向上左移右移向下没有吃到食物且蛇碰到边界单击“确定”游戏结束游戏中途欲中断,稍后继续游戏单击“F3暂停游戏”游戏暂停进入游戏画面再次单击开始F3按钮,游戏恢复图1.程序流程图3.1.4 总设计模块的划分根据游戏需求中游戏所要实现的功能,整个游戏分为二个模块进行具体的设计,如图2所示。贪吃蛇游戏游戏主界面模块游戏控制模块图2.设计总模块 游戏控制模块的主要框架如图3所示。游戏的暂停功能游戏的重新开始游戏的退出图3.控制模块框架游戏暂停控制:点击“F3”按钮,游戏暂停;再单击,游戏继续。游戏重新开始控制:点击“F2”键后,点击确定,即游戏重新开始。游戏退出控制:

4、点击“F4”键好,点击确定,退出游戏界面。3.1.5类、方法、属性说明(1)成员变量表1 主要成员变量(属性)成员变量描述变量类型名称文件菜单中子菜单“新建”JMenuItemmFile_New编辑菜单中子菜单“撤消”mEdit_Undo格式菜单中子菜单“颜色”JMenuformatMenu_Color帮助菜单中子菜单“帮助主题”MenuItemmHelp_HelpTopics(2)方法表2 主要方法方法名功能备注Notepad4()描述记事本无Text.setBackground(Color.black)设置编辑区默认背景色Text.setForeground(Color.black)设置编

5、辑区默认前景色4.1设计结果与分析本程序在运行后,能够正常的相应按键事件。由于程序的主要部分已经集成为一个对象SnakeModel,所以利用键盘就可以实现操作。蛇前行的过程中,可以任意向其左或右方向改变方向。点击F3键后游戏就暂停了。点击F2键游戏重新开始。点击F4游戏退出。运行结果如下图4所示: 图4 程序运行图 当蛇没有吃到食物且碰到边界或碰撞到自己的身体时,游戏结束。如果想重新开始即点击“确定”后按F2键,运行结果如下图5所示:图5 重新开始图4.1.1程序异常处理在蛇的运行线程过程中,当蛇撞到墙或自己的身体时,将抛出一个Exception类的异常对象,然后使用try-catch去捕捉这

6、个异常,异常的处理如下:try Thread.sleep(timeInterval); catch(Exception e) break;心得体会通过这次课程设计,我对这学期所学的JAVA语言程序设计有一个更深刻的了解,将所学的知识应用于实践,由于所学知识有限,为了使游戏能够实现自己预先的构想,我通过上网和去图书馆找程序,比较好的流程图及功能模块,不断阅读修改代码使程序达到预期所要实现的目标,完成课程设计后,可以感觉到自己对Java程序的又有了新的认识。总之,通过本次的课程设计,使我平时学到的理论知识得到了很好地升华,理论与实际得到一次很好的结合,为我今后参加工作打下了坚实的基础,使我受益匪浅

7、。参考文献1赵文靖编著.Java程序设计基础与上机指导.北京:清华大学出版社,20062赵毅主编.跨平台程序设计语言Java.西安:西安电子科技大学出版社,3王路群.Java高级程序设计.北京:中国水利水电出版社,20064雍俊海编著.Java程序设计习题集.北京:5朱福喜编著.Java语言习题与解析.北京:6吴其庆编著.Java程序设计实例教程.北京:冶金工业出版社,2006程序代码:import java.awt.*;import javax.swing.*;import java.util.*;import java.awt.event.*;public class She extend

8、s JFrame implements ActionListener, WindowListener JLabel bt1; JLabel bt2; MyPaint mp; JMenuItem kaishi; JMenuItem zanting; JMenuItem tuichu; JRadioButton chu; JRadioButton zhong; JRadioButton gao; JRadioButton chao; JMenuItem guanyu; Font f; public She() f = new Font(宋体, Font.PLAIN, 12); mp = new M

9、yPaint(); mp.setShe(this); JMenuBar caidan = new JMenuBar(); JMenu shezhi = new JMenu(设置); shezhi.setFont(f); JMenu nandu = new JMenu(难度 nandu.setFont(f); JMenu bangzhu = new JMenu(帮助 bangzhu.setFont(f); caidan.add(shezhi); caidan.add(nandu); caidan.add(bangzhu); kaishi = new JMenuItem(开始游戏 F2 kaish

10、i.setFont(f); kaishi.addActionListener(this); zanting = new JMenuItem(暂停/继续 F3 zanting.setFont(f); zanting.addActionListener(this); tuichu = new JMenuItem(退出 F4 tuichu.setFont(f); tuichu.addActionListener(this); chu = new JRadioButton(初级,最快速度195, true); chu.setFont(f); chu.addActionListener(this); z

11、hong = new JRadioButton(中级,最快速度225 zhong.setFont(f); zhong.addActionListener(this); gao = new JRadioButton(高级,最快速度255 gao.setFont(f); gao.addActionListener(this); chao = new JRadioButton(超级,最快速度275 chao.setFont(f); chao.addActionListener(this); ButtonGroup bg = new ButtonGroup(); bg.add(chu); bg.add

12、(zhong); bg.add(gao); bg.add(chao); nandu.add(chu); nandu.add(zhong); nandu.add(gao); nandu.add(chao); guanyu = new JMenuItem(关于 guanyu.setFont(f); guanyu.addActionListener(this); shezhi.add(kaishi); shezhi.add(zanting); shezhi.add(tuichu); bangzhu.add(guanyu); bt1 = new JLabel(长度:0 bt1.setFont(f);

13、bt2 = new JLabel(移动:5 bt2.setFont(f); JPanel p = new JPanel(); p.setLayout(new GridLayout(1, 2); p.add(bt1); p.add(bt2); this.addWindowListener(this);/添加窗体监听器 this.setJMenuBar(caidan); this.add(p, BorderLayout.NORTH); this.add(mp); this.add(new JLabel(), BorderLayout.WEST); this.setSize(335, 385); t

14、his.setResizable(false); this.setLocation(300, 150); this.setTitle(MyPaint this.setVisible(true); public void setDS(int a, int b) bt1.setText( + a); bt2.setText( + b); public void setChu() chu.setSelected(true); mp.setSD(300, 110); this.setDS(0, 305 - 300); chu.setEnabled(true); zhong.setEnabled(tru

15、e); gao.setEnabled(true); chao.setEnabled(true); public void setNanDu() chu.setEnabled(false); zhong.setEnabled(false); gao.setEnabled(false); chao.setEnabled(false); public void actionPerformed(ActionEvent e) if (e.getSource() = zanting) mp.setZanTing(); else if (e.getSource() = kaishi) mp.setKaiSh

16、i(); else if (e.getSource() = tuichu) mp.setTuiChu(); else if (e.getSource() = guanyu) JLabel gy = new JLabel(小游戏 贪吃蛇 V1.0 gy.setFont(f); JOptionPane.showMessageDialog(this, gy); else if (e.getSource() = chu) else if (e.getSource() = zhong) mp.setSD(250, 80); this.setDS(0, 305 - 250); else if (e.get

17、Source() = gao) mp.setSD(200, 50); this.setDS(0, 305 - 200); else if (e.getSource() = chao) mp.setSD(150, 30); this.setDS(0, 305 - 150); public static void main(String args) new She(); /* * Method windowOpened * * param e */ public void windowOpened(WindowEvent e) / TODO: Add your code here public v

18、oid windowClosing(WindowEvent e) System.exit(0); public void windowClosed(WindowEvent e) public void windowIconified(WindowEvent e) public void windowDeiconified(WindowEvent e) public void windowActivated(WindowEvent e) public void windowDeactivated(WindowEvent e) class MyPaint extends JPanel implem

19、ents Runnable, KeyListener, FocusListener She s; Font f = new Font( int x = 150; int y = 0; Random r = new Random(); int sjx = r.nextInt(300)/10*10; int sjy = r.nextInt(300)/10*10; int fx = 2; int sw = 0; int sd = 300; int cs = 0; int d = 150; String zx = new String1000; boolean zanting = false; boo

20、lean zanting1 = false; boolean siwang = false; boolean shenti = false; public MyPaint() Thread t = new Thread(this); t.start(); this.addKeyListener(this); this.setFocusable(true); this.addFocusListener(this); public void setShe(She ss) s = ss; public void setZanTing() if (zanting) zanting = false; e

21、lse zanting = true; public void setKaiShi() JLabel ks = new JLabel(是否重新开始? ks.setFont(f); int a = JOptionPane.showConfirmDialog(s, ks); if (a = 0) x = 150; y = 0; sjx = r.nextInt(300)/10*10; sjy = r.nextInt(300)/10*10; fx = 2; sw = 0; sd = 300; cs = 0; siwang = false; shenti = false; s.setChu(); s.s

22、etDS(sw, 305 - sd); public void setTuiChu() JLabel tc = new JLabel(确定退出吗? tc.setFont(f); int a = JOptionPane.showConfirmDialog(s, tc); s.dispose(); public void setSD(int a, int b) sd = a; d = b; public void paint(Graphics g) zxcs = x + / + y; super.paint(g); g.setColor(Color.BLACK); g.drawRect(0, 0,

23、 300, 300); g.fillRect(sjx, sjy, 10, 10); g.setColor(Color.BLUE); g.fillRect(x, y, 10, 10); g.setColor(Color.RED); for (int i = 1; i = sw; i+) int j = cs - i; if (j 0) j = cs-i+999+1; String s = zxj.split( if (x = Integer.parseInt(s0) & y = Integer.parseInt(s1) /蛇撞到自己身上了 siwang = true; shenti = true; if (sjx = Integer.parseInt(s0) & sjy = Integer.parseInt(s1) /食物在蛇身体上 continue; g.fillRect(Integer.parseInt(s0), Integer.parseInt(s1), 10, 10); public void run() while (true) cs+; if (cs = 1000) switch (fx) case 1: y-=10;/上 break; case 2:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1