private void NastepnyGracz()
        {
            if (liczbaGraczy == 1)
            {
                //ruch komputera
                kosciDoRzucenia = new[] { 1, 1, 1, 1, 1 };
                Losowanko(kosciDoRzucenia, wartosciKosci);
                int[] tablicaWynikow = new int[13];
                tablicaWynikow[0]  = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 1);
                tablicaWynikow[1]  = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 2);
                tablicaWynikow[2]  = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 3);
                tablicaWynikow[3]  = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 4);
                tablicaWynikow[4]  = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 5);
                tablicaWynikow[5]  = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 6);
                tablicaWynikow[6]  = LiczeniePunktow.TrojkaKosci(wartosciKosci);
                tablicaWynikow[7]  = LiczeniePunktow.CzworkaKosci(wartosciKosci);
                tablicaWynikow[8]  = LiczeniePunktow.Full(wartosciKosci);
                tablicaWynikow[9]  = LiczeniePunktow.MalyStrit(wartosciKosci);
                tablicaWynikow[10] = LiczeniePunktow.DuzyStrit(wartosciKosci);
                tablicaWynikow[11] = LiczeniePunktow.Poker(wartosciKosci);
                tablicaWynikow[12] = LiczeniePunktow.Szansa(wartosciKosci);

                int j = 0;
                while (komputerWybory[j] == true)
                {
                    j++;
                }

                int max     = tablicaWynikow[j];
                int wybrany = j;

                for (int i = j; i < tablicaWynikow.Length; i++)
                {
                    if (komputerWybory[i] == false && tablicaWynikow[i] > max)
                    {
                        max     = tablicaWynikow[i];
                        wybrany = i;
                    }
                }

                bool f = false;
                if (punktyGraczy[aktualnyGracz, 1] < 63)
                {
                    f = true;
                }

                if (wybrany <= 5)
                {
                    punktyGraczy[1, 1] += max;
                }
                punktyGraczy[1, 0] += max;

                if (punktyGraczy[1, 1] >= 63 && f)
                {
                    punktyGraczy[1, 0] += 35;
                    bonusKomputer.Text  = "35";
                }

                wynikKomputer.Text      = punktyGraczy[1, 0].ToString();
                komputerWybory[wybrany] = true;
                switch (wybrany)
                {
                case 0:
                    w1.Content   = max;
                    w1.IsEnabled = false;
                    break;

                case 1:
                    w2.Content   = max;
                    w2.IsEnabled = false;
                    break;

                case 2:
                    w3.Content   = max;
                    w3.IsEnabled = false;
                    break;

                case 3:
                    w4.Content   = max;
                    w4.IsEnabled = false;
                    break;

                case 4:
                    w5.Content   = max;
                    w5.IsEnabled = false;
                    break;

                case 5:
                    w6.Content   = max;
                    w6.IsEnabled = false;
                    break;

                case 6:
                    w7.Content   = max;
                    w7.IsEnabled = false;
                    break;

                case 7:
                    w8.Content   = max;
                    w8.IsEnabled = false;
                    break;

                case 8:
                    w9.Content   = max;
                    w9.IsEnabled = false;
                    break;

                case 9:
                    w10.Content   = max;
                    w10.IsEnabled = false;
                    break;

                case 10:
                    w11.Content   = max;
                    w11.IsEnabled = false;
                    break;

                case 11:
                    w12.Content   = max;
                    w12.IsEnabled = false;
                    break;

                case 12:
                    w13.Content   = max;
                    w13.IsEnabled = false;
                    break;
                }
            }

            switch (aktualnyGracz)
            {
            case 0:
                gracz1.BorderBrush = new SolidColorBrush(Colors.Black);
                break;

            case 1:
                gracz2.BorderBrush = new SolidColorBrush(Colors.Black);
                break;

            case 2:
                gracz3.BorderBrush = new SolidColorBrush(Colors.Black);
                break;

            case 3:
                gracz4.BorderBrush = new SolidColorBrush(Colors.Black);
                break;
            }

            aktualnyGracz = (aktualnyGracz + 1) % liczbaGraczy;

            if (aktualnyGracz == 0)
            {
                kolejka++;
            }

            if (kolejka == 14)
            {
                //koniec gry
                int   max           = punktyGraczy[0, 0];
                int[] wygraniGracze = new int[liczbaGraczy];
                wygraniGracze[0] = 1;

                for (int i = 1; i < liczbaGraczy; i++)
                {
                    if (max <= punktyGraczy[i, 0])
                    {
                        if (max == punktyGraczy[i, 0])
                        {
                            wygraniGracze[i] = 1;
                        }
                        else
                        {
                            wygraniGracze    = new int[liczbaGraczy];
                            wygraniGracze[i] = 1;
                            max = punktyGraczy[i, 0];
                        }
                    }
                }

                string komunikat = "Wygrał ";

                if (liczbaGraczy != 1)
                {
                    bool flaga = false;
                    for (int i = 0; i < wygraniGracze.Length; i++)
                    {
                        if (wygraniGracze[i] == 1)
                        {
                            if (flaga)
                            {
                                komunikat = komunikat + (" i Gracz " + (i + 1));
                            }
                            else
                            {
                                komunikat = komunikat + ("Gracz " + (i + 1));
                                flaga     = true;
                            }
                        }
                    }
                    komunikat = komunikat + ".";
                }
                else
                {
                    if (punktyGraczy[0, 0] == punktyGraczy[1, 0])
                    {
                        komunikat = "Remis!";
                    }
                    else if (punktyGraczy[0, 0] > punktyGraczy[1, 0])
                    {
                        komunikat = "Wygrał Gracz 1.";
                    }
                    else
                    {
                        komunikat = "Wygrał komputer.";
                    }
                }

                var messageDialog = new MessageDialog(komunikat);
                messageDialog.Commands.Add(new UICommand("Nowa Gra", new UICommandInvokedHandler(this.NowaGra2)));
                messageDialog.Commands.Add(new UICommand("Wyjdź z gry", new UICommandInvokedHandler(this.WyjdzZGry)));
                messageDialog.DefaultCommandIndex = 0;
                messageDialog.CancelCommandIndex  = 1;
                messageDialog.ShowAsync();
            }
            else
            {
                switch (aktualnyGracz)
                {
                case 0:
                    gracz1.BorderBrush = new SolidColorBrush(Colors.Red);
                    break;

                case 1:
                    gracz2.BorderBrush = new SolidColorBrush(Colors.Red);
                    break;

                case 2:
                    gracz3.BorderBrush = new SolidColorBrush(Colors.Red);
                    break;

                case 3:
                    gracz4.BorderBrush = new SolidColorBrush(Colors.Red);
                    break;
                }
            }

            wartosciKosci   = new int[5];
            kosciDoRzucenia = new[] { 1, 1, 1, 1, 1 };
            WyswietlKosci(kosciDoRzucenia, wartosciKosci);
            rzutKoscmi.IsEnabled = true;
            rzut = 0;
        }
        private void PodajWynik(object sender, RoutedEventArgs e)
        {
            var przycisk            = (Button)sender;
            FrameworkElement siatka = (FrameworkElement)przycisk.Parent;
            int kolumna             = Grid.GetColumn(siatka);
            int wiersz = Grid.GetRow(przycisk);

            if (rzut <= 0 || kolumna != aktualnyGracz)
            {
                return;
            }

            int  punkty = 0;
            bool flaga  = false;

            if (punktyGraczy[aktualnyGracz, 1] < 63)
            {
                flaga = true;
            }

            switch (wiersz)
            {
            case 1:
                punkty = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 1);
                punktyGraczy[aktualnyGracz, 1] += punkty;
                break;

            case 2:
                punkty = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 2);
                punktyGraczy[aktualnyGracz, 1] += punkty;
                break;

            case 3:
                punkty = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 3);
                punktyGraczy[aktualnyGracz, 1] += punkty;
                break;

            case 4:
                punkty = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 4);
                punktyGraczy[aktualnyGracz, 1] += punkty;
                break;

            case 5:
                punkty = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 5);
                punktyGraczy[aktualnyGracz, 1] += punkty;
                break;

            case 6:
                punkty = LiczeniePunktow.PunktyZaKonkretneKostki(wartosciKosci, 6);
                punktyGraczy[aktualnyGracz, 1] += punkty;
                break;

            case 8:
                punkty = LiczeniePunktow.TrojkaKosci(wartosciKosci);
                break;

            case 9:
                punkty = LiczeniePunktow.CzworkaKosci(wartosciKosci);
                break;

            case 10:
                punkty = LiczeniePunktow.Full(wartosciKosci);
                break;

            case 11:
                punkty = LiczeniePunktow.MalyStrit(wartosciKosci);
                break;

            case 12:
                punkty = LiczeniePunktow.DuzyStrit(wartosciKosci);
                break;

            case 13:
                punkty = LiczeniePunktow.Poker(wartosciKosci);
                break;

            case 14:
                punkty = LiczeniePunktow.Szansa(wartosciKosci);
                break;
            }

            if (punktyGraczy[aktualnyGracz, 1] >= 63 && flaga)
            {
                punktyGraczy[aktualnyGracz, 0] += 35;

                switch (aktualnyGracz + 1)
                {
                case 1:
                    bonusGracz1.Text = "35";
                    break;

                case 2:
                    bonusGracz2.Text = "35";
                    break;

                case 3:
                    bonusGracz3.Text = "35";
                    break;

                case 4:
                    bonusGracz4.Text = "35";
                    break;
                }
            }

            punktyGraczy[aktualnyGracz, 0] += punkty;

            switch (aktualnyGracz + 1)
            {
            case 1:
                wynikGracz1.Text = punktyGraczy[aktualnyGracz, 0].ToString();
                break;

            case 2:
                wynikGracz2.Text = punktyGraczy[aktualnyGracz, 0].ToString();
                break;

            case 3:
                wynikGracz3.Text = punktyGraczy[aktualnyGracz, 0].ToString();
                break;

            case 4:
                wynikGracz4.Text = punktyGraczy[aktualnyGracz, 0].ToString();
                break;
            }

            przycisk.Content   = punkty;
            przycisk.IsEnabled = false;
            NastepnyGracz();
        }