java用vc编写的贪吃蛇程序游戏代码,包含游戏设置等按钮,还有排行榜等,还有障碍物。用纯java编写

Swing贪吃蛇游戏(一):基本功能实现 - Java学习: 让积累成为一种习惯 - ITeye技术网站
博客分类:
本文将提供一个Swing版本的贪吃蛇游戏,游戏包括最基本的功能:
1. 用Timer来管理贪吃蛇线程。
2. 实现按钮,键盘的事件响应。
3. 随机产生食物。
4. 游戏结束的判断:蛇头触碰到蛇身或者蛇头触碰到边界。
5. 实现游戏过程中的暂停以及贪吃蛇运行速度调整。
6. … …
程序界面如下:左边是贪吃蛇运行的范围,右边暂时只有分数信息,当蛇吃到食物的时候分数加10.
暂停,调整蛇体运行速度界面如下:
主要的代码如下:
package my.games.snake.
import java.awt.C
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.io.S
import my.games.snake.contants.SnakeGameC
* 贪吃蛇游戏用到的格子类
* @author Eric
public class Grid implements Serializable {
private static final long serialVersionUID = 6028563L;
// x location
// y location
private C // color for square
public Grid() {
public Grid(int x, int y, Color color) {
this.color =
* Draw Grid
* @param g2
public void draw(Graphics2D g2) {
int clientX = SnakeGameConstant.SNAKE_GAME_PANEL_LEFT + x
* SnakeGameConstant.GRID_SIZE;
int clientY = SnakeGameConstant.SNAKE_GAME_PANEL_TOP + y
* SnakeGameConstant.GRID_SIZE;
Rectangle2D.Double rect = new Rectangle2D.Double(clientX, clientY,
SnakeGameConstant.GRID_SIZE, SnakeGameConstant.GRID_SIZE);
g2.setPaint(color);
g2.fill(rect);
g2.setPaint(Color.BLACK);
g2.draw(rect);
* @return the color
public Color getColor() {
* @param color
the color to set
public void setColor(Color color) {
this.color =
* @return the x
public int getX() {
* @param x
the x to set
public void setX(int x) {
* @return the y
public int getY() {
* @param y
the y to set
public void setY(int y) {
package my.games.snake.
import java.awt.Graphics2D;
import java.io.S
import java.util.LinkedL
import java.util.L
import my.games.snake.contants.SnakeGameC
import my.games.snake.enums.D
public class Snake implements Serializable {
private static final long serialVersionUID = -4550631L;
private List&Grid& list =
private Direction direction = Direction.RIGHT;
public Snake() {
this.list = new LinkedList&Grid&();
public void changeDirection(Direction direction) {
if (direction.isUpDirection()) {
if (!this.direction.isUpDirection()
&& !this.direction.isDownDirection()) {
this.direction =
} else if (direction.isRightDirection()) {
if (!this.direction.isRightDirection()
&& !this.direction.isLeftDirection()) {
this.direction =
} else if (direction.isDownDirection()) {
if (!this.direction.isUpDirection()
&& !this.direction.isDownDirection()) {
this.direction =
} else if (direction.isLeftDirection()) {
if (!this.direction.isRightDirection()
&& !this.direction.isLeftDirection()) {
this.direction =
public void draw(Graphics2D g2) {
for (Grid grid : list) {
grid.draw(g2);
* @return the list
public List&Grid& getList() {
* @param list
the list to set
public void setList(List&Grid& list) {
this.list =
* @return the direction
public Direction getDirection() {
* @param direction
the direction to set
public void setDirection(Direction direction) {
this.direction =
public void move() {
Grid currentHead = list.get(0);
int headX = currentHead.getX();
int headY = currentHead.getY();
currentHead.setColor(SnakeGameConstant.SNAKE_BODY_COLOR);
if (direction.isDownDirection()) {
list.add(0, new Grid(headX, headY + 1,
SnakeGameConstant.SNAKE_HEADER_COLOR));
list.remove(list.size() - 1);
} else if (direction.isUpDirection()) {
list.add(0, new Grid(headX, headY - 1,
SnakeGameConstant.SNAKE_HEADER_COLOR));
list.remove(list.size() - 1);
} else if (direction.isRightDirection()) {
list.add(0, new Grid(headX + 1, headY,
SnakeGameConstant.SNAKE_HEADER_COLOR));
list.remove(list.size() - 1);
} else if (direction.isLeftDirection()) {
list.add(0, new Grid(headX - 1, headY,
SnakeGameConstant.SNAKE_HEADER_COLOR));
list.remove(list.size() - 1);
package my.games.snake.
import java.awt.C
import java.awt.event.ActionE
import java.awt.event.ActionL
import javax.swing.ButtonG
import javax.swing.JF
import javax.swing.JM
import javax.swing.JMenuB
import javax.swing.JMenuI
import javax.swing.JOptionP
import javax.swing.JRadioButtonMenuI
import my.games.snake.contants.SnakeGameC
import my.games.snake.enums.GameS
public class SnakeGameFrame extends JFrame {
private static final long serialVersionUID = 506026L;
private SnakeGameP
private Container contentP
private JMenuItem startMI = new JMenuItem("Start");
private JMenuItem pauseMI = new JMenuItem("Pause");
private JMenu speedMenu = new JMenu("Speed");
private JMenuItem exitMI = new JMenuItem("Exit");
private JMenuItem aboutMI = new JMenuItem("About");
private JRadioButtonMenuItem speedMI1 = new JRadioButtonMenuItem("Speed1",
private JRadioButtonMenuItem speedMI2 = new JRadioButtonMenuItem("Speed2",
private JRadioButtonMenuItem speedMI3 = new JRadioButtonMenuItem("Speed3",
private JRadioButtonMenuItem speedMI4 = new JRadioButtonMenuItem("Speed4",
private JRadioButtonMenuItem speedMI5 = new JRadioButtonMenuItem("Speed5",
public int speedFlag = 1;
public SnakeGameFrame() {
setTitle(SnakeGameConstant.SNAKE_GAME);
setSize(SnakeGameConstant.SNAKE_GAME_FRAME_WIDTH,
SnakeGameConstant.SNAKE_GAME_FRAME_HEIGHT);
setResizable(false);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu setMenu = new JMenu("Set");
JMenu helpMenu = new JMenu("Help");
setMenu.setMnemonic('s');
setMenu.setMnemonic('H');
menuBar.add(setMenu);
menuBar.add(helpMenu);
setMenu.add(startMI);
setMenu.add(pauseMI);
setMenu.addSeparator();
setMenu.addSeparator();
setMenu.add(speedMenu);
setMenu.addSeparator();
setMenu.add(exitMI);
ButtonGroup group = new ButtonGroup();
group.add(speedMI1);
group.add(speedMI2);
group.add(speedMI3);
group.add(speedMI4);
group.add(speedMI5);
speedMenu.add(speedMI1);
speedMenu.add(speedMI2);
speedMenu.add(speedMI3);
speedMenu.add(speedMI4);
speedMenu.add(speedMI5);
startMI.addActionListener(new StartAction());
pauseMI.addActionListener(new PauseAction());
exitMI.addActionListener(new ExitAction());
speedMI1.addActionListener(new SpeedAction());
speedMI2.addActionListener(new SpeedAction());
speedMI3.addActionListener(new SpeedAction());
speedMI4.addActionListener(new SpeedAction());
speedMI5.addActionListener(new SpeedAction());
helpMenu.add(aboutMI);
aboutMI.addActionListener(new AboutAction());
contentPane = getContentPane();
panel = new SnakeGamePanel(this);
contentPane.add(panel);
startMI.setEnabled(true);
pauseMI.setEnabled(false);
// 设置游戏状态是初始化状态
panel.setGameState(GameState.INITIALIZE);
private class StartAction implements ActionListener {
public void actionPerformed(ActionEvent event) {
startMI.setEnabled(false);
pauseMI.setEnabled(true);
panel.setGameState(GameState.RUN);
panel.getTimer().start();
private class PauseAction implements ActionListener {
public void actionPerformed(ActionEvent event) {
pauseMI.setEnabled(false);
startMI.setEnabled(true);
panel.setGameState(GameState.PAUSE);
if (panel.getTimer().isRunning()) {
panel.getTimer().stop();
private class SpeedAction implements ActionListener {
public void actionPerformed(ActionEvent event) {
Object speed = event.getSource();
if (speed == speedMI1) {
speedFlag = 1;
} else if (speed == speedMI2) {
speedFlag = 2;
} else if (speed == speedMI3) {
speedFlag = 3;
} else if (speed == speedMI4) {
speedFlag = 4;
} else if (speed == speedMI5) {
speedFlag = 5;
panel.getTimer().setDelay(1000 - 200 * (speedFlag - 1));
private class ExitAction implements ActionListener {
public void actionPerformed(ActionEvent event) {
int result = JOptionPane.showConfirmDialog(SnakeGameFrame.this,
SnakeGameConstant.QUIT_GAME, SnakeGameConstant.SNAKE_GAME,
JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.YES_OPTION) {
System.exit(0);
private class AboutAction implements ActionListener {
public void actionPerformed(ActionEvent event) {
String string = SnakeGameConstant.KEYBOARDS_DESCRIPTION;
JOptionPane.showMessageDialog(SnakeGameFrame.this, string);
package my.games.snake.
import java.awt.C
import java.awt.G
import java.awt.Graphics2D;
import java.awt.event.ActionE
import java.awt.event.ActionL
import java.awt.event.KeyE
import java.awt.event.KeyL
import java.awt.geom.Rectangle2D;
import java.io.S
import java.util.LinkedL
import java.util.L
import java.util.R
import javax.swing.JOptionP
import javax.swing.JP
import javax.swing.T
import my.games.snake.contants.SnakeGameC
import my.games.snake.enums.D
import my.games.snake.enums.GameS
import my.games.snake.model.G
import my.games.snake.model.S
public class SnakeGamePanel extends JPanel {
private static final long serialVersionUID = -1265176L;
private int flag[][] = new int[SnakeGameConstant.GRID_COLUMN_NUMBER][SnakeGameConstant.GRID_ROW_NUMBER];// 在一个20*30的界面中,设置每个方块的flag
private Color color[][] = new Color[SnakeGameConstant.GRID_COLUMN_NUMBER][SnakeGameConstant.GRID_ROW_NUMBER];// 在一个20*30的界面中,设置每个方块的颜色
public TimerAction timerA
private SnakeGameF
private GameState gameState = GameState.INITIALIZE;
//private GameOverType gameOverType = GameOverType.TOUCH_EDGE;
private boolean needToGenerateFood =
public SnakeGamePanel(SnakeGameFrame frame) {
for (int i = SnakeGameConstant.LEFT; i &= SnakeGameConstant.RIGHT; i++) {
for (int j = SnakeGameConstant.UP; j &= SnakeGameConstant.DOWN; j++) {
flag[i][j] = 0;
addKeyListener(new KeyHandler());
setFocusable(true);
timerAction = new TimerAction();
timer = new Timer(1000, timerAction);
score = 0;
this.frame =
grid = new Grid();
private void init() {
initSnake();
initFood();
private void initSnake() {
snake = new Snake();
List&Grid& list = new LinkedList&Grid&();
list.add(new Grid(4, 1, SnakeGameConstant.SNAKE_BODY_COLOR));
list.add(0, new Grid(5, 1, SnakeGameConstant.SNAKE_HEADER_COLOR));
snake.setList(list);
private void initFood() {
food = new Grid();
needToGenerateFood =
this.generateFoodByRandom();
public void setGameState(GameState state) {
gameState =
private void judgeGameOver() {
if (isSnakeHeadTouchEdge() || isSnakeHeadTouchBody()) {
gameState = GameState.OVER;
int result = JOptionPane.showConfirmDialog(frame,
SnakeGameConstant.GAME_OVER, SnakeGameConstant.SNAKE_GAME,
JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.YES_OPTION) {
for (int i = SnakeGameConstant.LEFT; i &= SnakeGameConstant.RIGHT; i++) {
for (int j = SnakeGameConstant.UP; j &= SnakeGameConstant.DOWN; j++) {
flag[i][j] = 0;
gameState = GameState.RUN;
score = 0;
timer.start();
System.exit(0);
public void drawGameFrame(Graphics2D g2) {
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)
g2.draw(new Rectangle2D.Double(SnakeGameConstant.SNAKE_GAME_PANEL_LEFT,
SnakeGameConstant.SNAKE_GAME_PANEL_TOP,
SnakeGameConstant.SNAKE_GAME_PANEL_RIGHT,
SnakeGameConstant.SNAKEGAME_PANEL_BOTTOM));
if (gameState.isInitializedState()) {
drawScore(g);
private void draw(Graphics2D g2) {
drawSnake(g2);
drawFood(g2);
for (int i = SnakeGameConstant.LEFT; i &= SnakeGameConstant.RIGHT; i++) {
for (int j = SnakeGameConstant.UP; j &= SnakeGameConstant.DOWN; j++) {
if (flag[i][j] == 1) {
grid.setX(i);
grid.setY(j);
grid.setColor(color[i][j]);
grid.draw(g2);
private void drawScore(Graphics g) {
g.drawString("Score: " + score,
SnakeGameConstant.SNAKE_GAME_PANEL_RIGHT + 20, 200);
private void drawSnake(Graphics2D g2) {
snake.draw(g2);
private void drawFood(Graphics2D g2) {
food.draw(g2);
private class KeyHandler implements KeyListener {
public void keyPressed(KeyEvent event) {
if (!gameState.isRunState()) {
int keyCode = event.getKeyCode();
switch (keyCode) {
case KeyEvent.VK_LEFT:
snake.changeDirection(Direction.LEFT);
case KeyEvent.VK_RIGHT:
snake.changeDirection(Direction.RIGHT);
case KeyEvent.VK_UP:
snake.changeDirection(Direction.UP);
case KeyEvent.VK_DOWN:
snake.changeDirection(Direction.DOWN);
repaint();
public void keyReleased(KeyEvent event) {
public void keyTyped(KeyEvent event) {
private class TimerAction implements ActionListener, Serializable {
private static final long serialVersionUID = 207272L;
public void actionPerformed(ActionEvent e) {
if (!gameState.isRunState()) {
generateFoodByRandom();
snake.move();
eatFood();
judgeGameOver();
repaint();
private boolean isFoodAvailable(int x, int y) {
for (Grid grid : snake.getList()) {
if (x == grid.getX() && y == grid.getY()) {
private void generateFoodByRandom() {
if (needToGenerateFood) {
Random r = new Random();
int randomX = r.nextInt(SnakeGameConstant.GRID_COLUMN_NUMBER);
int randomY = r.nextInt(SnakeGameConstant.GRID_ROW_NUMBER);
if (isFoodAvailable(randomX, randomX)) {
food = new Grid(randomX, randomY, SnakeGameConstant.FOOD_COLOR);
needToGenerateFood =
generateFoodByRandom();
private boolean isSnakeHeadTouchEdge() {
Grid head = this.snake.getList().get(0);
if ((head.getX() &= SnakeGameConstant.GRID_COLUMN_NUMBER)
|| (head.getX() & 0)) {
//this.gameOverType = GameOverType.TOUCH_EDGE;
if ((head.getY() &= SnakeGameConstant.GRID_ROW_NUMBER)
|| (head.getY() & 0)) {
//this.gameOverType = GameOverType.TOUCH_EDGE;
private boolean isSnakeHeadTouchBody() {
Grid head = this.snake.getList().get(0);
int length = snake.getList().size();
for (int i = 1; i & i++) {
if (head.getX() == snake.getList().get(i).getX()
&& head.getY() == snake.getList().get(i).getY()) {
//this.gameOverType = GameOverType.TOUCH_BODY;
private boolean isFoodTouched() {
Grid head = snake.getList().get(0);
return head.getX() == food.getX() && head.getY() == food.getY();
private void eatFood() {
if (isFoodTouched()) {
Grid tail = snake.getList().get(snake.getList().size() - 1);
snake.getList().add(tail);
this.needToGenerateFood =
this.score += 10;
* @return the timer
public Timer getTimer() {
* @param timer
the timer to set
public void setTimer(Timer timer) {
this.timer =
完整的代码,请参考附件MySnakeGame.7z,有需要的朋友可以下载。
后续的博文将添加如下功能:
(二)添加随机障碍物。
(三)添加游戏进度的存储和读取
(四)完成游戏排行榜
... ...
下载次数: 44
MouseLearnJava
浏览: 172702 次
来自: 杭州
我运行了这个例子,怎么结果是这样的:2号车泊车6号车泊车5号车 ...
nanjiwubing123 写道参考你的用法,用如下方式实现 ...
SurnameDictionary文章我没看完,现在懂了
SurnameDictionary.populateCorre ...
参考你的用法,用如下方式实现。
public c ...2010年5月 Java大版内专家分月排行榜第一2010年2月 Java大版内专家分月排行榜第一2010年1月 Java大版内专家分月排行榜第一2010年1月 Oracle大版内专家分月排行榜第一2009年12月 Java大版内专家分月排行榜第一2009年12月 Oracle大版内专家分月排行榜第一
2010年2月 Oracle大版内专家分月排行榜第三
2010年5月 Java大版内专家分月排行榜第一2010年2月 Java大版内专家分月排行榜第一2010年1月 Java大版内专家分月排行榜第一2010年1月 Oracle大版内专家分月排行榜第一2009年12月 Java大版内专家分月排行榜第一2009年12月 Oracle大版内专家分月排行榜第一
2010年2月 Oracle大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。&>&&>&&>&&>&JAVA编写的一个贪吃蛇游戏
JAVA编写的一个贪吃蛇游戏
上传大小:12KB
这是一个有JAVA编写的贪吃蛇游戏,已经打包成功,点击可以运行,并且包括源文件
综合评分:4.7(3位用户评分)
所需积分:3
下载次数:20
审核通过送C币
创建者:id_rin
创建者:qq_
创建者:qq_
课程推荐相关知识库
上传者其他资源上传者专辑
开发技术热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
JAVA编写的一个贪吃蛇游戏
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:一、函数程序结构图;二、题目分析;通过分析该程序基本需要以下几个类:Text(Ma;件反应、游戏分数的记录、暂停、重新开始、更改蛇蛇;本程序运用Java语言知识,用面向对象的思维设计;三、结果分析;运行程序出现游戏界面,蛇(Snake)头自动向前;1、每吃一个加5分2、默认撞墙不死3、默认速度3;6、默认30分提升一个速度档次;7、默认每个速度都走完后更换地
一、函数程序结构图
二、题目分析
通过分析该程序基本需要以下几个类:Text(Main方法)、Snake(蛇)、Food(食物)、Yard(窗口)、Map(地图)、Node(节点)、PaintThread(线程)、Dir(方向)、KeyMonitor(键盘监听)。主要实现蛇运动的基本操作和一些事
件反应、游戏分数的记录、暂停、重新开始、更改蛇蛇颜色,蛇的移动速度,地图、死亡模式的改变等功能。
本程序运用Java语言知识,用面向对象的思维设计“贪吃蛇”游戏。
三、结果分析
运行程序出现游戏界面,蛇(Snake)头自动向前移动,用键盘的上(Up)下(Down)左(Left)右(Right)键控制蛇头的移动方向。游戏窗体中在随机位置出现紫色的食物(Food)。
1、每吃一个加5分 2、默认撞墙不死 3、默认速度3 4、默认地图1 5、默认普通蛇身
6、默认30分提升一个速度档次
7、默认每个速度都走完后更换地图并且速度恢复默认,积分归零
1、按F1重新开始 2、按空格键暂停/继续
3、按1/2/3/4/5数字键设置蛇的移动速度(逐渐变快) 4、按F2更换地图(3种) 5、按F3普通蛇/彩蛇的切换
6、按F4更换游戏模式(蛇撞到最外围为死亡还是从另一端返回)
该程序初步完成了“贪吃蛇”的游戏雏形,但是缺乏完善。比如:界面效果十分粗糙、屏幕闪烁、缺少声音等。但是,我们通过编写贪吃蛇,能更好的运用面向对象的思维方式了,并学到了许多有用的经验。
四、 附录(程序清单)
1、Snake.java
import java.awt.C import java.awt.G
import java.awt.event.KeyE
public class Snake {
Node head =
Node tail =
int size = 0; Y
Node n = new Node(1, 2, Dir.D); public Snake(Yard y) {
for(int i=0;i&3;i++)
this.Headadd(); }
public void Tailadd() {
Node node =
switch (tail.dir) {
node = new Node(tail.m+1, tail.n, tail.dir);
node = new Node(tail.m, tail.n+1, tail.dir);
node = new Node(tail.m-1, tail.n, tail.dir);
node = new Node(tail.m, tail.n+1, tail.dir);
tail.next =
node.pre =
size ++; }
public void Deltail() {
if (size == 0)
tail = tail.
tail.next = }
public void Headadd() {
Node node =
switch (head.dir) {
node = new Node(head.m - 1, head.n, head.dir);
node = new Node(head.m, head.n - 1, head.dir);
node = new Node(head.m + 1, head.n, head.dir);
node = new Node(head.m, head.n + 1, head.dir);
node.next =
head.pre =
public void draw(Graphics g) {
if (size &= 0)
for (Node n = n != n = n.next) {
if(head==n){
g.setColor(Color.BLUE);
if(n.dir==Dir.L||n.dir==Dir.R)
g.fillOval(n.m*Yard.B_WIDTH, n.n*Yard.B_WIDTH, Yard.B_WIDTH, Yard.B_WIDTH-3);
g.fillOval(n.m*Yard.B_WIDTH, n.n*Yard.B_WIDTH, Yard.B_WIDTH-3, Yard.B_WIDTH);
n.draw(g);
public void Deadif() {
switch(Yard.STYLE){
if (head.m & 0 || head.n & 30/Yard.B_WIDTH || head.m &= (Yard.WIDTH / Yard.B_WIDTH)
|| head.n &= (Yard.HEIGHT / Yard.B_WIDTH)) {
int cols = Yard.WIDTH / Yard.B_WIDTH;
int rows = Yard.HEIGHT / Yard.B_WIDTH;
if(head.m & 0) head.m =
else if (head.m &= cols) head.m = 0;
else if (head.n & 30/Yard.B_WIDTH) head.n =
else if (head.n &= rows) head.n = 30/Yard.B_WIDTH; }
for (Node p = head. p != p = p.next) {
if (head.m == p.m && head.n == p.n) {
switch (Yard.MAP) { case 1://地图1 case 2://地图2
for (int j = 10; j & Yard.WIDTH/Yard.B_WIDTH-10; j ++)
if(head.m==j&&head.n==10)
for (int j = 10; j & Yard.WIDTH/Yard.B_WIDTH-10; j ++)
if(head.m==j&&head.n==20)
} case 3://地图3
for (int j = 10; j & Yard.WIDTH/Yard.B_WIDTH-10; j ++)
if(head.m==j&&head.n==10)
for (int j = 10; j & Yard.WIDTH/Yard.B_WIDTH-10; j ++)
if(head.m==j&&head.n==20)
三亿文库包含各类专业文献、文学作品欣赏、高等教育、幼儿教育、小学教育、生活休闲娱乐、中学教育、java编写的贪吃蛇游戏源码91等内容。 
 贪吃蛇 Java 源代码 隐藏&& package mvcT //July、06.11(完成测试) 。 //根据以下代码,编译,游戏运行界面如下: public class GreedSnake { public static...  Java贪吃蛇游戏毕业论文完整(介绍里附带源码地址)_计算机软件及应用_IT/计算机_专业...17 IV 仰恩大学毕业设计(论文) 引 言 本文档为“编程实习――贪吃蛇游戏”的...  java利用集合实现贪吃蛇游戏_计算机软件及应用_IT/计算机_专业资料。java利用 集合 实现 贪吃蛇 游戏 Node: public class Node {...  用Java编写的贪吃蛇游戏_计算机软件及应用_IT/计算机_专业资料。贪吃蛇游戏的制作...贪吃蛇游戏的制作里面还有一些代码还没有完善, 比如说: 没有开始的控制, 当...  Java版贪吃蛇毕业论文完整版(附带源码地址)_理学_高等教育_教育专区。Java版...17 IV 仰恩大学毕业设计(论文) 引 言 本文档为“编程实习――贪吃蛇游戏”的...  JAVA贪吃蛇游戏代码_计算机软件及应用_IT/计算机_专业资料。package com.duchun.anjoyo...也用C写过这个程序,现在看到 BigF用Java写的这个,发现虽然作者自称是Java的...  本设计所开发的是基于 Java 的一个贪吃蛇游戏软件,主要实现游戏的速度控制、游戏...不断阅读修 改代码使程序达到预期所要实现的目标,完成课程设计后,可以感觉到...  用java实现简单贪食蛇游戏_工学_高等教育_教育专区。java,有普通模式和挑战的...二、运行结果截图 二、 代码 1、地图 importjava.io....  贪吃蛇java代码_计算机软件及应用_IT/计算机_专业资料。 import java...[20,15] //默认的运行方向向上,所以游戏一开始 nodeArray 就 变为: // [...

我要回帖

更多关于 用c语言编写贪吃蛇 的文章

 

随机推荐