java贪吃蛇源码(贪吃蛇游戏的源代码)

本文目录
贪吃蛇游戏的源代码
?
贪吃蛇源码:
《!doctype html》
《html》
《body style=’overflow:hidden’》
《canvas id="can" width="400" height="400" style="background:Black;display: block;margin:20px auto;"》《/canvas》
《script》
var sn = , dz = 43, fx = 1, n, ctx = document.getElementById("can").getContext("2d");
function draw(t, c) {
ctx.fillStyle = c;
ctx.fillRect(t % 20 * 20 + 1, ~~(t / 20) * 20 + 1, 18, 18);
}
document.onkeydown = function(e) {
fx = sn || fx) ? fx : n
};
!function() {
sn.unshift(n = sn + fx);
if (sn.indexOf(n, 1) 》 0 || n《0||n》399 || fx == 1 && n % 20 == 0 || fx == -1 && n % 20 == 19)
return alert("GAME OVER");
draw(n, "Lime");
if (n == dz) {
while (sn.indexOf(dz = ~~(Math.random() * 400)) 》= 0);
draw(dz, "Yellow");
} else
draw(sn.pop(), "Black");
setTimeout(arguments.callee, 130);
}();
《/script》
《/body》
《/html》
谁帮我补充完这道没完成的JAVA贪吃蛇代码,我参考一下具体在一楼
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;
class POS
{
int x, y;
void Set(int X, int Y)
{
x = X;
y = Y;
}
}
class Snake extends GameCanvas implements Runnable
{
//绘图对象
Graphics m_Graphics;
//随机数
Random m_Random;
//游戏循环标志
boolean m_Continue;
//游戏宽、高
final int m_W, m_H;
//游戏块宽、高
final int m_KW, m_KH;
//蛇最大长度
final int m_SnakeMaxLen;
//蛇
POS m_Snake;
//蛇当前长度
int m_SnakeLen;
//蛇头方向,0、1、2、3代表上下左右
int m_SnakeDir;
//果子
POS m_Apple;
Snake()
{
super(false);
//得到绘图对象
m_Graphics = getGraphics();
//得到随机数对象
m_Random = new Random();
//初始化游戏循环标志
m_Continue = true;
//初始化游戏宽高
m_W = m_H = 20;
//初始化游戏块宽高
m_KW = m_KH = 8;
//初始化蛇最大长度
m_SnakeMaxLen = m_W * m_H;
//初始化蛇
m_Snake = new POS;
for (int i = 0; i 《 m_SnakeMaxLen; ++i)
m_Snake = new POS();
//初始化蛇长度
m_SnakeLen = 1;
//初始化蛇头位置
m_Snake.Set(10, 10);
//初始化蛇头方向
m_SnakeDir = 0;
//初始化果子
m_Apple = new POS();
m_Apple.Set(m_Random.nextInt(m_W), m_Random.nextInt(m_H));
}
public void run()
{
try
{
while (m_Continue)
{
//得到输入
int iInput = getKeyStates();
//上
if ((iInput & GameCanvas.UP_PRESSED) != 0)
{
m_SnakeDir = 0;
}
//下
if ((iInput & GameCanvas.DOWN_PRESSED) != 0)
{
m_SnakeDir = 1;
}
//左
if ((iInput & GameCanvas.LEFT_PRESSED) != 0)
{
m_SnakeDir = 2;
}
//右
if ((iInput & GameCanvas.RIGHT_PRESSED) != 0)
{
m_SnakeDir = 3;
}
//蛇运动
switch (m_SnakeDir)
{
case 0: m_Snake.y--;break;
case 1: m_Snake.y++;break;
case 2: m_Snake.x--;break;
case 3: m_Snake.x++;break;
}
//与果子的碰撞检测
if (m_Snake.y == m_Apple.y)
{
m_Apple.Set(m_Random.nextInt(m_W), m_Random.nextInt(m_H));
System.out.println("吃了1个果子");
}
//绘制
m_Graphics.setColor(0xffff00);
m_Graphics.fillRect(0, 0, m_KW * m_W, m_KH * m_H);
m_Graphics.setColor(0x000000);
for (int i = 0; i 《 m_SnakeLen; ++i)
m_Graphics.drawRect(m_Snake.y * m_KH, m_KW, m_KH);
m_Graphics.setColor(0xff0000);
m_Graphics.drawRect(m_Apple.x * m_KW, m_Apple.y * m_KH, m_KW, m_KH);
flushGraphics();
Thread.sleep(120);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public class Test extends MIDlet
{
Snake m_Snake;
Display m_Display;
Thread m_Thread;
public Test()
{}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException
{}
protected void pauseApp()
{}
protected void startApp() throws MIDletStateChangeException
{
//创建游戏对象
m_Snake = new Snake();
//得到本程序的界面管理器
m_Display = Display.getDisplay(this);
//创建游戏运行线程
m_Thread = new Thread(m_Snake);
//开启游戏运行线程
m_Thread.start();
//设置游戏画面为当前界面
m_Display.setCurrent(m_Snake);
}
}

更多文章:
cadence adc仿真(Cadence教程3——与非电路原理图仿真以及版图绘制)
2025年12月27日 10:15
电脑中recent是什么(请问我的电脑里C盘上recent里有很多快捷方式图标,它们有什么用,能删除吗)
2026年4月12日 09:15
安卓permission denied(adb 遇到 Permission denied)
2025年12月28日 14:30
excel函数公式大全讲解乘法(excel乘法公式,财务人士必看)
2025年6月28日 18:45
java开发工具包怎么查看(java.util.* 这一类的包在哪里能查看其内容和作用)
2026年3月19日 05:00
简易php聊天室(用php做的聊天室CPU占用很高怎么解决)
2025年11月20日 08:45
delphi源码特殊标记(在delphi里怎么快速将一段代码加成注释)
2026年8月27日 21:45
西门子plc编程软件是什么(西门子PLC编程软件是西门子通用软件吗)
2025年6月5日 19:00















