烟台工程职业技术
系 专业 级
课程设计(论文)
题 目:贪吃蛇
指导教师(签名)
二○一一年 七 月 十五 日
贪吃蛇
摘要:
本文采用J2EE实现大家耳熟能详的一个贪吃蛇游戏来综合运用所学知识,本游戏运用
Java的面向对象思想、封装类、接口等概念,来完成本游戏,达到综合运用所学知识的目的。
1. JAVA开发环境:JDK1.6+Eclipse
2. 开发语言:J2EE
前言
贪吃蛇游戏背景:
蛇引诱夏娃吃了苹果后,就被贬为毒虫,阴险的象征。而蛇吃东西是整只动物吞进去的,大概在文艺复兴的时候就有人发明的一种游戏,是现在贪吃蛇的前身。后来慢慢的发展就变成了今天的贪吃蛇,现在的贪吃蛇主要应用于手机游戏。
本文运用Java面向对象编程、类的封装、抽象类的使用(接口),循序渐进实现贪吃蛇的相关功能。
一. 设计题目:
《贪吃蛇》
二. 需求分析:
现在的人都很无聊,看一些小游戏可以娱乐心智,开阔视野,
三. 详细设计:
1. 设计GreedSnake类,他们有keyPressed(KeyEvent e)方法, 按下键盘方向键,GreedSnake类可以生成随即位置,开始时按下begin按钮,如下:
2.按下begin后,再按下tab键,开始。用键盘的上下左右来控制。
3. 当游戏玩到15关的时候,win!
四.总结
通过这一周的课程设计,我觉得以前上课时很零散的知识现在能够串起来,平时虽然一个周就四节课,每次学得也不是很多,但是通过这次做课设,我发现综合起来,那些知识是能用上的。
学习任何知识,如果只学理论,而不去实践、探索是不够的,所以要经常去实践,只有这样才可能把事情做好。
不管做什么,都要有思路,不能盲目的做。只有确定了方向跟目标,认真想想,再努力做,什么事都能解决的。最后,感谢陈娅冰老师的指点跟讲评,通过做贪吃蛇,我学到了很多书本上没有的知识。
五.附录:
import java.awt.*;
import java.awt.event.*;
public class GreedSnake //主类
{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyWindow();
}
}
class MyPanel extends Panel implements KeyListener,Runnable//自定义面板类,继承了键盘和线程接口
{
Button snake[]; //定义蛇按钮
int shu=0; //蛇的节数
int food[]; //食物数组
boolean result=true; //判定结果是输 还是赢
Thread thread; //定义线程
static int weix,weiy; //食物位置
boolean t=true; //判定游戏是否结束
int fangxiang=0; //蛇移动方向
int x=0,y=0; //蛇头位置
MyPanel()
{
setLayout(null);
snake=new Button[20];
food=new int [20];
thread=new Thread(this);
for(int j=0;j<20;j++)
{
food[j]=(int)(Math.random()*99);//定义20个随机食物
}
weix=(int)(food[0]*0.1)*60; //十位*60为横坐标
weiy=(int)(food[0]%10)*40; //个位*40为纵坐标
for(int i=0;i<20;i++)
{
snake[i]=new Button();
}
add(snake[0]);
snake[0].setBackground(Color.black);
snake[0].addKeyListener(this); //为蛇头添加键盘监视器
snake[0].setBounds(0,0,10,10);
setBackground(Color.cyan);
}
public void run() //接收线程
{
while(t)
{ if(fangxiang==0)//向右
{
try
{ x+=10;
snake[0].setLocation(x, y);//设置蛇头位置
if(x==weix&&y==weiy) //吃到食物
{
shu++;
weix=(int)(food[shu]*0.1)*60;
weiy=(int)(food[shu]%10)*40;
repaint(); //重绘下一