public Carta Joga(Vaza vaza) { for (int i = 0; i < mao.Count; i++) { if (mao[i] != null && mao[i].naipe == vaza.NaipeVaza()) { tempPosicao = i; return mao[i]; } } if (HasCards()) { for (int i = 0; i < mao.Count; i++) { if (mao[i] != null) { tempPosicao = i; return mao[i]; } } } return null; }
public Carta Joga(Vaza vaza) { throw new NotImplementedException(); }
private IPlayer VazaWin(Vaza vaza, NAIPE trunfo) { if (VazaComplete()) { NAIPE naipeVaza = vaza.jogadas[0].carta.naipe; Jogada jogadaMaior = vaza.jogadas[0]; int pontos = 0; foreach (Jogada jogada in vaza.jogadas) { pontos += jogada.carta.pontos; if (jogada.carta.naipe == trunfo) { naipeVaza = trunfo; } if (jogadaMaior.carta.naipe != naipeVaza) jogadaMaior = null; if (jogadaMaior == null || (jogada.carta.identificador > jogadaMaior.carta.identificador && naipeVaza == jogada.carta.naipe)) { jogadaMaior = jogada; } } int equipa = 0; equipa = (jogadaMaior.jogador.ID == 0 || jogadaMaior.jogador.ID == 1) ? 0 : 1; this.equipas[equipa].pontosPartida += pontos; if (ChangePoints != null) { ChangePoints(equipa, this.equipas[equipa].pontosPartida); } return jogadaMaior.jogador; } return null; }