コード例 #1
0
ファイル: BoardData.cs プロジェクト: LeSphax/PerspectiveShift
    public static BoardData GetDummyBoardData()
    {
        BoardData board = new BoardData
        {
            balls = BallData.CreateEmptyBallDataMatrix(3, 3),
            tiles = TileData.CreateEmptyTileDataMatrix(3, 3)
        };

        board.balls[0, 0] = BallData.GetObjective1Ball();
        board.tiles[2, 2] = TileData.GetObjective1Tile();
        return(board);
    }
コード例 #2
0
ファイル: BoardData.cs プロジェクト: LeSphax/PerspectiveShift
    public static BoardData Parse(string serializedData)
    {
        string    currentField = "";
        BoardData result       = new BoardData();

        foreach (string line in serializedData.Split(Environment.NewLine.ToCharArray()))
        {
            string trimmedLine = line.Trim();

            if (trimmedLine.Length > 0)
            {
                if (trimmedLine[0] == ';')
                {
                    currentField = trimmedLine.Substring(1).Trim();
                }
                else
                {
                    switch (currentField)
                    {
                    case "Dimension":
                        string[] split = trimmedLine.Split(',');
                        int      x     = int.Parse(split[0].Trim());
                        int      y     = int.Parse(split[1].Trim());
                        result.tiles = TileData.CreateEmptyTileDataMatrix(x, y);
                        result.balls = BallData.CreateEmptyBallDataMatrix(x, y);
                        break;

                    case "Tiles":
                        string[] split2    = trimmedLine.Split(' ');
                        string[] positions = split2[1].Split(',');
                        int      x2        = int.Parse(positions[0].Trim());
                        int      y2        = int.Parse(positions[1].Trim());
                        string[] type      = split2[0].Split(':');

                        result.tiles[x2, y2] = new TileData((ObjectiveType)int.Parse(type[1]), (TileType)type[0][0]);
                        break;

                    case "Balls":
                        string[] split3     = trimmedLine.Split(' ');
                        string[] positions3 = split3[1].Split(',');
                        int      x3         = int.Parse(positions3[0].Trim());
                        int      y3         = int.Parse(positions3[1].Trim());
                        string[] type3      = split3[0].Split(':');
                        result.balls[x3, y3] = new BallData((BallType)type3[0][0], (ObjectiveType)int.Parse(type3[1]));
                        break;
                    }
                }
            }
        }
        return(result);
    }
コード例 #3
0
 public void ResetBoard()
 {
     tiles = TileData.CreateEmptyTileDataMatrix(0, 0);
     balls = BallData.CreateEmptyBallDataMatrix(0, 0);
 }