//局面読み込み public void Load(PositionData pd) { Clear(); foreach (PiecePosition piecePos in pd.piecePositions) { player[piecePos.owner].AddMyPieces (piecePos.pieceKind, piecePos.faceId, piecePos.forwardFaceId, false); } }
/// <summary>新しいPieceDataを生成するstatic関数</summary> /// <param name="p1"></param> /// <param name="p2"></param> /// <returns>入力PlayerBaseに対応した局面を再現できるPositonData</returns> public static PositionData SaveByPlayer(PlayerBase p1, PlayerBase p2) { PositionData pd = new PositionData(); List <PlayerBase> playerList = new List <PlayerBase>() { p1, p2 }; foreach (PlayerBase player in playerList) { List <Pieces> myPieces = player.GetMyPieces(); int owner; if (player.GetPlayerKind() == PlayerKind.HumanPlayer)// { owner = 0; } else { owner = 1; } foreach (Pieces myPiece in myPieces) { PiecePosition piecePosition = new PiecePosition(); piecePosition.owner = owner; piecePosition.pieceKind = myPiece.GetKind(); piecePosition.faceId = myPiece.GetFaceId(); piecePosition.forwardFaceId = myPiece.GetForwardFaceId(); pd.piecePositions.Add(piecePosition); } } return(pd); }
//局面保存 public PositionData Save() { return(PositionData.SaveByPlayer(player[0], player[1])); }