using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace QwirkleClassLibrary { public class TileBag { public ReadOnlyCollection TilesBag { get ; private set; } private readonly List tiles = new List(); public TileBag(int nbSet) { if (nbSet < 0 || nbSet > 3) { throw new ArgumentException(nbSet.ToString()); } for (int i = 0; i < nbSet; i++) { foreach (Shape s in Enum.GetValues(typeof(Shape))) { foreach (Color c in Enum.GetValues(typeof(Color))) { Tile t = new Tile(s, c); tiles.Add(t); } } } TilesBag = tiles.AsReadOnly(); } public bool AddTileInBag(Tile tile) { if (tile == null) { return false; } tiles.Add(tile); return true; } public bool RemoveTileInBag(Tile tile) { for (int i = 0; i < tiles.Count; i++) { if (tiles[i] == tile) { tiles.RemoveAt(i); return true; } } return false; } } }