package cn.tcc.snake.antition;

import java.awt.Color;
import java.awt.Graphics;

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

import cn.tcc.snake.util.Global;

public class Ground {
private int[][] rocks = new int[Global.WIDTH][Global.HEIGHT];
public Ground(){
    for(int x =0;x < Global.WIDTH;x++){
        rocks[x][0] = 1;
        rocks[x][Global.HEIGHT-1] = 1;
    }
}
public boolean isSnakeEatRock(Sanke sanke){
    System.out.println("SnakeEatRock");
    for(int x=0;x<Global.WIDTH;x++){
        for(int y=0;y<Global.HEIGHT;y++){
            if(rocks[x][y] == 1 &&(x == sanke.getHead().x && y == sanke.getHead().y)){
                return true;
            }
        }
    }
    return false;
}
public Point getpoint(){
    Random random = new Random();
    int x=0,y=0;
    do{
    x = random.nextInt(Global.WIDTH);
    y = random.nextInt(Global.HEIGHT);
    }while(rocks[x][y]==1);
    return new Point(x,y);
}
public void drawMe(Graphics g){
    System.out.println("drawMe");
    g.setColor(Color.DARK_GRAY);
    
    for(int x=0;x<Global.WIDTH;x++){
        for(int y=0;y<Global.HEIGHT;y++){
            if(rocks[x][y]==1){
            g.fill3DRect(x *Global.CELL_SIZE, y * Global.CELL_SIZE, Global.CELL_SIZE,Global.CELL_SIZE, true);
        }
    }
}}
}

贪吃蛇Ground Java实现(二)的更多相关文章

  1. 贪吃蛇Controller Java实现(二)

    package cn.tcc.snake.Controller; import java.awt.Point;import java.awt.event.KeyAdapter;import java. ...

  2. 贪吃蛇GamePanel Java实现(二)

    package cn.tcc.snake.tcc.View; import java.awt.Color;import java.awt.Graphics; import javax.swing.JP ...

  3. 贪吃蛇snake Java实现(二)

    package cn.tcc.snake.antition; import java.awt.Color;import java.awt.Graphics;import java.awt.Point; ...

  4. 贪吃蛇Food Java实现(二)

    1.antition包Food类 package cn.tcc.snake.antition; import java.awt.Graphics;import java.awt.Point;publi ...

  5. 贪吃蛇Global Java实现(二)

    package cn.tcc.snake.util; public class Global {public static final int CELL_SIZE=20;public static f ...

  6. 贪吃蛇Listener Java实现(二)

    package cn.tcc.snake.listener; import cn.tcc.snake.antition.Sanke;//接口//处理用户按键事件public interface Sna ...

  7. 贪吃蛇的java代码分析(二)

    代码剖析 贪吃蛇是一款十分经典的小游戏,对初入coding的朋友来说,拿贪吃蛇这样一个案例来练手十分合适,并不高的难度和成功后的成就感都是学习所必须的.下面我将依照我当时的思路,来逐步分析实现的整个过 ...

  8. 贪吃蛇的java代码分析(一)

    自我审视 最近自己学习java已经有了一个多月的时间,从一开始对变量常量的概念一无所知,到现在能勉强写几个小程序玩玩,已经有了长足的进步.今天没有去学习,学校里要进行毕业答辩和拍毕业照了,于是请了几天 ...

  9. 贪吃蛇的java代码分析(三)

    代码剖析 在上一篇文章中,我们完成了贪吃蛇部分代码的构造.回头审视我们写的代码与思路,会发现我们遗漏了一个重要的地方,那就是:贪吃蛇的自身移动.想必大家都知道,贪吃蛇自身是会自己移动的,并且会跟随你的 ...

随机推荐

  1. PHP + Nginx 在 Linux(centos7)系统下的环境搭建

    ( 选用的操作系统为 centos7 ) 01,安装 nginx => 请移步 https://www.cnblogs.com/lovling/p/9197572.html 02,下载 php  ...

  2. ThinkPHP输入验证和I方法使用

    在Web开发过程中,我们经常需要获取系统变量或者用户提交的数据,这些变量数据错综复杂,而且一不小心就容易引起安全隐患,但是如果利用好ThinkPHP提供的变量获取功能,就可以轻松的获取和驾驭变量了. ...

  3. node.js定时任务 node-schedule

    先安装 node-schedule npm install node-schedule //1:确定时间 //例如:2014年2月14日,15:40执行 var schedule = require( ...

  4. css3 - 特性

    伪类选择器 伪类选择器,不用再使用js来控制奇偶不同了 tr:nth-child(even){ background-color: white; } tr:nth-child(odd){ backgr ...

  5. ref与out

    注意点: ref和out都是按地址传递,使用后都将改变原来参数的数值 方法定义和调用方法都必须显式使用 ref/out 关键字 ref: 作为ref参数传递的变量在方法调用中传递之前必须初始化 out ...

  6. DNS协议工作过程;DNS的安全隐患

    DNS协议工作过程   下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为例,简述DNS协议过程. 主机m.xyz.com先向其本地服务器dns.xyz.com进 ...

  7. Class-reference types 类引用类型--快要失传的技术

    先摘一段原版的说明: A class-reference type, sometimes called a metaclass, is denoted by a construction of the ...

  8. Cache雪崩效应

    大概半年前,Guang.com曾发生一次由于首页部分cache失效,导致网站故障. 故障分析: 当时逛正在做推广,流量突然暴增,QPS达到5000+,当首页部分cache失效时,需要查询DB, 但由于 ...

  9. java Overloaded的方法是否可以改变返回值的类型?

    刚才看到这样一个题,下面的解释很乱,所以还是做一下试验比较好 public class Test { public static void main(String[] args){ Bae b = n ...

  10. eclipse调试快捷键

    Eclipse中有如下一些和运行调试相关的快捷键. 1. [Ctrl+Shift+B]:在当前行设置断点或取消设置的断点.    2. [F11]:调试最后一次执行的程序.    3. [Ctrl+F ...