using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Wpf_TOMBOLA
{
    class Tabellone
    {
        private List<int> numeri;
        private List<int> numeriEstratti;

        private Random rand;

        public Tabellone()
        {
            numeri = new List<int>();
            numeriEstratti = new List<int>();
            rand = new Random();
            Nuovo();
        }

        public void Nuovo()
        {
            numeri.Clear();
            numeriEstratti.Clear();
            for (int i = 1; i <= 90; i++)
            {
                numeri.Add(i);
            }
        }

        public int Estrai()
        {
            if (Completato())
                return -1;

            int estratto = numeri.ElementAt(rand.Next(0, numeri.Count));
            numeri.Remove(estratto);
            numeriEstratti.Add(estratto);
            return estratto;
        }

        public bool Completato()
        {
            return numeri.Count == 0;
        }

        public string StampaEstratti()
        {
            string ret = String.Empty;
            foreach (int n in numeriEstratti)
            {
                ret += n + " ";
            }
            return ret.TrimEnd();
        }

        public string StampaTabellone()
        {
            string ret = String.Empty;
            for (int i = 1; i <= 90; i++)
            {
                if (numeriEstratti.Contains(i))
                {
                    ret += String.Format("[{0:D2}]", i);
                }
                else
                {
                    ret += "[--]";
                }
                if (i % 10 == 0)
                    ret += "\n";
            }
            return ret;
        }

        public bool EsisteNumero(int n)
        {
            return numeriEstratti.Contains(n);
        }
    }
}
