随机棋编程在棋盘上移动棋子

时间:2014-05-02 03:59:46

标签: java

我正在创建一个国际象棋程序,计算机可以对抗人类,但是现在我只是希望计算机在我将一块作为人类移动后随机移动棋盘。一切似乎工作正常,但计算机不会移动板上除了我点击文件菜单,启动了执行操作的点击命令。因此,我必须始终在电脑上随意点击,然后在电路板上随意移动。但我希望它是“自动的”。

我这样做;

if (command == "1") {
    while(!gameover) {
        if (board.getTurn()) {  //computer turn
            List<Map.Entry<Location, ArrayList<Location>>> whitemovelist = new ArrayList<Map.Entry<Location, ArrayList<Location>>>(whitemap.entrySet());
            Collections.shuffle(whitemovelist);
            System.out.println("White turn");
            for (Map.Entry<Location, ArrayList<Location>> entry : whitemovelist) {
                if(entry.getValue().size() != 0) {
                    for (int i = 0; i < entry.getValue().size(); i++) {
                        System.out.println(entry.getKey() + " :: " + entry.getValue().get(i));
                        from = entry.getKey();
                        to = entry.getValue().get(i);
                    }
                }
            }
            processOne(from);
            movePiece(to);
            System.out.println("Take piece " +board.takenPiece);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

阅读后,这似乎很明显。

  1. 从文件菜单点击事件中删除代码。
  2. 将您的代码移至方法中,例如:AIMovePiece()
  3. 执行人类玩家转身后调用该方法。