/// <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); }
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); } } }
/// <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); }