예제 #1
0
        public override bool Turno(int j, int i)
        {
            if (i >= 0 && i <= 2 && maos[j, i] != null)
            {
                TurnoAtual++;
                if (TurnoAtual % 4 == 1)
                {
                    LimparMesa();
                    cartaForte   = maos[j, i];
                    jogadorForte = j;

                    JogarCarta(maos[j, i], j, 1);
                }
                else if ((cartaForte.Classe == maos[j, i].Classe && (maos[j, i].Id - 1) % 10 > (cartaForte.Id - 1) % 10) ||
                         cartaForte.Classe != mesa.Classe && maos[j, i].Classe == mesa.Classe)
                {
                    cartaForte   = maos[j, i];
                    jogadorForte = j;

                    PecasColocadas.ForEach(delegate(Image pc)
                    {
                        pc.Opacity = 0.3;
                    });

                    JogarCarta(maos[j, i], j, 1);
                }
                else
                {
                    JogarCarta(maos[j, i], j, 0.3);
                }

                // Guardar a posição da carta que foi jogada para enviar a nova
                posJogadas[j] = i;
                pontosJogada += maos[j, i].Pontos;

                // Eliminar carta da mão
                maos[j, i] = null;
                Informar("M,PRIV," + Jogadores[j].Id + ",0," + i);

                if (TurnoAtual % 4 == 0)
                {
                    pontuacao[Jogadores[jogadorForte].Equipa - 1] += pontosJogada;
                    pontosJogada = 0;

                    int g;
                    for (int f = 0; f <= 3; f++)
                    {
                        g = (jogadorForte + f) % 4;
                        DarCarta(g, posJogadas[g]);
                    }
                    Proximo = jogadorForte;
                }
                else
                {
                    Proximo = (Proximo + 1) % 4;
                }
                return(true);
            }
            return(false);
        }
예제 #2
0
 private void LimparMesa()
 {
     PecasColocadas.ForEach(delegate(Image pc)
     {
         Tabela.Children.Remove(pc);
     });
 }
예제 #3
0
        public override void Fim()
        {
            PecasColocadas.ForEach(delegate(Image pc)
            {
                Tabela.Children.Remove(pc);
            });
            switch (Vencedor)
            {
            case 0:
                Tabuleiro.Source = new BitmapImage(new Uri("ms-appx:///Assets/empate.png"));
                break;

            case 1:
                Tabuleiro.Source = new BitmapImage(new Uri("ms-appx:///Assets/vermelha.png"));
                break;

            case 2:
                Tabuleiro.Source = new BitmapImage(new Uri("ms-appx:///Assets/preta.png"));
                break;
            }
        }