Beispiel #1
0
        public void UruchomRozgrywke()
        {
            widok.CzyscEkran();
            string filePath        = "zapis.xml";
            bool   czyPlikIstnieje = File.Exists(filePath);

            if (czyPlikIstnieje && widok.ChceszKontynuowac("Czy chcesz wznowić grę? (t/n)"))
            {
                try
                {
                    gra = dataSerializator.Deserialize();
                    gra.Odwies();
                    widok.HistoriaGry();
                }
                catch (SerializationException)
                {
                    Console.WriteLine("Nie udalo sie odczytac pliku!");
                    gra = new Gra(MinZakres, MaxZakres);
                    File.Delete("zapis.xml");
                }
            }
            else
            {
                gra = new Gra(MinZakres, MaxZakres); //może zgłosić ArgumentException
                File.Delete("zapis.xml");
            }

            do
            {
                //wczytaj propozycję
                int propozycja = 0;
                try
                {
                    propozycja = widok.WczytajPropozycje();
                }
                catch (KoniecGryException)
                {
                    gra.Zawies();
                    try
                    {
                        dataSerializator.Serialize(gra);
                        Console.WriteLine("Gra zostala zapisana");
                    }
                    catch (SerializationException)
                    {
                        Console.WriteLine("Gra nie została zapisana!");
                    }
                    Environment.Exit(0);
                }

                Console.WriteLine(propozycja);

                if (gra.StatusGry == Gra.Status.Poddana)
                {
                    break;
                }

                //Console.WriteLine( gra.Ocena(propozycja) );
                //oceń propozycję, break
                switch (gra.Ocena(propozycja))
                {
                case ZaDuzo:
                    widok.KomunikatZaDuzo();
                    break;

                case ZaMalo:
                    widok.KomunikatZaMalo();
                    break;

                case Trafiony:
                    widok.KomunikatTrafiono();
                    break;

                default:
                    break;
                }
                widok.HistoriaGry();
            }while (gra.StatusGry == Gra.Status.WTrakcie);

            //if StatusGry == Przerwana wypisz poprawną odpowiedź
            if (gra.StatusGry == Gra.Status.Zakonczona)
            {
                File.Delete(filePath);
                //widok.HistoriaGry();
                widok.KomunikatKoncowy(gra.CalkowityCzasGry);
            }
        }