package org.test; import loon.utils.ArrayMap; import loon.utils.ArrayMap.Entry; public class GameController { private ArrayMap initPieces() { ArrayMap pieces = new ArrayMap(); pieces.put("bj0", new Piece("bj0", new int[] { 0, 0 })); pieces.put("bm0", new Piece("bm0", new int[] { 0, 1 })); pieces.put("bx0", new Piece("bx0", new int[] { 0, 2 })); pieces.put("bs0", new Piece("bs0", new int[] { 0, 3 })); pieces.put("bb0", new Piece("bb0", new int[] { 0, 4 })); pieces.put("bs1", new Piece("bs1", new int[] { 0, 5 })); pieces.put("bx1", new Piece("bx1", new int[] { 0, 6 })); pieces.put("bm1", new Piece("bm1", new int[] { 0, 7 })); pieces.put("bj1", new Piece("bj1", new int[] { 0, 8 })); pieces.put("bp0", new Piece("bp0", new int[] { 2, 1 })); pieces.put("bp1", new Piece("bp1", new int[] { 2, 7 })); pieces.put("bz0", new Piece("bz0", new int[] { 3, 0 })); pieces.put("bz1", new Piece("bz1", new int[] { 3, 2 })); pieces.put("bz2", new Piece("bz2", new int[] { 3, 4 })); pieces.put("bz3", new Piece("bz3", new int[] { 3, 6 })); pieces.put("bz4", new Piece("bz4", new int[] { 3, 8 })); pieces.put("rj0", new Piece("rj0", new int[] { 9, 0 })); pieces.put("rm0", new Piece("rm0", new int[] { 9, 1 })); pieces.put("rx0", new Piece("rx0", new int[] { 9, 2 })); pieces.put("rs0", new Piece("rs0", new int[] { 9, 3 })); pieces.put("rb0", new Piece("rb0", new int[] { 9, 4 })); pieces.put("rs1", new Piece("rs1", new int[] { 9, 5 })); pieces.put("rx1", new Piece("rx1", new int[] { 9, 6 })); pieces.put("rm1", new Piece("rm1", new int[] { 9, 7 })); pieces.put("rj1", new Piece("rj1", new int[] { 9, 8 })); pieces.put("rp0", new Piece("rp0", new int[] { 7, 1 })); pieces.put("rp1", new Piece("rp1", new int[] { 7, 7 })); pieces.put("rz0", new Piece("rz0", new int[] { 6, 0 })); pieces.put("rz1", new Piece("rz1", new int[] { 6, 2 })); pieces.put("rz2", new Piece("rz2", new int[] { 6, 4 })); pieces.put("rz3", new Piece("rz3", new int[] { 6, 6 })); pieces.put("rz4", new Piece("rz4", new int[] { 6, 8 })); return pieces; } private Board initBoard() { Board board = new Board(); board.pieces = initPieces(); ArrayMap maps = initPieces(); for (int i = 0; i < maps.size(); i++) { Entry e = maps.getEntry(i); if (e != null) { board.update((Piece) e.getValue()); } } return board; } public Board playChess() { initPieces(); return initBoard(); } public void moveChess(String key, int[] position, Board board) { board.updatePiece(key, position); } public void responseMoveChess(Board board, GameView view) { SearchModel searchModel = new SearchModel(); AlphaBetaNode result = searchModel.search(board); view.movePieceFromAI(result.piece, result.to); board.updatePiece(result.piece, result.to); } public char hasWin(Board board) { boolean isRedWin = board.pieces.get("bb0") == null; boolean isBlackWin = board.pieces.get("rb0") == null; if (isRedWin) { return ChessFlag.MY; } else if (isBlackWin) { return ChessFlag.PC; } else { return ChessFlag.END; } } }