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
相关文档:
(一)程序开发,存在很多问题:首先,每一次Web请求都要建立一次数据库连接。建立连接是一个费时的活动,每次都得花费0.05s~1s的时间,而且系统还要分配内存资源。这个时间对于一次或几次数据库操作,或许感觉不出系统有多大的开销。可是对于现在的Web应用,尤其是大型电子商务网站,同时有几 ......
到Sun网站下载自解压安装包jdk-xxxx.bin
安装:
[root@RHEL4 JDK-1.5.0.06]# chmod +x jdk-xxxx.bin
[root@RHEL4 JDK-1.5.0.06]# ./jdk-xxxx.bin
选择安装位置,
J2SDK安装目录: /usr/local/jdk
配置Java环境变量:
在 ~/.bash_profile 里加入下列几行环境变量即可:
export JAVA_HOME=/usr/local/jdk
export PAT ......
关于java的集合类,以及HashMap中Set的用法!
2005-10-22 14:47:43 Sat | 阅读(547)次
package com.tiantian;
import java.util.*;
public class JAVAContainer {
public static void main(String[] args) throws Exception {
//&nbs ......
File f=new File("DerectoryName");
String []results=f.list();
import java.io.*;
public class listFile
{ &nb ......