public static ChessBoardEntity moveChessmen(final ChessBoardEntity b, final ChessmenEntity c, final PositionEntity p, final boolean promote) {
		ChessBoardEntity board = null;
		if (isMoveChessmen(b, c, p, promote)) {
			List<ChessmenEntity> chessmens = new ArrayList<ChessmenEntity>();
			for (ChessmenEntity chessmen : b.getChessmens()) {
				if (chessmen.getId() == c.getId()) {
					chessmens.add(new ChessmenEntity(chessmen.getId(), chessmen.getType(), new PositionEntity(p), chessmen.isPlayer(), chessmen
							.isBoard(), promote));
				} else if (chessmen.isBoard() && !chessmen.isPlayer() && chessmen.getPosition().getX() == p.getX()
						&& chessmen.getPosition().getY() == p.getY()) {
					chessmens.add(new ChessmenEntity(chessmen.getId(), chessmen.getType(), new PositionEntity(0, 0), true, false, false));
				} else {
					chessmens.add(new ChessmenEntity(chessmen));
				}
			}
			board = new ChessBoardEntity(chessmens);
		}
		return board;
	}