资源预览内容
第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
第9页 / 共27页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
课程设计说明书 NO.1贪吃蛇程序设计1.程序设计的目的Java语言是当今流行的网络编程语言, 它具有面向对象、 跨平台、 分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而 且有利于软件的维护和继承。为了对所学的课程进行加深理解,熟练的掌握 JAVA 的语法与语句,对其进行应用。通过此次课程设计,巩固所学 Java语言基本知识,增进 Java语言编辑基本功,掌 握JDK、 JCreator等开发工具的运用, 拓宽常用类库的应用。 为了进一步巩固课堂上所学 到的知识,深刻把握 Java语言的重要概念与其面向对象的特性,锻炼我们熟练的应用面 向对象的思想和设计方法解决实际问题的能力。使我们通过进行课程设计,把所学课程与相关知识加以融会贯通,全面掌握 Java语言的编程思想与面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。通过课程设计来对 JAVA 语言有更深的了解,以与应用。2.设计方案论证2.1 系统模块图 如图 1 所示图 1 系统模块图.沈 阳 大 学课程设计说明书 NO.22.2 主要部分流程图 如图 2 所示:图 2 主要流程图.沈 阳 大 学课程设计说明书 NO.32.3 设计思路与具体实现方法2.3.1 产生一个窗口(1)定义一个框架,确定大小。其大小使 600, 400;(2)定义一个贪吃蛇的类,确定其大小比例;(3)在窗口上方定义一个 Score 得分;(4) 在窗口的下方定义各按钮的位置。 使贪吃蛇运动起来通过函数的调用,使贪吃蛇运动起来,用按键来调节贪吃蛇的运动方向,运动的速 度。定义各功能键的作用(1) PageUp 使贪吃蛇加速,减速。并确定其按键位置;(2) PageDown 使贪吃蛇减速。并确定其按键位置;(2) ENTER , R , S 重新开始游戏,界面回到开始界面;(3) SPACE , P 暂停游戏。使贪吃蛇听指挥(1)加键盘监听器类;(2)添加键盘监听器;(3)定义其按键上,下,左,右;(4)针对不同的键改变贪吃蛇的位置, 与重画线程结合产生不同方向运动。 通过上下左右来调节。进行贪吃蛇类的确定(1)定义背景的颜色为白色;(2)定义贪吃蛇的颜色为黑色;(3)定义食物的颜色为红色。食物出现的位置通过随机函数调用,实现食物的出现,当贪吃蛇吃完一各食物,随即再生成一个食 物。贪吃蛇身增加一节运用 for 函数实现,当贪吃蛇每吃到食物,贪吃蛇蛇身就增加一节,然后在框 架中又重新出现新的食物。得分增加当贪吃蛇每吃到一块食物,贪吃蛇蛇身就增加一节,分数就有次序的增加。 在框架的上方有显示。贪吃蛇死亡(1)当贪吃蛇撞到框架或自身的时候,则贪吃蛇死亡。然后弹处一个对话框, 显示 you failed 。(2)如果想继续游戏,点击“确定” ,再按 ENTER , R , S 重新开始游戏,界面回到开始界面。游戏结束显示 youfailed ,你取消对话框即退出了贪吃蛇游戏。.沈 阳 大 学课程设计说明书 NO.42.4 设计的源代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class GreedSnake implements KeyListenerJFrame mainFrame;Canvas paintCanvas;JLabel labelScore;SnakeModel snakeModel = null;public static final int canvasWidth = 600;public static final int canvasHeight = 400;public static final int nodeWidth = 10;public static final int nodeHeight = 10;public GreedSnake()mainFrame = new JFrame(GreedSnake);Container cp = mainFrame.getContentPane();labelScore = new JLabel(Score:);cp.add(labelScore, BorderLayout.NORTH);paintCanvas = new Canvas();paintCanvas.setSize(canvasWidth+1,canvasHeight+1);paintCanvas.addKeyListener(this);cp.add(paintCanvas, BorderLayout.CENTER);JPanel panelButtom = new JPanel();panelButtom.setLayout(new BorderLayout();JLabel labelHelp;labelHelp = new JLabel(PageUp, PageDown for speed;, JLabel.CENTER); panelButtom.add(labelHelp, BorderLayout.NORTH);labelHelp = new JLabel(ENTER or R or S for start;, JLabel.CENTER);panelButtom.add(labelHelp, BorderLayout.CENTER);labelHelp = new JLabel(SPACE or P for pause,JLabel.CENTER);panelButtom.add(labelHelp, BorderLayout.SOUTH);cp.add(panelButtom,BorderLayout.SOUTH);mainFrame.addKeyListener(this);mainFrame.pack();mainFrame.setResizable(false);mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);mainFrame.setVisible(true);.沈 阳 大 学课程设计说明书 NO.5begin();public void keyPressed(KeyEvent e)int keyCode = e.getKeyCode();if (snakeModel.running)switch(keyCode)case KeyEvent.VK_UP:snakeModel.changeDirection(SnakeModel.UP);break;case KeyEvent.VK_DOWN:snakeModel.changeDirection(SnakeModel.DOWN);break;case KeyEvent.VK_LEFT:snakeModel.changeDirection(SnakeModel.LEFT);break;case KeyEvent.VK_RIGHT:snakeModel.changeDirection(SnakeModel.RIGHT);break;case KeyEvent.VK_ADD:case KeyEvent.VK_PAGE_UP:snakeModel.speedUp();break;case KeyEvent.VK_SUBTRACT:case KeyEvent.VK_PAGE_DOWN:snakeModel.speedDown();break;case KeyEvent.VK_SPACE:case KeyEvent.VK_P:snakeModel.changePauseState();break;default:if (keyCode = KeyEvent.VK_R |keyCode = KeyEvent.VK_S |keyCode = KeyEvent.VK_ENTER)snakeModel.running = false;.沈 void阳 大 学课程设计说明书 NO.6begin();public void keyReleased(KeyEvent e)public void keyTyped(KeyEvent e)void repaint()Graphics g = paintCanvas.getGraphics();/draw backgroundg.setColor(Color.WHITE);g.fillRect(0,0,canvasWidth,canvasHeight);/ draw the snakeg.setColor(Color.BLACK);LinkedList na = snakeModel.nodeArray;Iterator it = na.iterator();while(it.hasNext()Node n = (Node)it.next();drawNode(g,n);/ draw the foodg.setColor(Color.RED);Node n = snakeModel.food;drawNode(g,n);updateScore();private void drawNode(Graphics g, Node n)g.fillRect(
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号