int bestMove(int white, int black) {
int bestmove = -1; loop:
for (int i = 0 ; i < 9 ; i++) {
int mw = moves[i];
if (((white & (1 << mw)) == 0) && ((black & (1 << mw)) == 0)) {
int pw = white | (1 << mw);
if (won[pw]) {
// white wins, take it!
return mw;
}
for (int mb = 0 ; mb < 9 ; mb++) {
if (((pw & (1 << mb)) == 0) && ((black & (1 << mb)) == 0)) {
int pb = black | (1 << mb);
if (won[pb]) {
// black wins, take another
continue loop;
}
}
}
// Neither white nor black can win in one move, this will do.
if (bestmove == -1) {
bestmove = mw;
}
}
}
if (bestmove != -1) {
return bestmove;
} // No move is totally satisfactory, try the first one that is open
for (int i = 0 ; i < 9 ; i++) {
int mw = moves[i];
if (((white & (1 << mw)) == 0) && ((black & (1 << mw)) == 0)) {
return mw;
}
} // No more moves
return -1;
}小第没有学习过JAVA,近来看了这段代码有点迷惑,就是假如执行到continue loop,这里返回去,这里不是死循环吗?有朋友给我解释一下吗?特别是循环变量i和mb的值的变化
int bestmove = -1; loop:
for (int i = 0 ; i < 9 ; i++) {
int mw = moves[i];
if (((white & (1 << mw)) == 0) && ((black & (1 << mw)) == 0)) {
int pw = white | (1 << mw);
if (won[pw]) {
// white wins, take it!
return mw;
}
for (int mb = 0 ; mb < 9 ; mb++) {
if (((pw & (1 << mb)) == 0) && ((black & (1 << mb)) == 0)) {
int pb = black | (1 << mb);
if (won[pb]) {
// black wins, take another
continue loop;
}
}
}
// Neither white nor black can win in one move, this will do.
if (bestmove == -1) {
bestmove = mw;
}
}
}
if (bestmove != -1) {
return bestmove;
} // No move is totally satisfactory, try the first one that is open
for (int i = 0 ; i < 9 ; i++) {
int mw = moves[i];
if (((white & (1 << mw)) == 0) && ((black & (1 << mw)) == 0)) {
return mw;
}
} // No more moves
return -1;
}小第没有学习过JAVA,近来看了这段代码有点迷惑,就是假如执行到continue loop,这里返回去,这里不是死循环吗?有朋友给我解释一下吗?特别是循环变量i和mb的值的变化
解决方案 »
- java炸弹连续爆炸问题
- 为什么SWING不可以镂空
- 请教关于布局管理器的问题(立结)
- java获得本机名问题
- 请问各位,做的GUI是用在windows还是用在手机,java做的GUI在PC机上真的有价值吗???
- jTextField显示不下的时候,如何才能出现滚动条呢?100分奉送
- !!!版主快来管管吧《JAVA初学者必读-经验总结》有大问题
- 看了一点程序,,super(),,是什么意思呀。。。。。。???(见笑了)
- JBuilder7终于让我给下载下来了,^_^!!今儿个咱高兴,散分!!!!!!!!!!
- 关于JAVA和C/C++通过socket发送和接受数据的问题
- 数组看晕了
- 急...如何屏蔽JDialog类标题栏上的"X"
谢谢楼上同胞的回答!