当前位置:首页 > 贪吃蛇JAVA源代码完整版
本文已或作者授权,转载请注明出处
游戏贪吃蛇的JAVA源代码
一.文档说明
a) 本代码主要功能为实现贪吃蛇游戏,GUI界面做到尽量简洁和原游戏相仿。目前版
本包含计分,统计最高分,长度自动缩短计时功能。
b) 本代码受计算机系大神指点,经许可后发布如下,向Java_online网致敬 c) 运行时请把.java文件放入default package 即可运行。 二.运行截图
a) 文件位置
b) 进入游戏
ALL RIGHTS RESERVED 1
本文已或作者授权,转载请注明出处
c) 游戏进行中
三.JAVA代码
ALL RIGHTS RESERVED
2
本文已或作者授权,转载请注明出处
import java.awt.*;
import java.awt.event.*;
importstatic java.lang.String.format; import java.util.*; import java.util.List; import javax.swing.*;
publicclassSnakeextends JPanel implements Runnable { enum Dir {
up(0, -1), right(1, 0), down(0, 1), left(-1, 0);
Dir(intx, inty) { this.x = x; this.y = y; }
finalintx, y; }
staticfinal Random rand = new Random(); staticfinalintWALL = -1;
staticfinalintMAX_ENERGY = 1500;
volatilebooleangameOver = true;
Thread gameThread; intscore, hiScore; intnRows = 44; intnCols = 64; Dir dir; intenergy;
int[][] grid;
List
public Snake() {
setPreferredSize(new Dimension(640, 440)); setBackground(Color.white);
setFont(new Font(\, Font.BOLD, 48)); setFocusable(true);
smallFont = getFont().deriveFont(Font.BOLD, 18); initGrid();
ALL RIGHTS RESERVED
3
本文已或作者授权,转载请注明出处
addMouseListener(new MouseAdapter() { @Override
publicvoid mousePressed(MouseEvent e) { if (gameOver) {
startNewGame(); repaint(); } } });
addKeyListener(new KeyAdapter() {
@Override
publicvoid keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_UP: if (dir != Dir.down) dir = Dir.up; break;
case KeyEvent.VK_LEFT: if (dir != Dir.right) dir = Dir.left; break;
case KeyEvent.VK_RIGHT: if (dir != Dir.left) dir = Dir.right; break;
case KeyEvent.VK_DOWN: if (dir != Dir.up) dir = Dir.down; break;
}
repaint(); } }); }
void startNewGame() { gameOver = false;
ALL RIGHTS RESERVED
4
共分享92篇相关文档