2014-05-02 107 views
-1

我正在創建一個國際象棋程序,通過這個棋盤程序,計算機可以對人類進行遊戲,但現在我只是簡單地希望計算機在移動棋子後隨機移動棋子。一切似乎工作正常,但電腦不會移動板上的一塊,除非我點擊文件菜單啓動執行操作的點擊命令。所以我必須在電腦在棋盤上隨意移動棋子之前總是點擊。但我希望它是「自動」的。在隨機棋盤上移動棋盤上的棋子

我正在這樣做;

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); 
     } 
    } 
} 
+0

如果您希望人們自願幫助您解決問題,請至少花時間格式化您的代碼。 – csmckelvey

回答

0

這看起來似乎很明顯後,你讀它。

  1. 從文件菜單中單擊事件中刪除代碼。
  2. 將您的代碼轉換爲方法,例如:AIMovePiece()
  3. 執行人類玩家轉身後調用該方法。