1、项目概述
项目目标和主要内容
实验内容:
1)实现贪吃蛇游戏基本功能,屏幕上随机出现一个“食物”,称为豆子,上下左右控制“蛇”的移动,吃到“豆子”以后“蛇”的身体加长一点,得分增加,“蛇”碰到边界或,蛇头与蛇身相撞,蛇死亡,游戏结束。为游戏设计初始欢迎界面,游戏界面,游戏结束界面。
2)进行交互界面的设计,要有开始键、暂停键和停止退出的选项。对蛇吃到豆子进行分值计算,可以设置游戏速度,游戏音乐等拓展元素。
开发平台:eclipse
2、项目设计
算法思路
创建地图–>创建蛇–>随机在地图内产生食物–>蛇的移动–>读入方向键–>蛇头、蛇尾的运动–>蛇的捕食–>食物的消失–>判断是否撞墙或撞自己–>输出图像
3、程序运行结果分析
Gpanel.java
package gluttonoussnake;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Gpanel extends JPanel implements KeyListener, ActionListener{
ImageIcon title=new ImageIcon("title.jpg");
ImageIcon body=new ImageIcon("body.png");
ImageIcon up=new ImageIcon("up.png");
ImageIcon down=new ImageIcon("down.png");
ImageIcon left=new ImageIcon("left.png");
ImageIcon right=new ImageIcon("right.png");
ImageIcon food=new ImageIcon("food.png");
int len=3;
int score=0;
int[] snakex=new int[750];
int[] snakey=new int[750];
String fx="R";
boolean isStarted=false;
boolean isFailed=false;
Timer timer=new Timer(200,this);
int foodx;
int foody;
Random rand=new Random();
public Gpanel() {
initSnake();
this