コード例 #1
0
        /// <summary>
        /// Exibe o tabuleiro.
        /// </summary>
        /// <returns>Retorna o tabuleiro.</returns>
        public string ExibirTabuleiro(string idPartida)
        {
            if (idPartida.Equals("") || (_idPartida = Convert.ToInt32(idPartida)) == 0)
            {
                Erros.MensagemErro("idpartida");
                return("Erro ao mostrar tabuleiro");
            }

            string quebraTexto = Jogo.ExibirTabuleiro(Convert.ToInt32(idPartida));

            if (quebraTexto == "ERRO:Partida não está em Jogo\r\n")
            {
                Erros.MensagemErro("partidaaberta");
                return("Erro ao mostrar tabuleiro");
            }
            else if (quebraTexto == "ERRO:Partida Inexistente\r\n")
            {
                Erros.MensagemErro("partidainexistente");
                return("Erro ao mostrar tabuleiro");
            }

            string[] words = new string[36];
            words = quebraTexto.Split(',');
            return(Jogo.ExibirTabuleiro(_idPartida));
        }
コード例 #2
0
        /// <summary>
        /// Pula a jogada.
        /// </summary>
        /// <returns>Retorna a jogada.</returns>
        public string PularJogada(string idJogador, string senhaJogador)
        {
            if (idJogador == string.Empty)
            {
                Erros.MensagemErro("idjogador");
                return("Erro ao pular jogada.");
            }
            else if (senhaJogador == string.Empty)
            {
                Erros.MensagemErro("senhajogador");
                return("Erro ao pular jogada.");
            }
            _idJogador    = Convert.ToInt32(idJogador);
            _senhaJogador = senhaJogador;
            _movimento    = Jogo.Jogar(_idJogador, _senhaJogador);

            if (_movimento == "ERRO:Não é a vez deste jogador")
            {
                Erros.MensagemErro("vezinvalida");
                return("Só é possível jogar quando for sua vez!");
            }
            else if (_movimento == "ERRO:Senha do jogador inválida")
            {
                Erros.MensagemErro("senhaincorreta");
                return("Por favor, digite a senha correta.");
            }
            return(_movimento);
        }
コード例 #3
0
        /// <summary>
        /// Método responsável por criar partidas através de nome e senha. Apenas a Classe pode fazer uso
        /// </summary>
        /// <param name="nomePartida">Nome da Partida a ser criada.</param>
        /// <param name="senhaPartida">Senha a ser utilizada da partida.</param>
        /// <returns>Retorna o ID da partida.</returns>
        public int CriarPartida(string nomePartida, string senhaPartida)
        {
            if (nomePartida == string.Empty)
            {
                Erros.MensagemErro("nomepartida");
                return(0);
            }
            else if (senhaPartida == string.Empty)
            {
                Erros.MensagemErro("senhapartida");
                return(0);
            }

            _senhaPartida = senhaPartida;
            string partida = Jogo.CriarPartida(nomePartida, _senhaPartida);

            if (partida == "ERRO: Partida já existente")
            {
                Erros.MensagemErro("nomeexistente");
                return(0);
            }
            else if (partida == "ERRO:Nome da partida com mais que 20 caracteres")
            {
                Erros.MensagemErro("limite20caracteres");
                return(0);
            }
            _idPartida = Convert.ToInt32(partida);
            Erros.MensagemSucesso("partidacriada");
            return(_idPartida);
        }
コード例 #4
0
        /// <summary>
        /// Move um pirata para a frente.
        /// </summary>
        /// <param name="carta">Qual o tipo de objeto vai utilizar o jogador.</param>
        /// <param name="posicao">Posição numerica do mapa.</param>
        /// <returns>Retorna a posição jogada.</returns>
        public string MoverPirata(string carta, string posicao)
        {
            if (posicao == string.Empty)
            {
                Erros.MensagemErro("posicaoinvalida");
                return("Erro ao mover pirata.");
            }
            _posicao = Convert.ToInt32(posicao);
            switch (carta)
            {
            case "Esqueleto":
                return(Jogo.Jogar(_idJogador, _senhaJogador, _posicao, "E"));

            case "Chave":
                return(Jogo.Jogar(_idJogador, _senhaJogador, _posicao, "C"));

            case "Garrafa":
                return(Jogo.Jogar(_idJogador, _senhaJogador, _posicao, "G"));

            case "Pistola":
                return(Jogo.Jogar(_idJogador, _senhaJogador, _posicao, "P"));

            case "Tricórnio":
                return(Jogo.Jogar(_idJogador, _senhaJogador, _posicao, "T"));

            case "Faca":
                return(Jogo.Jogar(_idJogador, _senhaJogador, _posicao, "F"));
            }
            Erros.MensagemErro("cartanaoinformada");
            return("Erro ao mover pirara.");
        }
コード例 #5
0
 /// <summary>
 /// Verifica a vez do jogador.
 /// </summary>
 /// <returns>Retorna a vez do jogador.</returns>
 public string VerificarVez(string idPartida)
 {
     if (_idPartida == 0 || idPartida.Equals(""))
     {
         Erros.MensagemErro("idpartida");
         return("Erro ao verificar vez");
     }
     _idPartida = Convert.ToInt32(idPartida);
     return(Jogo.VerificarVez(_idPartida));
 }
コード例 #6
0
 /// <summary>
 /// Método responsável por listar os jogadores de uma partida através de seu ID.
 /// Apenas a Classe pode fazer uso.
 /// </summary>
 /// <param name="idPartida">ID da partida</param>
 /// <returns>Retorna informações sobre jogadores</returns>
 public string ListarJogadores(string idPartida)
 {
     if (_idPartida == 0 || idPartida.Equals(""))
     {
         Erros.MensagemErro("idpartida");
         return("Erro ao listar jogadores");
     }
     _idPartida = Convert.ToInt32(idPartida);
     return(Jogo.ListarJogadores(_idPartida));
 }
コード例 #7
0
        public bool statusJogador(string idpartida, string idJogador)
        {
            Queue <string> fila = new Queue <string>(this.VerificarVez(idpartida).Replace("\r\n", ",").Split(','));

            fila.Dequeue();
            if (idJogador == null)
            {
                Erros.MensagemErro("idjogador");
                return(false);
            }
            return(fila.Dequeue() == idJogador);
        }
コード例 #8
0
        //public void DesenharPiratas()
        //{
        //    Stack<string> idJogadores = new Stack<string>(lobby.ListarJogadores(txtIdPartida.Text).Replace(("\r\n"),(",")).Split(','));
        //    idJogadores.Pop();
        //    string[] ids = new string[idJogadores.Count()/3];
        //    int i = idJogadores.Count();
        //    for(; idJogadores.Count != 0;)
        //    {
        //        for (int j = 0; j<2; j++) idJogadores.Pop();
        //        i = i - 3;
        //        ids[i/3] = idJogadores.Pop();
        //    }
        //    //MessageBox.Show(ids.Count().ToString());
        //    Queue<string>  piratas = new Queue<string>(lobby.ExibeHistorico(txtIdPartida.Text).Replace(("\r\n"),(",")).Split(','));

        //    //MessageBox.Show(piratas.Dequeue());
        //    /*string posicao;
        //    string[] words = new string[200];
        //    words = quebraTexto.Replace("\r\n", ",").Split(',');
        //    int j = 1;
        //    for (int i = 3; i <= 130; i = i + 3)
        //    {
        //        posicao = words[i];
        //        this.pictureBox2.Image = vermelho;
        //        this.pictureBox2.Location = new System.Drawing.Point(
        //                ((PictureBox)this.Controls.Find("pic" + posicao.ToString(), true)[0]).Location.X,
        //                ((PictureBox)this.Controls.Find("pic" + posicao.ToString(), true)[0]).Location.Y);
        //        this.pictureBox2.Name = "pirate" + j.ToString();
        //        this.pictureBox2.Size = new System.Drawing.Size(15, 15);
        //        this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
        //        this.pictureBox2.TabIndex = 122;
        //        this.pictureBox2.TabStop = false;
        //        MessageBox.Show(words[i]);
        //        j++;
        //    }
        //    */
        //}

        public void DesenharTabuleiro()
        {
            string quebraTexto = lobby.ExibirTabuleiro(txtIdPartida.Text);

            if (quebraTexto.Equals("ERRO:Partida não está em jogo\r\n"))
            {
                Erros.MensagemErro("partidaaberta");
                return;
            }
            string simbolo;
            string posicao;

            string[] words = new string[190];

            if (quebraTexto != "Erro ao mostrar tabuleiro")
            {
                words = quebraTexto.Replace("\r\n", ",").Split(',');
                int j = 1;
                for (int i = 2; i <= 72; i = i + 2)
                {
                    posicao = words[i];
                    simbolo = words[i + 1];
                    if (simbolo == "C")
                    {
                        ((PictureBox)this.Controls.Find("pic" + j.ToString(), true)[0]).Image = chave;
                    }
                    else if (simbolo == "E")
                    {
                        ((PictureBox)this.Controls.Find("pic" + j.ToString(), true)[0]).Image = esqueleto;
                    }
                    else if (simbolo == "F")
                    {
                        ((PictureBox)this.Controls.Find("pic" + j.ToString(), true)[0]).Image = faca;
                    }
                    else if (simbolo == "T")
                    {
                        ((PictureBox)this.Controls.Find("pic" + j.ToString(), true)[0]).Image = tricornio;
                    }
                    else if (simbolo == "P")
                    {
                        ((PictureBox)this.Controls.Find("pic" + j.ToString(), true)[0]).Image = pistola;
                    }
                    else if (simbolo == "G")
                    {
                        ((PictureBox)this.Controls.Find("pic" + j.ToString(), true)[0]).Image = garrafa;
                    }
                    ((PictureBox)this.Controls.Find("pic" + j.ToString(), true)[0]).BackColor = Color.FromArgb(210, 187, 137);
                    ((PictureBox)this.Controls.Find("pic" + j.ToString(), true)[0]).Visible   = true;
                    j++;
                }
            }
        }
コード例 #9
0
        /// <summary>
        /// Exibe o historico de jogadas.
        /// </summary>
        /// <returns>Retorna o historico de jogadas.</returns>
        public string ExibeHistorico(string idPartida)
        {
            if (idPartida.Equals("") || (_idPartida = Convert.ToInt32(idPartida)) == 0 || idPartida.Equals("Erro"))
            {
                Erros.MensagemErro("idpartida");
                return("Erro exibir histórico");
            }
            //string historico =  (_idPartida);
            //if (historico == "ERRO:Partida não está em andamento")
            //{
            //    Erros.MensagemErro("partidaaberta");
            //    return "Erro ao exibir histórico";
            //}

            return(Jogo.ExibirHistorico(_idPartida));
        }
コード例 #10
0
        /// <summary>
        /// Método responsável por Exibir o que tem disponivel de cartas.
        /// Apenas a Classe pode fazer uso
        /// </summary>
        /// <param name="idJogador">ID do jogador</param>
        /// <param name="senhaJogador">Senha do jogador</param>
        /// <returns>Retorna informações de cartas do Jogo.</returns>
        public string ExibirMao(string idJogador, string senhaJogador)
        {
            if (idJogador == string.Empty)
            {
                Erros.MensagemErro("idjogador");
                return("Erro ao exibir mão do jogador");
            }

            else if (senhaJogador == string.Empty)
            {
                Erros.MensagemErro("senhajogador");
                return("Erro ao exibir mão do jogador");
            }
            _idJogador    = Convert.ToInt32(idJogador);
            _senhaJogador = senhaJogador;
            return(Jogo.ConsultarMao(_idJogador, _senhaJogador));
        }
コード例 #11
0
 /// <summary>
 /// Método responsável por iniciar uma partidas. Apenas a Classe pode fazer uso
 /// </summary>
 /// <param name="idJogador">Nome da Partida a ser criada.</param>
 /// <param name="senhaJogador">Senha a ser utilizada da partida.</param>
 /// <returns>Retorna os dados da partida.</returns>
 public string IniciarPartida(string idJogador, string senhaJogador)
 {
     if (idJogador == string.Empty)
     {
         Erros.MensagemErro("idjogador");
         return("Erro ao iniciar partida");
     }
     else if (senhaJogador == string.Empty)
     {
         Erros.MensagemErro("senhajogador");
         return("Erro ao iniciar partida");
     }
     _idJogador    = Convert.ToInt32(idJogador);
     _senhaJogador = senhaJogador;
     Erros.MensagemSucesso("partidainiciada");
     return(Jogo.IniciarPartida(_idJogador, _senhaJogador));
 }
コード例 #12
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);
        }
コード例 #13
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);
                }
            }
        }
コード例 #14
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);
        }