java版的贪吃蛇毕业论文Word文档下载推荐.docx

上传人:b****0 文档编号:13481939 上传时间:2022-10-11 格式:DOCX 页数:23 大小:228.36KB
下载 相关 举报
java版的贪吃蛇毕业论文Word文档下载推荐.docx_第1页
第1页 / 共23页
java版的贪吃蛇毕业论文Word文档下载推荐.docx_第2页
第2页 / 共23页
java版的贪吃蛇毕业论文Word文档下载推荐.docx_第3页
第3页 / 共23页
java版的贪吃蛇毕业论文Word文档下载推荐.docx_第4页
第4页 / 共23页
java版的贪吃蛇毕业论文Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

java版的贪吃蛇毕业论文Word文档下载推荐.docx

《java版的贪吃蛇毕业论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《java版的贪吃蛇毕业论文Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

java版的贪吃蛇毕业论文Word文档下载推荐.docx

In thispaper,J2SEimplementation ofaSnakegamefamiliarto theintegrated useofwhatthey havelearned,thisgameis the useofsoftware engineeringthinking(spiralmodel),themain frameworkof thefight game,JAVA object-orientedthinking,wrapperclasses,interfaceconceptstoplete this game,hittingtheintegrated useofknowledgeandpurpose、

⑴、 Thegamedevelopmentplatform:

WINXP;

⑵、 JAVADevelopmentEnvironment:

JDK1、6+ Eclipse;

⑶、DevelopmentLanguages:

J2SE

Keywords:

Controller;

GamePanel;

Food;

Snake;

Ground

前言

贪吃蛇游戏背景:

蛇引诱夏娃吃了苹果之后,就被贬为毒虫,阴险的象征、而蛇吃东西是整只动物吞进去的,大概在文艺复兴的时候(好象是那个时候然而不确定)就有人发明的一种游戏,是现在贪吃蛇的前身、后来慢慢的发展就变成了今天的贪吃蛇了、现在贪吃蛇主要应用于手机游戏。

本文运用软件工程思想、JAVA面向对象编程、类的封装、抽象类的使用(接口),游戏编码规范遵循MVC模式,循序渐进实现贪吃蛇的相关功能、

一:

游戏中的面向对象分析与设计

㈠ ●涉及到几个对象(类)

 ㈡ ●每个类有什么方法

1 、首先得有个游戏显示面板(GamePanel)类

该类有一个方法void display();

//用来显示游戏面板

2、 得有个蛇(Snake)类

该类有以下几个方法:

voidmove();

 //移动(走一步)

void changeDirection();

//改变方向

void eatFood();

//吃食物(身体变长)

vooleanis EatBody();

//蛇是否吃到了自己的身体

voiddrawMe();

//显示

3 、一个食物类(Food)类

该类有以下方法:

booleanis SnakeEatFood(Snake);

//判断蛇是否吃到了食物

voiddrawMe();

//显示

4、 一个背景石头(Ground)类

Boolean isSnakeEatRock(Snake);

 //蛇是否吃到了石头

voiddrawMe();

//显示

此时类之间的关系如下图所示:

图1各个类之间的关系

二:

编写贪吃蛇游戏中的各个类的主体框架性代码

本有序遵循MVC(Model—View-Controller)因此首先建立以上几个实体类并定义相应的包名:

liang、snake、entities包下定义Food、Ground、Snake 三个类,再在liang、snake、view包下定义GamePanel类,再在,依照以上讲明的各个类具有的方法,写上如下代码:

package liang、snake、entities;

publicclassFood{

ﻩpublicbooleanisSnakeEatFood(Snakesnake)

ﻩ {

ﻩﻩ System、out、println(”Snake'seatfood”);

ﻩﻩ returnfalse;

   publicvoiddrawme()

ﻩ {

ﻩ  System、out、println(”Food’sdrawme”);

ﻩ   }

package liang、snake、entities;

publicclass Ground {

ﻩpublicbooleanisSnakeEatRock()

  {

ﻩﻩreturnfalse;

}

publicvoid drawme()

 {

ﻩ  System、out、println(”Ground’sdrawme");

  }

packageliang、snake、entities;

public classSnake {

ﻩpublicvoidmove()

  {

  ﻩSystem、out、println(”Snake'smove”);

  }

   public voidchangeDirection(intdirection)

    {

  ﻩSystem、out、println("

Snake’schangeDirection”);

  }

  publicvoid eatFood()

  ﻩ System、out、println("Snake’seat food");

  }

public boolean isEatBody()

  {

ﻩ System、out、println(”Snake’seatbody”);

   ﻩreturn false;

 }

  publicvoiddrawMe(){

 ﻩ System、out、println("Snake’sdrawMe”);

packageliang、snake、view;

importjava、awt、Graphics;

importjavax、swing、JPanel;

importliang、snake、entities、Food;

importliang、snake、entities、Ground;

importliang、snake、entities、Snake;

public classGamePanel extends JPanel{

 private Snakesnake;

 privateGroundground;

privateFoodfood;

ﻩpublicvoid paintponent(Graphicsg){

snake、drawMe();

ground、drawme();

ﻩfood、drawme();

ﻩ}

ﻩpublicvoiddisplay(Snakesnake,Groundground,Foodfood)

{

ﻩthis、snake=snake;

ﻩﻩthis、ground=ground;

ﻩﻩthis、food=food;

 ﻩ System、out、println("GamePanel’sdisplay");

 this、repaint();

 }

三:

编写Controler类与实现蛇移动的事件监听

由于蛇不能直截了当操作显示面板(GamePanel)因此这个地方定义一个监听器SnakeListener:

里面定义一个方法:

voidsnakeMove(Snake);

每当蛇移动一步就触发监听器,调用snakeMoved()由Controller去实现监听器的接口,然后由控制器去触发显示面板的事件源,让显示面板完成相应操作。

逻辑图如下:

图2事件监听建立联系

在Snake中增加蛇的方向常量:

ﻩpublicstatic finalint UP=1;

ﻩpublicstaticfinalint DOWN=—1;

ﻩpublic staticfinalint LEFT=2;

ﻩpublic staticfinalintRIGHT=-2;

并添加一个接口:

packageliang、snake、Listener;

importliang、snake、entities、Snake;

public interfaceSnakeListener{

ﻩﻩpublicvoidSnakeMove(Snake snake);

ﻩ}

Controler实现SnakeListener接口并处理案件消息:

代码如下:

packageliang、snake、Controller;

importjava、awt、event、KeyAdapter;

importjava、awt、event、KeyEvent;

importliang、snake、Listener、SnakeListener;

import liang、snake、entities、Food;

import liang、snake、entities、Ground;

import liang、snake、entities、Snake;

importliang、snake、view、GamePanel;

publicclassController extendsKeyAdapter implementsSnakeListener{

ﻩSnake snake=newSnake();

ﻩGround ground=newGround();

Foodfood=new Food();

 GamePanel gamepanel=new GamePanel();

 publicController(Snake snake, Groundground,Food food,GamePanelgamepanel){

ﻩﻩthis、snake=snake;

ﻩﻩthis、ground=ground;

ﻩﻩthis、food =food;

ﻩﻩthis、gamepanel =gamepanel;

publicvoid keyReleased(KeyEvente){

ﻩﻩswitch(e、getKeyCode())

ﻩﻩ{

ﻩﻩcaseKeyEvent、VK_UP:

ﻩﻩﻩsnake、changeDirection(Snake、UP);

ﻩbreak;

ﻩﻩcaseKeyEvent、VK_DOWN:

ﻩﻩﻩsnake、changeDirection(Snake、DOWN);

ﻩﻩﻩbreak;

ﻩﻩcaseKeyEvent、VK_LEFT:

ﻩﻩﻩsnake、changeDirection(Snake、LEFT);

ﻩﻩbreak;

ﻩcase KeyEvent、VK_RIGHT:

ﻩﻩﻩsnake、changeDirection(Snake、RIGHT);

ﻩﻩﻩbreak;

ﻩﻩ}

publicvoidnewgame()

ﻩsnake、start();

}

ﻩpublicvoidSnakeMove(Snake snake){

  gamepanel、

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

当前位置:首页 > 工作范文

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

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