• 大小: 2.64MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-26
  • 语言: 其他
  • 标签: 怪物有AI  

资源简介

绝对原创的可人机对战的泡泡堂。 很喜欢玩泡泡堂,但是很多时候没有网络,最初想下一些单机的泡泡堂玩,最好仿激战模式那种的单机版,但是找了好久就是找不到,要不是双人单机的,要不是和AI非常低的怪物玩。。。 在多次寻找无果的情况下,本人决定自己弄一个出来玩玩,想起来简单,做起来难啊,毕竟水平真太菜,暂时只能做到这种程度了,主要是AI的设计似乎从开始就设计跑偏,导致想进一步优化AI是在优化不来了,哎,归根到底还是水平太菜。。。 注意: 程序支持的环境为JRE1.7以上(包括1.7) 由于禁止了Frame的装饰,导致程序没有退出按钮,随意做成了按键监听,ESC键为退出程序键; 一局游戏结束,F5键可重新开始; 上下左右控制人物移动; 空格键放炮。

资源截图

代码片段和文件信息

import java.awt.Point;
import java.util.HashMap;
import java.util.Map;

public class Brain {
public static Thread moveThread;
public static Brain brain= new Brain();
private Role[] role;
private Brain() {};
public void setRole(Role ... role) {
this.role = role;
}
/* 获取角色站定的方格位置
 * 判断角色正中心点落于Constant.Map的哪个方格中
 * */
public static int[] getRolePoint(Point point) {
double x = (double)(point.x + Constant.Length / 2) /(double)Constant.Length;
double y = (double)(point.y + Constant.Length / 2) /(double)Constant.Length;
return new int[]{(int) Math.floor(x)  (int) Math.floor(y)};

/* 获取某一点的位置
 * 判断某点落于Constant.Map的哪个方格中*/
public static boolean deathPoint(Point point Map map) {
int x = (int) Math.floor((double)(point.x) / (double)Constant.Length);
int y = (int) Math.floor((point.y) / (double)Constant.Length);
if(x == Constant.width) x = Constant.width - 1;
if(y == Constant.height) y = Constant.height - 1;
if(map.containsKey(x + “-“ + y)) {
return true;

return false;
}
/* 判断此方格中是否已经存在炸弹*/
public static boolean ifBombExsit(int[] point) {
boolean ifBombExsit = false;
if(Math.abs(Constant.Map[point[1]][point[0]]) > 1) {
ifBombExsit = true;
}
return ifBombExsit;
}
/* 给Constant.map的某个方格设置毒药*/
public static void setDu(int[] point) {
if(Constant.Map[point[1]][point[0]] == 0) {
Constant.Map[point[1]][point[0]] = -1;
} else if(Constant.Map[point[1]][point[0]] > 0) {
Constant.Map[point[1]][point[0]] = -1 * Constant.Map[point[1]][point[0]];
}
}
/* 判断此方格中是否已经存在毒药*/
public static boolean ifDuArea(int[] point) {
boolean ifDuArea = false;
if(Constant.Map[point[1]][point[0]] < 0) {
ifDuArea = true;
}
return ifDuArea;
}
/* 给Constant.map的某个方格设置炸弹*/
public static boolean setBomb(int[] point) {
synchronized (Constant.Map) {
if(!Brain.ifBombExsit(point)) {
long time = System.currentTimeMillis();
if(Constant.Map[point[1]][point[0]] == -1) {
Constant.Map[point[1]][point[0]] = (-1 * time);
} else if(Constant.Map[point[1]][point[0]] == 0){
Constant.Map[point[1]][point[0]] = time;
}
return true;
} else {
return false;
}
}
}
/*爆炸前的就绪工作,将由某方格内的炸弹引起的爆炸的方格存入一个MAP中*/
public static Map PreBombing(int[] point) {
Map pointMap = new HashMap();
findBomb(point[0] point[1] pointMap);
return pointMap;
}
/* 爆炸中的查询工作,找出所有属于爆炸范围的炸弹*/
public static void findBomb(int point0 int point1 Map pointMap) {
if(!pointMap.containsKey(point0 + “-“ + (point1))) {
pointMap.put(point0 + “-“ + point1 Constant.BombCount);
}
for(int i = 1; i < Constant.Power; i++) {
if(point1 - i >= 0) {
if(!pointMap.containsKey(point0 + “-“ + (point1 - i))) {
pointMap.put(point0 + “-“ + (point1 - i) Constant.BombCount);
if(Math.abs(Constant.Map[point1 - i][point0]) > 1) {
fin

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        298  2015-05-04 12:54  BNB_NEW\.classpath

     文件        383  2015-05-04 12:54  BNB_NEW\.project

     文件        629  2015-05-04 12:54  BNB_NEW\.settings\org.eclipse.jdt.core.prefs

     文件       1122  2015-05-20 14:08  BNB_NEW\bin\Brain$1.class

     文件      11696  2015-05-20 14:08  BNB_NEW\bin\Brain.class

     文件       1270  2015-05-20 13:37  BNB_NEW\bin\Computer$DIR.class

     文件       8688  2015-05-20 13:37  BNB_NEW\bin\Computer.class

     文件       5274  2015-05-20 14:05  BNB_NEW\bin\Constant.class

     文件       5077  2015-05-20 13:49  BNB_NEW\bin\Drawer.class

     文件       1002  2015-05-20 13:43  BNB_NEW\bin\People$State.class

     文件       3794  2015-05-20 13:43  BNB_NEW\bin\People.class

     文件        342  2015-05-19 18:46  BNB_NEW\bin\Role.class

     文件       3435  2015-05-20 14:10  BNB_NEW\bin\Switch.class

     文件      88512  2015-05-18 17:51  BNB_NEW\MUSIC\bomb.wav

     文件     498320  2011-08-07 19:37  BNB_NEW\MUSIC\gamestart.wav

     文件     176404  2015-05-20 13:42  BNB_NEW\MUSIC\get.wav

     文件      19072  2015-05-19 13:40  BNB_NEW\MUSIC\lay.wav

     文件    2646126  2015-05-19 13:29  BNB_NEW\MUSIC\ppd.wav

     文件       1032  2015-05-11 17:47  BNB_NEW\PIC\Bombing.png

     文件       7875  2015-05-20 12:30  BNB_NEW\PIC\Bossdown.png

     文件       6524  2015-05-20 12:39  BNB_NEW\PIC\Bossleft.png

     文件       6368  2015-05-20 12:48  BNB_NEW\PIC\Bossright.png

     文件       6914  2015-05-20 12:48  BNB_NEW\PIC\Bossup.png

     文件       6262  2015-05-20 13:26  BNB_NEW\PIC\ComputerDown.png

     文件       4911  2015-05-20 13:26  BNB_NEW\PIC\ComputerLeft.png

     文件       4814  2015-05-20 13:26  BNB_NEW\PIC\ComputerRight.png

     文件       5004  2015-05-20 13:26  BNB_NEW\PIC\ComputerUp.png

     文件      14577  2015-05-11 17:47  BNB_NEW\PIC\down.png

     文件       3408  2015-05-11 17:47  BNB_NEW\PIC\Du.png

     文件       2091  2015-05-11 17:47  BNB_NEW\PIC\floor1.jpg

............此处省略23个文件信息

评论

共有 条评论

相关资源