贪吃蛇Java程序代码.docVIP

  • 18
  • 0
  • 约8.07千字
  • 约 10页
  • 2016-12-14 发布于浙江
  • 举报
//文件一 package greedysnake_cx; public class Node { int x=0; int y=0; int nodewidth; int nodeheight; Node(int x,int y){ this.x=x; this.y=y; } } //文件二 package greedysnake_cx; /** * 实现一个greedysnake的模型,具有功能: * 1)移动,moveOn()----从director参数中获取方向信息,如果方向定义的下一个点的逻辑值是true,检查是不是food,是则将food添加到 * 列表的头部,snake继续移动,不是则停止移动(撞到蛇尾巴了) * 2)加速,speedUp()----将现成的停滞时间间隔interval按照一定的比率 speedRate进行扩大 * 3)减速,speedDown()---- * * 该类实现Runnable接口, * */ //定义snake的模型 import java.util.*; import javax.swing.*; public class SnakeModel implements Runnable { private GreedSnake gs; //给每一个矩阵点确立一个boolean值 boolean[][] matrix; private int maxX; private int maxY; //设置一个节点的列表; LinkedList nodeArray = new LinkedList(); Node food=null; int direction=UP; int score=0; //定义方向 public final static int LEFT=1; public final static int UP=2; public final static int RIGHT=3; public final static int DOWN=4; private int interval=200; //停顿时间的间隔 boolean pause=false; //定义暂停 private double speedRate=0.5; //定义速度的变更幅度 //constructor public SnakeModel(GreedSnake gs,int maxx,int maxy){ this.gs=gs; this.maxX=maxx; this.maxY=maxy; //this.matrix=null; //////////////////////////////////////////////////////////////////// //init matrix[][]; matrix=new boolean[maxX][]; //***********************不初始化是不行滴 for(int i=0;imaxX;i++){ matrix[i]=new boolean[maxY];//将矩阵的每一行定义成列的集合 Arrays.fill(matrix[i], false);///使用java.util.Arrays的static方法fill,将matrix[]数组里面的元素全部定义成false //至此,矩阵里面所有的点的boolean值都是flase //for(int j=0;jmaxY;j++){ //matrix[i][j]=false; //} } //////////////////////////////////////////////////////////////////// //init nodeArray int initlength=10; for(int i=0;iinitlength;i++){ //确保snake出现在屏幕的中央 assure that the greedy snake appears in the center of the model //snake的长度由maxX来确定 int x=maxX/2+i; int y=maxY/2; nodeArray.addFirst(new Node(x,y)); matrix[x][y]=true; } /////////////////////////////

文档评论(0)

1亿VIP精品文档

相关文档