一直有这个想法很久了。以前也知道可以用BWAPI这个API写星际争霸的ai。但是直接用那个的话一直没调试好,各种版本都搭配不好然后导致星际崩溃,C++又不是很懂只得作罢。
幸好最近发现了这个网站:http://www.sscaitournament.com 里面提供可以用java很方便写的java bot。于是决定开始写。按照网站上的tutorial装好之后,我们可以看一下他给的例子。这个例子可以造农民,采矿,造房子,但没有造兵和科技的功能。我们先来看一下。我是菜鸟,大家海涵,主要是为了学习java,ai
我们第一个可以写的地方就是做动作act()之前的这一块,用来读取对阵双方种族,地图信息,并用游戏中的“发言”打印在屏幕上。
bwapi.printText("This is Kai's bot");
bwapi.printText("This map is called "+bwapi.getMap().getName());
bwapi.printText("My race ID: "+String.valueOf(bwapi.getSelf().getRaceID())); // Z=0,T=1,P=2
bwapi.printText("Enemy race ID: "+String.valueOf(bwapi.getEnemies().get(0).getRaceID()));// Z=0,T=1,P=2
其中我们可以把第三行改成
switch(bwapi.getSelf().getRaceID()){
case 0:
bwapi.printText("I am Zerg");
break;
case 1:
bwapi.printText("I am Terran");
break;
case 2:
bwapi.printText("I am Protoss");
break;
default:
bwapi.printText("I am Random");
break;
}
这样更直观一点。
之后是造农民,采矿,还有造房子。我们下一篇中看一下怎么让他造兵营。