Java程序设计报告《贪吃蛇》.docx

上传人:大张伟 文档编号:11736267 上传时间:2021-09-02 格式:DOCX 页数:15 大小:37.50KB
返回 下载 相关 举报
Java程序设计报告《贪吃蛇》.docx_第1页
第1页 / 共15页
Java程序设计报告《贪吃蛇》.docx_第2页
第2页 / 共15页
Java程序设计报告《贪吃蛇》.docx_第3页
第3页 / 共15页
Java程序设计报告《贪吃蛇》.docx_第4页
第4页 / 共15页
Java程序设计报告《贪吃蛇》.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《Java程序设计报告《贪吃蛇》.docx》由会员分享,可在线阅读,更多相关《Java程序设计报告《贪吃蛇》.docx(15页珍藏版)》请在三一文库上搜索。

1、Java程序设计报告贪吃蛇Java程序设计课程设计报告题 目:贪吃蛇游戏的设计与实现指导老师:沈泽刚专 业:计算机科学与技术班 级:1023姓 名:梁潇一、课程设计目的贪吃蛇游戏一款非常经典的手机游戏,因为它比较简单有趣,无 论老少都比较适合。目的是更好地了解和掌握java语言,并熟练的 运用java语言来实现项目。培养自主学习的能力。本软件在设计方面本着方便、实用及娱乐性高的宗旨,在外界进 行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高, 不易出错等优点。二、课程设计要求贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模 块、游戏控制模块。三、课程设计报告内容 (-)系统设

2、计1、程序概述本程序是一个利用Java应用软件制作的贪吃蛇小游戏。在游戏过程中,用户通过点击小键盘区的方向键来控制蛇的运 行方向;当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结束。本程序的另一个功能是在程序运行窗口的左上角显示,用户在 游戏过程中所得的分数,不过缺点就是在退处程序后,下次打开程序 时无法保存。2、游戏的主界面设计游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主 要包括游戏图形区域界面、游戏的速度选择更新界面、游戏分数的显 示更新界面、游戏开始按钮、暂停游戏按钮、退出游戏按钮以及游戏 排行榜按钮。3、游戏控制模块设计这个模块是游戏的中心环节,主要完成控制游戏的开始、暂停、

3、退出等功能。为了能够给玩家一个很好的游戏环境,这部分应该做到 易懂、易操作。(-)主界面设计游戏界面主框架主要包括游戏图形区域界面、游戏的开始按钮、暂停按钮、游戏的退出按钮、困难程度、积分排行、关于作者。(三)代码设计import java.awt.Color;import java.awt.Container;import java.awt.Graphics;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.I

4、nputEvent;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.*;public class TanChiShe extends JFrame implementsActionListener, KeyListener,Runnable private JMenuBar menuBar;private JMenu youXiMenu,nanDuMenu z fenShuMenu,guanYuMenu;privateJMenuItem kaiShiYouXi,exitlte

5、m,zuoZheItem,fenShuItem;private JCheckBoxMenuItem cJianDan,cPuTong,cKunNan;private int length = 6;private Toolkit toolkit;privateint i,x,y,z,objectX,objectY,object=0,growth=0,time;private int difficult=2;private int m=new int50;private int n=new int50;private Thread she = null;private int life=0;pri

6、vate int foods = 0;private int fenshu=0;public voidrun() 运行time=500;for(i=0;i=length-l;i+)mi=90-i*10;ni=60;x=mO;y=nO;z=4;while(she!=null)(check ();tryshe time);catch(Exception ee)System.out.printin(z+nn);)public TanChiShe()I /包资 setVisible(true);menuBar = new JMenuBar();Container con=getContentPane(

7、);toolkit=getToolkit();/* 游戏菜单对象 youXiMenu = new JMenu (“游戏”);kaiShiYouXi = new JMenu工tem (开始游戏”);exit Item = new JMenu 工 tem (“退出游戏“);I /困 nanDuMenu = new JMenu (困难程度”);cJianDan = new JCheukBoxMenu工tem(“简单”);cPuTong = new JCheckBoxMenuItem(H#MH);cKunNan = new JCheckBoxMenuItem (H);I /单 fenShuMenu =

8、 new JMenu (积分排行”);fenShuItem = new JMenu工 tem (“最高记录”);I / *guanYuMenu = new JMenu (“关于);zuoZheltem = new JMenu工tem (关于作者“);I /置单 guanYuMenu.add(zuoZheltem);I /置 困单 nanDuMenu.add(cJianDan);nanDuMenu.add(cPuTong);nanDuMenu.add(cKunNan);I /单 fenShtiMenu.add(fenShuItem);I /youXiMenu.add(kaiShiYouXi);y

9、ouXiMenu.add(exititem);I /皆 主 单一 menuBar.add(youXiMenu);menuBar.add(nanDuMenu);menuBar.add(fenShuMenu);menuBar.add(guanYuMenu);I / 监jjlf zuoZheltem. addActionListener (this); kaiShiYouXi.addActionListener(this); exitItem.addActionListener(this);addKeyListener(this);fenShuItem.addActionListener(this)

10、;I / *keyOpenKeystrokeKeystroke . getKeyStroke (O, InputEvent. CTRL_DOWN_MASK); kaiShiYouXi.setAccelerator(keyOpen);KeystrokekeyExitKeystroke . getKeyStroke ( 1 Xf z InputEvent. CTRL_DOWN_MASK); exitItem.setAccelerator(keyExit);I /置setJMenuBar(menuBar);setTitle (“贪吃蛇”);setResizable(false);setBounds(

11、300,200 A 400,400);validate();setDefaultCloseOperation(EXIT_ON_CLOSE); 一 一public static void main(String args) ( new TanChiShe();I / 单监 public void actionPerformed(ActionEvent e) (if(e.getSource()=kaiShiYouXi) (length = 6;life = 0;foods = 0; if (she=null) she=new Thread(this); she.start();) else if(

12、she=null) she=null; she= new Thread(this); she start(); ) if(e.getSource()=exitltem) System.exit(0); )if(egetSource()=zuoZheItem)JOptionPane . showMessageDialog(this f “梁潇“ + ”nn);if(e . getSource()=fenShuItem)JOptionPane.showMessageDialog(this,”最 高 记录为 n+fenshu+nn);) )I /public void check() (isDead

13、();if(she?=null)if(growth=0) reform (); else (upgrowth (); if(x=objectX&y=objectY) object=0;growth=l; toolkit.beep(); )I /牛if (object=0) (object=l;objectX=(int)Math.floor(Math.random()*39)*10;objectY=(int)Math.floor(Math.random() *29) *10+50; this repaint(); ) void isDead()if (z=4)x=x+10; else if (z

14、=3)( x=x-10;)else if (z=2)( y=y+10; else if (z=l)( y=y-10;)if(x390|y390) she=null;for (i=l;ilength;i+)(if (mi=x&ni=y)she=null;public void upgrowth()if(length50)length+;growth; time=time-10;reform(); life+=100;if(fenshu0;i-) (mi=mi-l;ni=ni-l;if(z=4) m0=m0+10;if (z=3) m0=m0-10;)if(z=2)n0=n0+10;if(z=l)

15、( n0=n0-10;) public void keyPressed(KeyEvent e) (if(she?=null)if (e . getKeyCode () =KeyEvent. VK_UP) if(z?=2) (Z=1 ;check();) else if(e.getKeyCode()=KeyEvent.VK_DOWN) -if(z?=l) (z=2;check();else if(e.getKeyCode()=KeyEvent.VK_LEFT) -if(z?=4) ( z=3; check();) else if(e.getKeyCode()=KeyEvent. VK_RIGHT

16、) if(z?=3) ( z=4;check(); public void keyReleased(KeyEvent e) (/ TODO自动生成方法存根 public void keyTyped(KeyEvent e) (/ TODO自动生成方法存根 public void paint(Graphics g) (I/ jgj 图g setColor (Color . DARK_GRAY);g.fillRect(0,50,400,400);g.setColor(Color.pink);for (i=0;i=length-l;i+) g.fillRect(mi,ni,10z10);)g- set

17、Color(Color.green);g.fillRect(objectX,objectY,10 z10);g.setColor(Color.white);g . drawstring 当前分数”+this . life, 6,60);g - drawstring (当前已吃食物数”+this . foods ,6,72);(四)测试国更吃蛇擀戏困难程度租分排行关于(五)使用说明在游戏过程中,用户通过点击小键盘区的方向键来控制蛇的运行 方向;当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结束。同时,游戏可以使用快捷键,Ctr 1+0为开始游戏,Cirl+X为 退出游戏。四、总结(心得体会)在设计过程中遇到一些问题,在游戏过程中,左上角显示所得的 分数,不过缺点就是在退处程序后,下次打开程序时无法保存。整个设计过程是不断学习,不断发现问题、分析问题、解决问题 的过程。使我受益良多。设计期间有很多感触,想法,对以后的学习、 工作有很大的益处。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1