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); }
private void LimparMesa() { PecasColocadas.ForEach(delegate(Image pc) { Tabela.Children.Remove(pc); }); }
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; } }