package com.znv.linkup.core.map; import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * 游戏地图基类,处理地图模版和地图 * * @author yzb * */ public class BaseMap implements Serializable { private static final long serialVersionUID = 7379717910848419154L; protected BaseMap() { } protected BaseMap(int ySize, int xSize) { YSize = ySize; XSize = xSize; Data = new Byte[ySize][xSize]; } /** * 随机重排 */ public void randomRefresh() { int index = 0; // 获取游戏块的值 List<Byte> array = new ArrayList<Byte>(); for (int i = 0; i < YSize; i++) { for (int j = 0; j < XSize; j++) { if (isRefresh(i, j)) { array.add(Data[i][j]); } } } // 随机打乱 Collections.shuffle(array); // 重新赋值 index = 0; for (int i = 0; i < YSize; i++) { for (int j = 0; j < XSize; j++) { if (isRefresh(i, j)) { Data[i][j] = array.get(index++); } } } } protected boolean isRefresh(int i, int j) { return true; } @Override public String toString() { StringBuilder strMap = new StringBuilder(String.valueOf(YSize) + "*" + String.valueOf(XSize) + "$"); for (int i = 0; i < YSize; i++) { for (int j = 0; j < XSize; j++) { strMap.append(String.valueOf(Data[i][j]) + ","); } strMap.replace(strMap.length() - 1, strMap.length(), ";"); } strMap.deleteCharAt(strMap.length() - 1); return strMap.toString(); } protected int YSize; protected int XSize; protected Byte[][] Data; }