我用JAVA写五子棋人机博弈的程序,每落一子都调用repaint()对棋盘进行重绘。但现在的情况是人落子后并没有显示出棋子,也就是没有重绘,只有计算机落子后才会同时出现两个子。
于是我在AlphaBetaSearch类内实现Callable接口,用一个新的线程实现计算机落子位置的搜索,调用代码如下: AlphaBetaSearch ab = new AlphaBetaSearch(this);
ExecutorService exec = Executors.newFixedThreadPool(1);
Future<Integer> future = exec.submit(ab);
try {
computerMovePosition = future.get();
} catch (ExecutionException e) {
System.out.println(e.toString());
} catch (InterruptedException e) {
System.out.println(e.toString());
}
但仍然不行,请达人帮忙看下要怎么做才能实现每落一子即重绘一下棋盘,谢谢!
于是我在AlphaBetaSearch类内实现Callable接口,用一个新的线程实现计算机落子位置的搜索,调用代码如下: AlphaBetaSearch ab = new AlphaBetaSearch(this);
ExecutorService exec = Executors.newFixedThreadPool(1);
Future<Integer> future = exec.submit(ab);
try {
computerMovePosition = future.get();
} catch (ExecutionException e) {
System.out.println(e.toString());
} catch (InterruptedException e) {
System.out.println(e.toString());
}
但仍然不行,请达人帮忙看下要怎么做才能实现每落一子即重绘一下棋盘,谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货