예제 #1
0
        private static int RolarDadoMago(int numeroDeLadosDado)
        {
            int valorDoDadoJogado = Dado.Rolar(numeroDeLadosDado);

            if (valorDoDadoJogado * 100 / numeroDeLadosDado > 70)
            {
                return(valorDoDadoJogado);
            }

            return(RolarDadoMago(numeroDeLadosDado));
        }
예제 #2
0
        private Combatentes QuemComeca()
        {
            int valorDadoPersonagem = Dado.Rolar(10);
            int valorDadoMonstro    = Dado.Rolar(10);

            if (valorDadoPersonagem >= valorDadoMonstro)
            {
                return(Combatentes.Personagem);
            }

            return(Combatentes.Monstro);
        }
예제 #3
0
        public Operacao RolarDados(int idJogadorSala, int idSala)
        {
            var jogadorSala = _jogadorSalaBusiness.Obter(idJogadorSala);

            if (jogadorSala == default && jogadorSala.IdSala != idSala)
            {
                return(new Operacao("Jogador não encontrado", false));
            }

            var sala = _salaBusiness.Obter(jogadorSala.IdSala);

            if (sala == default)
            {
                return(new Operacao("Sala não encotrada", false));
            }

            var crime = _crimeBusiness.Obter(sala.Id);

            if (crime == default)
            {
                return(new Operacao("Crime não encotrada", false));
            }

            if (crime.Solucionado())
            {
                return(new Operacao("A partida acabou, o caso já foi solucionado", false));
            }

            if (!jogadorSala.Jogando)
            {
                return(new Operacao("Jogador não está mais jogando", false));
            }

            if (!jogadorSala.MinhaVez())
            {
                return(new Operacao("Não está na vez desse jogador.", false));
            }

            if (jogadorSala.RolouDados)
            {
                return(new Operacao("O jogador já rolou os dados.", false));
            }

            jogadorSala.AlterarQuantidadeMovimento(_dado.Rolar());
            var jogador = _jogadorBusiness.Obter(jogadorSala.IdJogador);

            _historicoBusiness.Adicionar(new Historico(idSala, $"O jogador {jogador.Descricao} obteve {jogadorSala.QuantidadeMovimento} na rolagem dos dados."));
            _jogadorSalaBusiness.Alterar(jogadorSala);

            return(new Operacao("Operação realizada com sucesso."));
        }
예제 #4
0
        public int Defender(int ataqueRecebido)
        {
            int defesaAtual = Dado.Rolar(Defesa);

            Console.WriteLine($"{Nome} defendeu com {defesaAtual}");
            Thread.Sleep(2000);

            int danoRecebido = ataqueRecebido - defesaAtual;

            if (danoRecebido > 0)
            {
                Vida = Vida - danoRecebido;
            }

            if (Vida < 0)
            {
                Vida = 0;
            }

            return(danoRecebido);
        }
예제 #5
0
 public static int Ataque()
 {
     return(Dado.Rolar(15));
 }
예제 #6
0
 public static int Vida()
 {
     return(Dado.Rolar(20));
 }
예제 #7
0
 public static int Defesa()
 {
     return(Dado.Rolar(15));
 }
예제 #8
0
 public int Atacar()
 {
     return(Dado.Rolar(Ataque));
 }
        private void btnRolar_Click(object sender, EventArgs e)
        {
            try
            {
                Id    = Convert.ToInt32(txtId.Text);
                Dados = Convert.ToInt32(txtDados.Text);
                Lados = Convert.ToInt32(txtLados.Text) + 1;
                bool checkID = CheckID(Id);
                if (checkID == false)
                {
                    MessageBox.Show($"O id {Id} não existe!", "NOT FOUND!");
                    txtId.Text = "";
                    return;
                }
                if (Dados < 1)
                {
                    MessageBox.Show("Deve ter no mínimo 1 dado", "ERRO!");
                    return;
                }
                if (Lados < 3)
                {
                    MessageBox.Show("Um dado deve ter no mínimo 3 lados", "ERRO!");
                    return;
                }
                int id = Convert.ToInt32(txtId.Text);
                con.Open();
                string        pesquisaDescricao = $"SELECT * FROM Ficha WHERE Id = '{id}'";
                SqlCommand    Command           = new SqlCommand(pesquisaDescricao, con.conectar());
                SqlDataReader leitor            = Command.ExecuteReader();
                string        tenta             = "";

                while (leitor.Read())
                {
                    tenta = leitor["Tentativas"].ToString();
                }
                int tentativa = Convert.ToInt32(tenta);
                Tentativas         = tentativa;
                txtTentativas.Text = Convert.ToString(Tentativas);
                con.Close();

                int soma = 0;
                txtRolagem.Clear();
                for (int i = 1; i <= Dados; i++)
                {
                    if (Tentativas == 0)
                    {
                        MessageBox.Show("Você não possui tentativas!");
                        return;
                    }
                    int rolagem = dado.Rolar(Lados);
                    soma            += rolagem;
                    txtRolagem.Text += $"- O {i}° dado rolou {rolagem}{Environment.NewLine}";
                }
                Tentativas        -= 1;
                txtTentativas.Text = Convert.ToString(Tentativas);
                txtTotal.Text      = Convert.ToString(soma);
                string     nomeJogador = GetNomeJogador(Id);
                SqlCommand com         = new SqlCommand($"UPDATE Ficha SET Tentativas = {Tentativas} WHERE Id = {Id}\n" +
                                                        $"UPDATE Roll SET dados ={Dados},lados = {Lados}, Nome = '{nomeJogador}', soma = {soma} WHERE Id = 1", con.conectar());
                con.Open();
                com.ExecuteNonQuery();
                con.Close();

                return;
            }
            catch (FormatException)
            {
                MessageBox.Show("Valores devem ser somente numeros inteiros!", "ERRO");
                return;
            }
            catch (OverflowException)
            {
                MessageBox.Show("Id muito grande!", "ERRO");
                return;
            }
            catch (SqlException)
            {
                MessageBox.Show("Erro de banco de dados!", "ERRO");
                return;
            }
        }