/// <summary> /// Inverte a ordem sequencial de jogada /// </summary> private void Inverter() { Turno turno = this.eng.Roda; Lista <Player> jogadores = turno.Jogadores; switch (turno.GetSentido()) { case SentidoJogada.Horario: turno.SetSentido(SentidoJogada.AntiHorario); Log.AddEventoInverterJogo(); break; case SentidoJogada.AntiHorario: turno.SetSentido(SentidoJogada.Horario); Log.AddEventoInverterJogo(); break; } }
/// <summary> /// Bloqueia o próximo jogador na lista /// </summary> private void Bloquear() { Turno turno = this.eng.Roda; Lista <Player> jogadores = turno.Jogadores; switch (turno.GetSentido()) { case SentidoJogada.Horario: if (jogadores.GetIndexOf(turno.GetCurrentPlayer()) + 2 >= jogadores.Count) { turno.SetCurrentPlayer(jogadores[0]); Log.AddEventoBloquearJogador(turno.GetCurrentPlayer()); } else { turno.SetCurrentPlayer(jogadores[jogadores.GetIndexOf(turno.GetCurrentPlayer()) + 2]); Log.AddEventoBloquearJogador(turno.GetCurrentPlayer()); } break; case SentidoJogada.AntiHorario: if (jogadores.GetIndexOf(turno.GetCurrentPlayer()) - 2 < 0) { turno.SetCurrentPlayer(jogadores[jogadores.Count - 1]); Log.AddEventoBloquearJogador(turno.GetCurrentPlayer()); } else { turno.SetCurrentPlayer(jogadores[jogadores.GetIndexOf(turno.GetCurrentPlayer()) - 1]); Log.AddEventoBloquearJogador(turno.GetCurrentPlayer()); } break; } }