예제 #1
0
            public void HandleResult(ZXing.Result rawResult)
            {
                //Wywal komunikacik co zeskanowało
                Toast.MakeText(qrakcja, "PK " + qrakcja.nrPunktu + " " + rawResult.ToString(), ToastLength.Long).Show();

                String dodany = qrakcja.nrPunktu + "-" + rawResult.ToString();

                //Toast.MakeText(qrakcja, dodany, ToastLength.Long).Show();

                //Zmień kolor przycisku
                if (Zarzadzanie.kodyLampionow.Find(x => x.StartsWith(nrPunktu + "-")) == null)
                {
                    Akcje.zmienKolor(nrPunktu, "green");
                }
                else
                {
                    Akcje.zmienKolor(nrPunktu, "yellow");
                }

                //Dodaj kod do bazy i zapisz grę
                Zarzadzanie.kodyLampionow.Add(dodany);
                Zarzadzanie.SaveGeme();
                qrakcja.Finish();
            }
예제 #2
0
        //Kończy grę
        static public string zakonczenie()
        {
            //ile znaleziono odpowiedzi do danego punktu
            int znaleziono;
            //ostatnia odpowiedź na karcie odpowiedzi dla danego punktu
            string kod;

            czyGraTrwa = false;
            karne      = 0;
            //odwracamy listę, bo brana jest pod uwagę ostatnia odpowiedź
            kodyLampionow.Reverse();
            czasZakonczenia   = DateTime.Now;
            calkowityCzas     = czasZakonczenia - czasRozpoczecia;
            minutaZakonczenia = minutaStartowa + calkowityCzas;

            //Punkty karne za spóźnienie
            if (calkowityCzas > limitCzasu)
            {
                if (calkowityCzas > limitSpoznien)
                {
                    karne += ileMinut(limitSpoznien - limitCzasu) + ileMinut(calkowityCzas - limitSpoznien) * 10;
                }
                else
                {
                    karne += ileMinut(calkowityCzas - limitCzasu);
                }
            }

            //Sprawdzanie poprawności kodów lampionów
            for (int i = 0; i < liczbaPunktow; i++)
            {
                znaleziono = kodyLampionow.Count(x => x.StartsWith(i + 1 + "-"));

                if (znaleziono == 0)
                {
                    //Nie odnotowano żadnego kodu
                    karne += 90;
                    Akcje.zmienKolor((i + 1).ToString(), "black");
                }
                else
                {
                    //Punkty karne za naniesione poprawki
                    karne += (znaleziono - 1) * 10;
                    kod    = kodyLampionow.Find(x => x.StartsWith(i + 1 + "-"));

                    if (kod == wzorcowka[i, 0])
                    {
                        //Prawidłowy lampion
                        Akcje.zmienKolor((i + 1).ToString(), "green");
                    }
                    else
                    {
                        for (int j = 1; j < liczbaLampNaPunkt; j++)
                        {
                            if (kod == wzorcowka[i, j])
                            {
                                //Stowarzyszony
                                karne += 25;
                                Akcje.zmienKolor((i + 1).ToString(), "orange");
                                break;
                            }
                            else if (j == 9)
                            {
                                //Mylny
                                karne += 90 + 60;
                                Akcje.zmienKolor((i + 1).ToString(), "red");
                            }
                        }
                    }
                }
            }
            //Odwracamy listę do normalnej kolejności
            kodyLampionow.Reverse();
            //Zapisz grę
            return(SaveGeme());
        }
예제 #3
0
        //Ustaw kolory zgodnie z listą
        public static void ustawKolory()
        {
            //ile znaleziono odpowiedzi do danego punktu
            int znaleziono;


            if (czyGraTrwa)
            {
                for (int i = 0; i < liczbaPunktow; i++)
                {
                    znaleziono = kodyLampionow.Count(x => x.StartsWith(i + 1 + "-"));
                    if (znaleziono == 0)
                    {
                        Akcje.zmienKolor((i + 1).ToString(), "light_gray");
                    }
                    else if (znaleziono == 1)
                    {
                        Akcje.zmienKolor((i + 1).ToString(), "green");
                    }
                    else
                    {
                        Akcje.zmienKolor((i + 1).ToString(), "yellow");
                    }
                }
            }
            else
            {
                //ostatnia odpowiedź na karcie odpowiedzi dla danego punktu
                string kod;
                //odwracamy listę, bo brana jest pod uwagę ostatnia odpowiedź
                kodyLampionow.Reverse();

                //Sprawdzanie poprawności kodów lampionów
                for (int i = 0; i < liczbaPunktow; i++)
                {
                    znaleziono = kodyLampionow.Count(x => x.StartsWith(i + 1 + "-"));

                    if (znaleziono == 0)
                    {
                        //Nie odnotowano żadnego kodu
                        Akcje.zmienKolor((i + 1).ToString(), "black");
                    }
                    else
                    {
                        kod = kodyLampionow.Find(x => x.StartsWith(i + 1 + "-"));

                        if (kod == wzorcowka[i, 0])
                        {
                            //Prawidłowy lampion
                            Akcje.zmienKolor((i + 1).ToString(), "green");
                        }
                        else
                        {
                            for (int j = 1; j < liczbaLampNaPunkt; j++)
                            {
                                if (kod == wzorcowka[i, j])
                                {
                                    //Stowarzyszony
                                    Akcje.zmienKolor((i + 1).ToString(), "orange");
                                    break;
                                }
                                else if (j == 9)
                                {
                                    //Mylny
                                    Akcje.zmienKolor((i + 1).ToString(), "red");
                                }
                            }
                        }
                    }
                }
                //Odwracamy listę do normalnej kolejności
                kodyLampionow.Reverse();
            }
        }