⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snake.java

📁 doja平台下的贪吃蛇游戏
💻 JAVA
字号:
package greedSnake;

import java.util.Random;
import java.util.Vector;
import java.util.Enumeration;
import com.nttdocomo.ui.Graphics;

public class Snake {
	public final static int UP = 1;

	public final static int DOWN = 3;

	public final static int LEFT = 2;

	public final static int RIGHT = 4;

	private int direction;

	// private Grid grid;
	private Node node;

	private Vector snakeData = null;

	private static Random rnd = new Random();

	/** Private internal constructor. */
	public Snake() {
		snakeData = new Vector();
		Node node = new Node(4, 0);
		snakeData.addElement(node);
		node = new Node(3, 0);
		snakeData.addElement(node);
		node = new Node(2, 0);
		snakeData.addElement(node);
		node = new Node(1, 0);
		snakeData.addElement(node);
		node = new Node(0, 0);
		snakeData.addElement(node);
		setDirection(Snake.DOWN);
	}

	public int getDirection() {
		return direction;
	}

	public void setDirection(int dir) {
		if (direction % 2 != dir % 2) {
			direction = dir;
		}
	}

	public Node getHead() {
		return (Node) snakeData.elementAt(0);
	}

	public Node getNextHead() {
		Node node = (Node) snakeData.elementAt(0);
		node = new Node(node.x, node.y);
		switch (this.direction) {
		case Snake.UP:
			node.y--;
			break;
		case Snake.DOWN:
			node.y++;
			break;
		case Snake.LEFT:
			node.x--;
			break;
		case Snake.RIGHT:
			node.x++;
			break;
		}
		return node;
	}

	public void move() {
		Node node = (Node) snakeData.elementAt(0);
		Node newNode = this.getNextHead();
		for (int i = snakeData.size() - 1; i > 0; i--) {
			Node node1 = (Node) snakeData.elementAt(i);
			Node node2 = (Node) snakeData.elementAt(i - 1);
			node1.x = node2.x;
			node1.y = node2.y;
		}
		node.x = newNode.x;
		node.y = newNode.y;

	}

	public void addNode() {
		Node node = (Node) snakeData.lastElement();
		Node newNode = new Node(node.x, node.y);
		snakeData.addElement(newNode);
	}

	public void paint(Graphics g) {
		int SnakeColor = 0xff0000;
		int gn = GreedSnake.NODE_SIZE;
		Enumeration e = snakeData.elements();
		while (e.hasMoreElements()) {
			Node node = (Node) e.nextElement();
			g.setColor(SnakeColor);
			g.fillRect(node.x * gn, node.y * gn, gn, gn);
		}
	}

	public void eatFood(Food food) {

		this.addNode();

	}

	public boolean ptInSnake(Node node) {
		for (int i = 1; i < snakeData.size(); i++) {
			Node nodeInSnake = (Node) snakeData.elementAt(i);
			if ((nodeInSnake.x == node.x) && (nodeInSnake.y == node.y)) {
				return true;
			}
		}
		return false;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -