Ejemplo n.º 1
0
        // --  Constructor -- //

        public Level()
        {
            width  = 1280;
            height = 720;
            tile   = new Tile();

            redPlayer  = new RedPlayer();
            bluePlayer = new BluePlayer();

            grid   = new Tile[width / tile.GetSize, height / tile.GetSize];
            sorter = new TileSorter(grid.Length);

            AddBorder();
        }
Ejemplo n.º 2
0
        public IList <TileGrouping> ParseHandAsSevenPairs(IList <Tile> tiles)
        {
            var groupsOfPairs = new List <TileGrouping>();

            tiles = TileSorter.SortTiles(tiles);
            for (int i = 0; i < tiles.Count - 2; i += 2)
            {
                if (tiles[i].Equals(tiles[i + 1]))
                {
                    groupsOfPairs.Add(new TileGrouping(tiles[i], tiles[i + 1]));
                }
            }
            return(groupsOfPairs);
        }
Ejemplo n.º 3
0
        protected bool IsSevenPairs(IList <Tile> uncalledTiles, IList <TileGrouping> calledSets)
        {
            if (uncalledTiles.Count != WinningHandBaseTileCount || calledSets.Any() ||
                uncalledTiles.ToHashSet().Count != WinningHandBaseTileCount / 2)
            {
                return(false);
            }

            uncalledTiles = TileSorter.SortTiles(uncalledTiles);
            for (int i = 0; i < uncalledTiles.Count - 2; i += 2)
            {
                if (!uncalledTiles[i].Equals(uncalledTiles[i + 1]))
                {
                    return(false);
                }
            }
            return(true);
        }
Ejemplo n.º 4
0
        public TileLibrary()
        {
            string tileDir      = MainWindow.TileDirectory;
            string tileImageDir = MainWindow.TileImagesDirectory;

            string[] tile_files = System.IO.Directory.GetFiles(tileDir);
            foreach (string file in tile_files)
            {
                if (file.EndsWith(".txt"))
                {
                    string[] lines = System.IO.File.ReadAllText(System.IO.Path.Combine(tileDir, file)).Split('\n');
                    foreach (string line in lines)
                    {
                        string trimmed = line.Trim();
                        if (trimmed.Length > 0 && trimmed[0] != '#')
                        {
                            string[] parts = trimmed.Split('\t');
                            try
                            {
                                string   id     = parts[0];
                                string[] org    = parts[1].Split('/');
                                string   folder = org[0];
                                string   name   = org[1];
                                string[] images = parts[2].Split('|');
                                Tile     t      = new Tile(images, id, name, file.EndsWith("\\doors.txt"));
                                this.AddTileToHierarchy(t, folder, name);
                                this.tiles.Add(id, t);
                            }
                            catch (Exception e)
                            {
                            }
                        }
                    }
                }
            }
            TileSorter ts = new TileSorter();

            this.folders.Sort();
            foreach (string folder in this.folders)
            {
                this.folder_members[folder].Sort(ts);
            }
        }
Ejemplo n.º 5
0
 public void SortHand()
 {
     UncalledTiles = TileSorter.SortTiles(UncalledTiles);
 }