Ô´´úÂë--ÓÃJavaд"ÍÌʳÉß"

ʱ¼ä:2008-06-27 22:27:06  À´Ô´:  ×÷Õß:

¡¡¡¡///////////////////////////////////////////////////
¡¡¡¡
¡¡¡¡import java.util.*;
¡¡¡¡import javax.swing.*;
¡¡¡¡
¡¡¡¡class SnakeModel implements Runnable{
¡¡¡¡GreedSnake gs;
¡¡¡¡boolean[][] matrix;
¡¡¡¡LinkedList nodeArray = new LinkedList();
¡¡¡¡Node food;
¡¡¡¡int maxX;
¡¡¡¡int maxY;
¡¡¡¡int direction = 2;
¡¡¡¡boolean running = false;
¡¡¡¡
¡¡¡¡int timeInterval = 200;
¡¡¡¡double speedChangeRate = 0.75;
¡¡¡¡boolean paused = false;
¡¡¡¡
¡¡¡¡int score = 0;
¡¡¡¡int countMove = 0;
¡¡¡¡
¡¡¡¡// UP and DOWN should be even
¡¡¡¡// RIGHT and LEFT should be odd
¡¡¡¡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(GreedSnake gs, int maxX, int maxY){
¡¡¡¡this.gs = gs;
¡¡¡¡this.maxX = maxX;
¡¡¡¡this.maxY = maxY;
¡¡¡¡
¡¡¡¡// initial matirx
¡¡¡¡matrix = new boolean[maxX][];
¡¡¡¡for(int i=0; i<maxX; ++i){
¡¡¡¡matrix[i] = new boolean[maxY];
¡¡¡¡Arrays.fill(matrix[i],false);
¡¡¡¡}
¡¡¡¡
¡¡¡¡// initial the snake
¡¡¡¡int initArrayLength = maxX > 20 ? 10 : maxX/2;
¡¡¡¡for(int i = 0; i < initArrayLength; ++i){
¡¡¡¡int x = maxX/2+i;
¡¡¡¡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 % 2 != newDirection % 2){
¡¡¡¡direction = newDirection;
¡¡¡¡}
¡¡¡¡}
Tags£º


ÉÏһƪ£ºÃ»ÓÐÁË   ÏÂһƪ£ºÃ»ÓÐÁË

ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0ÈË·¢±íÁËÆÀÂÛ ²é¿´ÍêÕûÄÚÈÝ

ÍÆ¼ö½Ì³Ì

×îн̳Ì