亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ground.java

?? 貪吃蛇JAVA源碼 以及相關的操作說明 希望大家能支持!
?? JAVA
字號:
package cn.itcast.snake.entities;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.util.Random;

import cn.itcast.snake.util.Global;

/**
 * 可以叫做地形, 或地面<BR>
 * <BR>
 * 可以通過setRockColor(), setGriddingColor()方法更改石頭或網格的顏色<BR>
 * 通過setDrawGridding() 方法設置是否畫網格<BR>
 * <BR>
 * 可以覆蓋 drawRock(Graphics, int, int, int, int) 方法以改變石頭的顯示方式<BR>
 * <BR>
 * 可以通過覆蓋genernateRocks() 方法改變石頭產生的布局<BR>
 * 覆蓋此方法時, 請使用addRock(int,int) 方法在指定的坐標添加石頭<BR>
 * <BR>
 * 這個類提供了兩種石頭的布局<BR>
 * 默認是使用第一種, 即一圈石頭<BR>
 * 如果想使用第二種, 則應該使用如下代碼:<BR>
 * <code><BR>
 Ground ground = new Ground();<BR>
 // 清空石頭<BR>
 ground.init();<BR>
 // 使用提供的第二種石頭的布局 <BR>
 ground.generateRocks2();<BR>
 </code> <BR>
 * 
 * @version 1.0, 01/01/08
 * 
 * @author 湯陽光
 * 
 */
public class Ground {

	/* 存放石頭的二維數組 */
	private boolean rocks[][] = new boolean[Global.WIDTH][Global.HEIGHT];

	/* 存放getFreePoint()方法生成的不是石頭的隨機的坐標 */
	private Point freePoint = new Point();

	public static final Color DEFAULT_ROCK_COLOR = new Color(0x666666);
	/* 石頭的顏色 */
	private Color rockColor = DEFAULT_ROCK_COLOR;

	public static final Color DEFAULT_GRIDDING_COLOR = Color.LIGHT_GRAY;

	/* 網格的顏色 */
	private Color griddingColor = DEFAULT_GRIDDING_COLOR;

	private Random random = new Random();

	/* 是否畫網格的開關 */
	private boolean drawGridding = false;

	/**
	 * 默認的構造器, 將調用 init()方法和 generateRocks() 方法
	 */
	public Ground() {
		init();
	}

	/**
	 * 初始化地面(清空石頭)
	 */
	public void clear() {
		for (int x = 0; x < Global.WIDTH; x++)
			for (int y = 0; y < Global.HEIGHT; y++)
				rocks[x][y] = false;
	}

	public void init() {
		clear();
		generateRocks();
	}

	/**
	 * 產生石頭, 可以覆蓋這個方法改變石頭在地面上的布局
	 */
	public void generateRocks() {
		for (int x = 0; x < Global.WIDTH; x++)
			rocks[x][0] = rocks[x][Global.HEIGHT - 1] = true;
		for (int y = 0; y < Global.HEIGHT; y++)
			rocks[0][y] = rocks[Global.WIDTH - 1][y] = true;
	}

	/**
	 * 提供的第二種默認的石頭布局<BR>
	 * 用這個可以測試蛇從另一邊出現<BR>
	 * 使用時先調用init()方法清空石頭, 再調用這個方法產生石頭布局<BR>
	 * 詳細使用請參見類介紹
	 */
	public void generateRocks2() {

		for (int y = 0; y < 6; y++) {
			rocks[0][y] = true;
			rocks[Global.WIDTH - 1][y] = true;
			rocks[0][Global.HEIGHT - 1 - y] = true;
			rocks[Global.WIDTH - 1][Global.HEIGHT - 1 - y] = true;
		}
		for (int y = 6; y < Global.HEIGHT - 6; y++) {
			rocks[6][y] = true;
			rocks[Global.WIDTH - 7][y] = true;
		}
	}

	/**
	 * 添加一塊石頭到指定格子坐標
	 * 
	 * @param x
	 *            格子坐標 x
	 * @param y
	 *            格子坐標 y
	 */
	public void addRock(int x, int y) {
		rocks[x][y] = true;
	}

	/**
	 * 蛇是否吃到了石頭
	 * 
	 * @param p
	 * @return
	 */
	public boolean isSnakeEatRock(Snake snake) {
		return rocks[snake.getHead().x][snake.getHead().y];
	}

	/**
	 * 隨機生成一個不是石頭的坐標, 用于丟食物
	 * 
	 * @return
	 */
	public Point getFreePoint() {
		do {
			freePoint.x = random.nextInt(Global.WIDTH);
			freePoint.y = random.nextInt(Global.HEIGHT);
		} while (rocks[freePoint.x][freePoint.y]);
		return freePoint;
	}

	/**
	 * 得到石頭的顏色
	 * 
	 * @return
	 */
	public Color getRockColor() {
		return rockColor;
	}

	/**
	 * 設置石頭的顏色
	 * 
	 * @param rockColor
	 */
	public void setRockColor(Color rockColor) {
		this.rockColor = rockColor;
	}

	/**
	 * 畫自己, 將調用drawRock(Graphics, int, int, int, int) 方法 和
	 * drawGridding(Graphics, int, int, int, int) 方法
	 * 
	 * @param g
	 */
	public void drawMe(Graphics g) {
		for (int x = 0; x < Global.WIDTH; x++)
			for (int y = 0; y < Global.HEIGHT; y++) {
				/* 畫石頭 */
				if (rocks[x][y]) {
					g.setColor(rockColor);
					drawRock(g, x * Global.CELL_WIDTH, y * Global.CELL_HEIGHT,
							Global.CELL_WIDTH, Global.CELL_HEIGHT);
				} else if (drawGridding) {
					/* 畫網格(如果允許) */
					g.setColor(griddingColor);
					drawGridding(g, x * Global.CELL_WIDTH, y
							* Global.CELL_HEIGHT, Global.CELL_WIDTH,
							Global.CELL_HEIGHT);
				}
			}
	}

	/**
	 * 畫一塊石頭, 可以覆蓋這個方法改變石頭的顯示
	 * 
	 * @param g
	 * @param x
	 *            像素坐標 x
	 * @param y
	 *            像素坐標 y
	 * @param width
	 *            寬度(單位:像素)
	 * @param height
	 *            高度(單位:像素)
	 */
	public void drawRock(Graphics g, int x, int y, int width, int height) {
		g.fill3DRect(x, y, width, height, true);
	}

	/**
	 * 畫網格, 可以覆蓋這個方法改變網格的顯示
	 * 
	 * @param g
	 * @param x
	 *            像素坐標 x
	 * @param y
	 *            像素坐標 y
	 * @param width
	 *            寬度(單位:像素)
	 * @param height
	 *            高度(單位:像素)
	 */
	public void drawGridding(Graphics g, int x, int y, int width, int height) {
		g.drawRect(x, y, width, height);
	}

	/**
	 * 得到網格的顏色
	 * 
	 * @return
	 */
	public Color getGriddingColor() {
		return griddingColor;
	}

	/**
	 * 設置網格的顏色
	 * 
	 * @param griddingColor
	 */
	public void setGriddingColor(Color griddingColor) {
		this.griddingColor = griddingColor;
	}

	/**
	 * 是否畫網格
	 * 
	 * @return
	 */
	public boolean isDrawGridding() {
		return drawGridding;
	}

	/**
	 * 設置是否畫網格
	 * 
	 * @param drawGridding
	 */
	public void setDrawGridding(boolean drawGridding) {
		this.drawGridding = drawGridding;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品乱码久久久久久按摩 | 91精品国产91久久综合桃花| 精品精品国产高清a毛片牛牛| 成人欧美一区二区三区在线播放| 日韩国产精品91| 99精品桃花视频在线观看| 欧美xxx久久| 午夜激情一区二区三区| av在线不卡免费看| 久久免费电影网| 日韩av不卡在线观看| 色悠久久久久综合欧美99| 国产午夜精品理论片a级大结局| 日韩中文字幕av电影| 色综合久久综合| 国产精品久久久久aaaa樱花| 国产一区二区91| 欧美成人一区二区三区| 日韩精品一级二级 | 国产美女精品人人做人人爽| 欧美精品成人一区二区三区四区| 亚洲三级在线看| 99精品视频一区| 中文字幕免费不卡在线| 国产精品香蕉一区二区三区| 日韩久久精品一区| 免费的成人av| 精品国产亚洲在线| 极品少妇xxxx精品少妇偷拍| 精品日本一线二线三线不卡| 久久aⅴ国产欧美74aaa| 日韩欧美在线1卡| 久久爱另类一区二区小说| 日韩精品资源二区在线| 久久精品噜噜噜成人av农村| 日韩女优av电影| 国产在线观看免费一区| 国产亚洲精品7777| 成人在线一区二区三区| 国产精品初高中害羞小美女文| 99久久免费国产| 亚洲一区二三区| 欧美一区二区三区小说| 久草在线在线精品观看| 久久婷婷国产综合精品青草| 成人国产精品免费网站| 亚洲黄色av一区| 在线播放中文一区| 精东粉嫩av免费一区二区三区| 久久久久久久久久久久电影| 国产成人在线电影| 亚洲乱码国产乱码精品精小说| 欧美日韩国产在线播放网站| 日韩成人午夜精品| 国产午夜精品在线观看| 成人激情小说乱人伦| 伊人开心综合网| 日韩精品一区二区三区四区| 国产精品一二一区| 一区二区三区中文免费| 日韩三级av在线播放| 成人国产精品免费观看动漫| 亚洲午夜在线视频| 精品91自产拍在线观看一区| 99久久免费精品高清特色大片| 日韩精品福利网| 中文无字幕一区二区三区 | 丰满岳乱妇一区二区三区| 亚洲少妇最新在线视频| 欧美一区二区三区精品| fc2成人免费人成在线观看播放| 亚洲一二三专区| 国产日产欧美一区二区三区| 在线观看国产91| 国产成人av资源| 日韩精品电影一区亚洲| 国产精品灌醉下药二区| 欧美一级片在线看| 色哦色哦哦色天天综合| 国产伦理精品不卡| 亚洲18女电影在线观看| 国产精品国产精品国产专区不蜜| 91精品视频网| 色婷婷国产精品| 国产福利一区二区三区视频在线| 午夜精品一区二区三区免费视频| 国产精品色哟哟网站| 精品久久久久久久久久久久久久久久久 | 亚洲成av人综合在线观看| 久久久av毛片精品| 91精品国产91久久久久久一区二区 | 日本精品一区二区三区高清 | 久久久久久久久久电影| 91精品啪在线观看国产60岁| 99re成人精品视频| 国产高清不卡二三区| 麻豆精品视频在线观看免费| 亚洲午夜在线视频| 亚洲欧美另类久久久精品| 国产亚洲美州欧州综合国| 欧美一区二区精美| 欧美夫妻性生活| 一本色道久久综合狠狠躁的推荐| 国产传媒一区在线| 国产精一区二区三区| 看电视剧不卡顿的网站| 美女视频一区在线观看| 日韩高清欧美激情| 日韩精品色哟哟| 五月综合激情日本mⅴ| 亚洲动漫第一页| 亚洲国产一二三| 婷婷激情综合网| 日韩精品一二区| 麻豆一区二区三| 国产精品影音先锋| 国产乱国产乱300精品| 国产高清精品久久久久| 国产suv精品一区二区三区| 国产高清在线精品| 99国产欧美另类久久久精品| 91色乱码一区二区三区| 欧美最新大片在线看| 欧美日韩国产首页在线观看| 欧美一区二区免费视频| 亚洲精品在线电影| 国产午夜精品一区二区三区四区 | 精品国产精品网麻豆系列| 欧美videossexotv100| 久久综合色婷婷| 欧美激情一二三区| 日韩伦理av电影| 午夜精品一区二区三区三上悠亚| 天天色 色综合| 国产在线看一区| 99久久精品国产精品久久 | 99国产精品久久久久久久久久 | 丰满放荡岳乱妇91ww| 99在线热播精品免费| 欧美性生活大片视频| 91精品国产全国免费观看| 精品欧美一区二区三区精品久久 | 亚洲欧美日韩国产一区二区三区 | 国产美女精品一区二区三区| 9i看片成人免费高清| 欧美男生操女生| 久久久久久久久97黄色工厂| 亚洲另类在线视频| 蜜桃传媒麻豆第一区在线观看| 国产黄色91视频| 欧美视频一区二区三区在线观看| 日韩欧美国产不卡| 亚洲欧洲成人自拍| 麻豆高清免费国产一区| 91在线播放网址| 欧美成人福利视频| 伊人色综合久久天天| 极品美女销魂一区二区三区免费| 一本久道中文字幕精品亚洲嫩| 日韩精品一区二区在线观看| 亚洲欧洲在线观看av| 久久精品国产99| 欧美亚洲精品一区| 国产日韩欧美精品综合| 日韩精品欧美成人高清一区二区| 成人免费视频一区| 日韩美女在线视频| 亚洲午夜精品网| 成人黄色777网| 精品国产乱码久久久久久牛牛| 亚洲高清久久久| 91视频精品在这里| 国产亚洲婷婷免费| 久久99这里只有精品| 欧美日韩五月天| 亚洲视频一二三区| 国产成人免费视频| 日韩欧美激情一区| 日韩精品久久久久久| 色噜噜狠狠色综合欧洲selulu| 日本一区二区三区视频视频| 美国欧美日韩国产在线播放| 欧美日韩电影一区| 亚洲最大色网站| 色婷婷av一区二区三区大白胸 | 成人一道本在线| 久久夜色精品一区| 久久99国内精品| 欧美一区二区三区在线看| 亚洲国产婷婷综合在线精品| 在线观看av一区| 亚洲激情中文1区| 色丁香久综合在线久综合在线观看| 国产欧美日韩精品a在线观看| 国产乱码精品1区2区3区| 2020国产精品| 国产精品69毛片高清亚洲| 久久久精品综合| 大胆亚洲人体视频| 国产精品国产自产拍高清av王其|