易截截图软件、单文件、免安装、纯绿色、仅160KB

java中的贪食蛇例程

最近要重新学习Java,找个例子来实践,在网上找了很多例程来看,自己重新编写了一个贪食蛇的例子,记在这里。
1.SnakeModel.java
import java.util.Observable;
import java.util.LinkedList;
import java.util.Arrays;
import java.util.Random;
import javax.swing.*;
//Observable类一般代表数据,实现接口Runnable表明创建一个进程
public class SnakeModel extends Observable implements Runnable {

boolean[][] matrix; //指示位置上是否有蛇体或食物;
LinkedList nodeArray = new LinkedList(); //蛇体

Node food;
int maxX; //X轴边线,即为画布中X轴个数
int maxY; //y轴边线,即为画布中Y轴个数
int direction = UP; //蛇运行的方向,初始为向上(UP)
boolean isRunning = false; //运行状态

int timeInterval = 200; //时间间隔,毫秒级
double speedChangeRate = 0.75; //每次的速度变化率
boolean isPaused = false ;//暂停标志

int score = 0; //得分
int countMove = 0; //吃到食物前移动的次数

public static final int UP = 2;
public static final int DOWN =4;
public static final int LEFT= 1;
public static final int RIGHT =3;

public SnakeModel(int maxX, int maxY){

this.maxX = maxX;
this.maxY = maxY;
reset();
}

public void reset(){

direction = SnakeModel.UP;
timeInterval = 200;
isPaused = false;
score = 0;
countMove = 0;

//初始化矩阵
matrix = new boolean[maxX][];
for(int i = 0; i < maxX; ++i){
//关于数组的新建
matrix[i] = new boolean[maxY];
Arrays.fill(matrix[i],false);
}

//初始化蛇体
//初始蛇体长度按照横轴的长度,若横轴>20,则蛇体长度为10,否则为横轴一半
int initArrayLength = maxX > 20 ? 10 : maxX / 2;
nodeArray.clear();
for(int i = 0; i < initArrayLength; ++i){
int x = maxX / 2;
int y = maxY / 2;
nodeArray.addLast(new Node(x, y));
matrix[x][y] = true;
}

//创建食物
food = createFood();
matrix[food.x][food.y] = true;
}

public void changeDirection(int newDirection){
//改变方向不能与原方向同向或反向
if((direction & 1


相关文档:

Tomcat java 定时任务

两个tomcat Java定时任务的例子
例一:
本例依据Java自身提供的接口实现,通过监听器(Listener)和定时器(Timer)定时执行某个任务(Task)。
专业的开源工具可参考Quartz:http://www.opensymphony.com/quartz/
MyListener:
import
 java.util.Timer;
import
 javax.servlet.ServletContextEvent;
i ......

致Java新手的一封信(bx软件小组版)

下面这篇文章是台湾著名Java论坛“Javaworld”的一个资深版主写的一封对Java新手的信,希望小组成员仔细看下 你会学到很多的、、、、
 親愛的 java 新手們 :
很高興你們願意來這裡共同學習,
Java 這個語言, 已&# ......

java程序实现线程连接池功能

 import   java.util.LinkedList;  
   
  public   abstract   class   Manager   {  
   
          private   String   mThreadPoolName   =   null;  
   
    ......

我和Java的一些往事

     大家知道,在1991年,几乎与Linux同时,SUN发布了Java编程语言。不久,我的大学同学(比我低两年)王克宏教授(清华博士导师)与SUN合作成立了中国最早的“Java研究中心”,并且担任该中心主任。从此,我开始注意Java技术的发展动态。我家中的存书,以Java书籍最多(当然,除了数学书籍 ......

java jdbc 连接Oracle9i

     自己在做这个程序的时候看过很多的资料,上网也查了不少的资料,可是多半说的是出神入化,云里雾里...不光看了不明白,而且是有明白一点的人,看了也变的有些模糊了。
     这里我掩饰一套完整的java jdbc 连接Oracle9i的范例。
package com.lxh.dbcon;//打包
import ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号