예제 #1
0
        /// <summary>
        /// Método responsável por mover o pirata para trás, caso tenha até 2 piratas na posição
        ///  mais próxima e a posição não seja a inicial.
        /// Apenas a Classe pode fazer uso.
        /// </summary>
        /// <param name="idJogador">ID da partida</param>
        /// <param name="senhaJogador">ID da partida</param>
        /// <param name="posicao">ID da partida</param>
        /// <returns>Retorna informações sobre jogadores</returns>
        public string MoverPirata(string idJogador, string senhaJogador, string posicao)
        {
            if (idJogador == string.Empty)
            {
                Erros.MensagemErro("idjogador");
                return("");
            }

            else if (senhaJogador == string.Empty)
            {
                Erros.MensagemErro("senhajogador");
                return("");
            }
            else if (posicao == string.Empty)
            {
                Erros.MensagemErro("posicaoinvalida");
                return("Posição invalida");
            }

            _idJogador    = Convert.ToInt32(idJogador);
            _senhaJogador = senhaJogador;
            _posicao      = Convert.ToInt32(posicao);
            _movimento    = Jogo.Jogar(_idJogador, _senhaJogador, _posicao);

            if (_movimento == "ERRO:Jogador não tem piratas na posição informada\r\n")
            {
                Erros.MensagemErro("posicaoinvalida");
                return("Posição invalida");
            }
            else if (_movimento == "ERRO:Senha incorreta")
            {
                Erros.MensagemErro("senhaincorreta");
                return("Por favor, digite a senha correta.");
            }
            return(_movimento);
        }
예제 #2
0
        private void btnSistema_Click(object sender, EventArgs e)
        {
            string idpartida = txtIdPartida.Text;

            if (lobby.statusJogo(idpartida) && lobby.ExibirMao(txtIdJogador.Text, txtSenhaJogador.Text) != "")
            {
                T.Enabled = true;
            }
            else
            {
                T.Enabled = false;
                return;
            }
            T.Interval = 2000;
            T.Tick    += new System.EventHandler(t_Timer);
            void t_Timer(object o, EventArgs x)
            {
                if (lobby.statusJogador(idpartida, txtIdJogador.Text))
                {
                    btnSistema.Text = "Rodando";
                    string mao = lobby.ExibirMao(txtIdJogador.Text, txtSenhaJogador.Text);

                    if (mao == "Erro ao exibir mão do jogador")
                    {
                        Erros.MensagemErro("");
                        btnSistema.Text = "Automatizar";
                        return;
                    }
                    if (mao == "")
                    {
                        MessageBox.Show("Jogo manual, falta cartas");
                        T.Enabled       = false;
                        btnSistema.Text = "Automatizar";
                        return;
                    }

                    Stack <string> words = new Stack <string>(mao.Replace("\r\n", ",").Split(','));
                    words.Pop();
                    words.Pop();
                    if (lobby.PrimeiraVezJogador(txtIdPartida.Text, txtIdJogador.Text))
                    {
                        lobby.Jooj(words.First(), Convert.ToInt32(txtIdJogador.Text), txtSenhaJogador.Text, 0);
                    }
                    Queue <string> fila = new Queue <string>(lobby.ExibeHistorico(txtIdPartida.Text).Replace("\r\n", ",").Split(','));
                    for (; fila.First() != txtIdJogador.Text && fila.Count != 1; fila.Dequeue())
                    {
                    }
                    if (fila.Count == 1)
                    {
                        T.Enabled = false;
                        return;
                    }
                    for (int i = 0; i < 3; i++)
                    {
                        fila.Dequeue();
                    }
                    while (fila.First() == "" && fila.Count <= 6)
                    {
                        for (; fila.First() != txtIdJogador.Text && fila.Count != 1; fila.Dequeue())
                        {
                        }
                        if (fila.Count == 1)
                        {
                            T.Enabled = false;
                            return;
                        }
                        for (int i = 0; i < 3; i++)
                        {
                            fila.Dequeue();
                        }
                        //MessageBox.Show(fila.First());
                    }
                    while (fila.First() == "37" && fila.Count <= 6)
                    {
                        for (; fila.First() != txtIdJogador.Text && fila.Count != 1; fila.Dequeue())
                        {
                        }
                        if (fila.Count == 1)
                        {
                            T.Enabled = false;
                            return;
                        }
                        for (int i = 0; i < 3; i++)
                        {
                            fila.Dequeue();
                        }
                        //MessageBox.Show(fila.First());
                    }
                    if (fila.First() == "")
                    {
                        lobby.MoverPirata(words.First(), "0");
                    }
                    if (fila.First() == "37")
                    {
                        T.Enabled = false;
                        MessageBox.Show("Todos os piratas estão no Barco");
                        btnSistema.Text = "Encerrado";
                        return;
                    }
                    lobby.Jooj(words.Pop(), Convert.ToInt32(txtIdJogador.Text), txtSenhaJogador.Text, Convert.ToInt32(fila.Dequeue()));
                    btnExibirHistorico_Click(null, null);
                    btnExibirMao_Click(null, null);
                    btnExibirTabuleiro_Click(null, null);
                    btnVerificarVez_Click(null, null);
                }
                else
                {
                    btnSistema.Text = "Em espera";
                    btnExibirHistorico_Click(null, null);
                    btnExibirMao_Click(null, null);
                    btnExibirTabuleiro_Click(null, null);
                    btnVerificarVez_Click(null, null);
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Método responsável por entrar em uma partida através do ID e senha da partida e nome do jogador.
        /// Apenas a Classe pode fazer uso
        /// </summary>
        /// <param name="nome">Nome da partida a ser criada</param>
        /// <returns></returns>
        public string EntrarPartida(/*string nome*/ string idPartida, string nomeJogador, string senhaPartida)
        {
            if (idPartida == string.Empty)
            {
                Erros.MensagemErro("idpartida");
                return("Erro");
            }

            else if (nomeJogador == string.Empty)
            {
                Erros.MensagemErro("nomejogador");
                return("Erro");
            }
            else if (senhaPartida == string.Empty)
            {
                Erros.MensagemErro("senhapartida");
                return("Erro");
            }
            _idPartida    = Convert.ToInt32(idPartida);
            _nomeJogador  = nomeJogador;
            _senhaPartida = senhaPartida;
            string quebraTexto = Jogo.EntrarPartida(_idPartida, _nomeJogador, _senhaPartida);

            if (quebraTexto == "ERRO:Quantidade máxima de jogadores atingida!\r\n")
            {
                Erros.MensagemErro("limitejogadores");
                return("Limite de jogadores atingido.");
            }
            else if (quebraTexto == "ERRO:Já existe um jogador com este nome na partida\r\n")
            {
                Erros.MensagemErro("jogadorjaexiste");
                return("Por favor, tente entrar com um nome diferente.");
            }
            else if (quebraTexto == "ERRO:Senha Incorreta!\r\n")
            {
                Erros.MensagemErro("senhaincorreta");
                return("Por favor, digite a senha correta.");
            }
            else if (quebraTexto == "ERRO:Id ou Senha da partida está vazio")
            {
                Erros.MensagemErro("");
                return("Erro");
            }
            else if (quebraTexto == "ERRO:Partida já iniciada!\r\n")
            {
                Erros.MensagemErro("partidainiciada");
                return("Não é possível entrar em uma partida que não está aberta.");
            }
            else if (quebraTexto == "ERRO:Nome com mais de 50 caracteres")
            {
                Erros.MensagemErro("limite50caracteres");
                return("O limite é de 50 caracteres.");
            }
            string[] words = new string[3];
            words         = quebraTexto.Split(',');
            _idJogador    = Convert.ToInt32(words[0]);
            _senhaJogador = words[1];
            _corJogador   = words[2];
            Erros.MensagemSucesso("jogadorcriado");
            return(_idJogador.ToString() + "," + _senhaJogador + "," + _corJogador);
        }