internal void FinalizarRodada(List <Jogador> jogadores) { var primeiroJogadorAnalisado = true; var apostasDosUltimosPotes = new Dictionary <int, int>(); foreach (var jogador in jogadores.OrderBy(j => j.FichasApostadasNaRodada)) { var fichasApostadas = jogador.FichasApostadasNaRodada; foreach (var apostas in apostasDosUltimosPotes) { Potes.Where(p => p.Id == apostas.Key).First().AdicionarFichas(jogador.Id, apostas.Value); fichasApostadas -= apostas.Value; } if (apostasDosUltimosPotes.Count == 0 || fichasApostadas > 0) { Pote pote = Potes.LastOrDefault(); if (!primeiroJogadorAnalisado || pote == null) { pote?.Fechar(); pote = new Pote((pote?.Id ?? 0) + 1); Potes.Add(pote); } apostasDosUltimosPotes.Add(pote.Id, fichasApostadas); pote.AdicionarFichas(jogador.Id, fichasApostadas); } primeiroJogadorAnalisado = false; jogador.ZerarFichasApostadasNaRodada(); } }
public void DeveFecharPote() { var poteGerado = new Pote(1); Assert.True(poteGerado.Aberto); poteGerado.Fechar(); Assert.False(poteGerado.Aberto); }
public void DeveReceberFichasDoJogadorQueNaoEstaNoPote() { var idJogador = 1; var fichasEsperadas = 100; var poteGerado = new Pote(1); poteGerado.AdicionarFichas(idJogador, fichasEsperadas); Assert.Equal(fichasEsperadas, poteGerado.Fichas); Assert.Equal(fichasEsperadas, poteGerado.FichasMinimaDoPote); Assert.Contains(poteGerado.JogadoresNoPote, j => j == idJogador); }
public void DeveCriarPote() { var poteEsperado = new { Id = 1, Fichas = 0, FichasMinimaDoPote = 0, Aberto = true }; var poteGerado = new Pote(1); poteEsperado.ToExpectedObject().ShouldMatch(poteGerado); }
private void Inicializar() { Potes = new Pote[parametrosCampeonato.QuantidadePotes + 1]; for (int i = 1; i <= parametrosCampeonato.QuantidadePotes; i++) { Potes[i] = new Pote(nome: $"Pote {i}", tamanho: parametrosCampeonato.TamanhoPotes); } Grupos = new Grupo[parametrosCampeonato.QuantidadeGrupos + 1]; for (int i = 1; i <= parametrosCampeonato.QuantidadeGrupos; i++) { Grupos[i] = new Grupo(nome: $"Grupo {i}", tamanho: parametrosCampeonato.TamanhoGrupos); } }
public void DeveReceberFichasDoJogadorQueJaEstaNoPote() { var idJogador = 1; var fichasPrimeiraAposta = 100; var fichasSegundaAposta = 150; var fichasEsperadas = fichasPrimeiraAposta + fichasSegundaAposta; var poteGerado = new Pote(1); poteGerado.AdicionarFichas(idJogador, fichasPrimeiraAposta); poteGerado.AdicionarFichas(idJogador, fichasSegundaAposta); Assert.Equal(fichasEsperadas, poteGerado.Fichas); Assert.Equal(fichasSegundaAposta, poteGerado.FichasMinimaDoPote); Assert.Contains(poteGerado.JogadoresNoPote, j => j == idJogador); }
public static void Ex3() { Pote poteGrande = new Pote("Pote Grande"); Pote poteMedio = new Pote("Pote Médio"); Pote potePequeno = new Pote("Pote Pequeno"); Biscoito biscoito = new Biscoito("Biscoito de Morango"); Biscoito bolo = new Biscoito("Bolo de Chocolate"); poteGrande.AdicionarConteudo(poteMedio); poteMedio.AdicionarConteudo(potePequeno); potePequeno.AdicionarConteudo(biscoito); potePequeno.AdicionarConteudo(bolo); }