qingshansima(司马青衫) 说的很正确,就是这样判断的。如果是问AI的话,可能有不少种,我记得有一期的开发高手上面有一个程序实现,查查看吧
解决方案 »
- 一个小程序,请看看
- 带密码的压缩包如何解压?
- 求助,JTable设置ToolTipText时,ToolTipText可以换行显示吗?
- linux中Runtime.exec(cmd)只要cmd中带|grep的都不能取得InputStream,为什么?
- JAVA都说用在企业开发,服务器端,那到底应用在什么地方呢?
- 我怎么就不会创建自己的包啊?我明白包的作用
- 请问如何用java反射技术得到的类名,声明变量并作强制类型转换.
- java中怎么取得系统日期?
- 终于到5个三角了,散分!
- 数字签名问题,你可以指导我的!谢.......
- 由于程序要反复读取某个表中的数据,我想把表中的数据读取出来放到内存中,java好像提供了类似的类,请高手指点
- 请问java程序如何输入多个字符
protected synchronized void keyPressed(int keyCode) {
...
else if (action == Canvas.FIRE) {
if(chesses[selectedY][selectedX]==null){
chesses[selectedY][selectedX]=new Chesses(this.isPlayer1);
if(checkWin()){
String winner;
if(isPlayer1){
winner="白方胜利";
player1win++;
}
else{
winner="红方胜利";
player2win++;
}
try{
Thread.sleep(3000);
}catch(Exception e){
}
Alert winAlert=new Alert("",
winner+"\n白方 "+player1win+" : "+player2win+" 红方",
null,AlertType.INFO);
winAlert.setTimeout(Alert.FOREVER);
Display.getDisplay(gobang).setCurrent(winAlert,this);
init();
repaint();
}
this.isPlayer1=!this.isPlayer1;//切换下棋方(FROMJ2MEDEV。COM)
}
}
repaint();
}
private boolean checkWin(){
int num=1;
if(num<5){
num=1;
for(int i=1;i<=4;i++){
if(isPlayer1(selectedX-i,selectedY)){
num++;
}
else break;
}
for(int i=1;i<=4;i++){
if(isPlayer1(selectedX+i,selectedY)){
num++;
}
else break;
}
}
if(num<5){
num=1;
for(int i=1;i<=4;i++){
if(isPlayer1(selectedX,selectedY-i)){
num++;
}
else break;
}
for(int i=1;i<=4;i++){
if(isPlayer1(selectedX,selectedY+i))
num++;
else break;
}
}
if(num<5){
num=1;
for(int i=1;i<=4;i++){
if(isPlayer1(selectedX-i,selectedY-i))
num++;
else break;
}
for(int i=1;i<=4;i++){
if(isPlayer1(selectedX+i,selectedY+i))
num++;
else break;
}
}
if(num<5){
num=1;
for(int i=1;i<=4;i++){
if(isPlayer1(selectedX+i,selectedY-i))
num++;
else break;
}
for(int i=1;i<=4;i++){
if(isPlayer1(selectedX-i,selectedY+i))
num++;
else break;
}
}
if(num>=5)
return true;
else
return false;
}
private boolean isPlayer1(int y,int x){
if(x<=15 && x>=0 && y<=15 && y>=0 && chesses[x][y]!=null){
if(chesses[x][y].isPlayer1==this.isPlayer1)
return true;
else
return false;
}
else return false;
}