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(); }
//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()); }
//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(); } }