예제 #1
0
 public Jogo(Jogador j1, Jogador j2, Tabuleiro t)
 {
     JogadorUm   = j1;
     JogadorDois = j2;
     Tabuleiro   = t;
 }
예제 #2
0
        private void V_Tabuleiro_PedidoFimDoJogo(Jogador j1, Jogador j2, int i)
        {
            Jogador jV, jP;

            if (i == 0)
            {
                jV = j1;
                jP = j2;
            }
            else if (i == 1)
            {
                jV = j2;
                jP = j1;
            }
            else
            {
                jV = j2;
                jP = j1;
            }


            var    folder        = AppDomain.CurrentDomain.BaseDirectory.Replace("\\bin\\Debug", "\\Base de dados");
            string sqlConnection = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=" + folder + "DamasDataBase.mdf"
                                   + ";Integrated Security=True";
            SqlConnection server = new SqlConnection(sqlConnection);

            server.Open();



            if (jV is Robot)
            {
                string        cmdText = string.Format("SELECT * FROM Jogador WHERE jogador_id = '{0}'", ((Pessoa)jP).Id);
                SqlCommand    command = new SqlCommand(cmdText, server);
                SqlDataReader dados   = command.ExecuteReader();
                dados.Read();
                int derrotas = Convert.ToInt32(dados["jogador_derrotas"]);
                int empates  = Convert.ToInt32(dados["jogador_empates"]);
                dados.Close();

                string comando;
                int    resultado;

                if (i == 2)
                {
                    comando   = String.Format("UPDATE Jogador SET jogador_empates = '{0}' WHERE jogador_id = '{1}'", empates++, ((Pessoa)jP).Id);
                    command   = new SqlCommand(comando, server);
                    resultado = command.ExecuteNonQuery();
                }
                else
                {
                    comando   = String.Format("UPDATE Jogador SET jogador_derrotas = '{0}' WHERE jogador_id = '{1}'", derrotas++, ((Pessoa)jP).Id);
                    command   = new SqlCommand(comando, server);
                    resultado = command.ExecuteNonQuery();
                }

                server.Close();
            }
            else if (jP is Robot)
            {
                string        cmdText = string.Format("SELECT * FROM Jogador WHERE jogador_id = '{0}'", ((Pessoa)jV).Id);
                SqlCommand    command = new SqlCommand(cmdText, server);
                SqlDataReader dados   = command.ExecuteReader();
                dados.Read();
                int vitorias = Convert.ToInt32(dados["jogador_vitorias"]);
                int empates  = Convert.ToInt32(dados["jogador_empates"]);
                dados.Close();

                string comando;
                int    resultado;

                if (i == 2)
                {
                    comando   = String.Format("UPDATE Jogador SET jogador_empates = '{0}' WHERE jogador_id = '{1}'", empates++, ((Pessoa)jV).Id);
                    command   = new SqlCommand(comando, server);
                    resultado = command.ExecuteNonQuery();
                }
                else
                {
                    comando   = String.Format("UPDATE Jogador SET jogador_vitorias = '{0}' WHERE jogador_id = '{1}'", vitorias++, ((Pessoa)jP).Id);
                    command   = new SqlCommand(comando, server);
                    resultado = command.ExecuteNonQuery();
                }

                server.Close();
            }
            else
            {
                string        cmdText = string.Format("SELECT * FROM Jogador WHERE jogador_id = '{0}'", ((Pessoa)jP).Id);
                SqlCommand    command = new SqlCommand(cmdText, server);
                SqlDataReader dados   = command.ExecuteReader();
                dados.Read();
                int derrotas = Convert.ToInt32(dados["jogador_derrotas"]);
                int empates1 = Convert.ToInt32(dados["jogador_empates"]);
                dados.Close();


                cmdText = string.Format("SELECT * FROM Jogador WHERE jogador_id = '{0}'", ((Pessoa)jV).Id);
                command = new SqlCommand(cmdText, server);
                dados   = command.ExecuteReader();
                dados.Read();
                int vitorias = Convert.ToInt32(dados["jogador_vitorias"]);
                int empates2 = Convert.ToInt32(dados["jogador_empates"]);
                dados.Close();

                string comando;
                int    resultado;

                if (i == 2)//Empate -> Aumentar os empates
                {
                    comando   = String.Format("UPDATE Jogador SET jogador_empates = '{0}' WHERE jogador_id = '{1}'", empates1++, ((Pessoa)jP).Id);
                    command   = new SqlCommand(comando, server);
                    resultado = command.ExecuteNonQuery();

                    comando   = String.Format("UPDATE Jogador SET jogador_empates = '{0}' WHERE jogador_id = '{1}'", empates2++, ((Pessoa)jV).Id);
                    command   = new SqlCommand(comando, server);
                    resultado = command.ExecuteNonQuery();
                }
                else
                {
                    comando   = String.Format("UPDATE Jogador SET jogador_derrotas = '{0}' WHERE jogador_id = '{1}'", derrotas++, ((Pessoa)jP).Id);
                    command   = new SqlCommand(comando, server);
                    resultado = command.ExecuteNonQuery();

                    comando   = String.Format("UPDATE Jogador SET jogador_vitorias = '{0}' WHERE jogador_id = '{1}'", vitorias++, ((Pessoa)jV).Id);
                    command   = new SqlCommand(comando, server);
                    resultado = command.ExecuteNonQuery();
                }


                server.Close();
            }

            Program.M_User.FimDoJogo(j1, j2, i);
        }
예제 #3
0
        private void V_JogosInacabados_PedidoLoadJogosInacabados(int i)
        {
            List <Jogo> jogosInacabados = new List <Jogo>();

            if (Program.M_Jogo.JogosInacabados.Count == 0)
            {
                var folder = AppDomain.CurrentDomain.BaseDirectory.Replace("\\bin\\Debug", "\\XML");
                if (File.Exists(folder + "JogosInacabados.xml"))
                {
                    XDocument doc = XDocument.Load(folder + "JogosInacabados.xml");
                    if (doc.Descendants("Jogo").Count() != 0)
                    {
                        int     numJogador = 0;
                        Jogador j1 = new Jogador(), j2 = new Jogador();
                        bool    jogadorEncontrado = false;

                        //Obter conjunto de jogosInacabados
                        var jogos = from jogo in doc.Descendants("Jogo")
                                    select jogo;

                        //Para cada jogoInacabado, verificamos se Algum dos jogadores têm o id do jogador logado
                        foreach (var jogoIn in jogos)
                        {
                            foreach (var jogador in jogoIn.Element("Jogadores").Elements())
                            {
                                numJogador++;
                                if (jogador.Name == "Pessoa") //Se o jogador for uma pesso e for o primeiro jogador
                                {
                                    if (numJogador == 1)
                                    {
                                        User u = new User();
                                        u  = DataBaseAccess.GetUserById(Convert.ToInt16(jogador.Attribute("Id").Value));
                                        j1 = new Pessoa(u, Convert.ToBoolean(jogador.Element("Cor").Value), Convert.ToBoolean(jogador.Element("Prioridade").Value));
                                    }
                                    else
                                    {
                                        User u2 = new User();
                                        u2 = DataBaseAccess.GetUserById(Convert.ToInt16(jogador.Attribute("Id").Value));
                                        j2 = new Pessoa(u2, Convert.ToBoolean(jogador.Element("Cor").Value), Convert.ToBoolean(jogador.Element("Prioridade").Value));
                                    }

                                    if (jogador.Attribute("Id").Value == i.ToString())
                                    {
                                        jogadorEncontrado = true;
                                    }
                                }
                                else if (jogador.Name == "Robot")
                                {
                                    j2 = new Robot(Convert.ToBoolean(jogador.Element("Cor").Value), Convert.ToBoolean(jogador.Element("Prioridade").Value));
                                }
                            }


                            if (jogadorEncontrado)
                            {
                                Posicao[,] t = new Posicao[8, 8];
                                foreach (var posicao in jogoIn.Descendants("Tabuleiro").Elements())
                                {
                                    int    x, y;
                                    string coordenadas = posicao.Attribute("Coordenada").Value;

                                    x = Convert.ToInt32(coordenadas.Remove(1, 2)); // 0;1 -> 0
                                    y = Convert.ToInt32(coordenadas.Remove(0, 2)); // 1;0 -> 0

                                    if (posicao.Name == "Vazia")
                                    {
                                        t[x, y] = new Vazia();
                                    }
                                    else if (posicao.Name == "Invalida")
                                    {
                                        t[x, y] = new Invalida();
                                    }
                                    else if (posicao.Attribute("Tipo").Value == "Simples")
                                    {
                                        t[x, y] = new Simples(Convert.ToBoolean(posicao.Attribute("Cor").Value), Convert.ToBoolean(posicao.Attribute("Sentido").Value));
                                    }
                                    else
                                    {
                                        t[x, y] = new Dama(Convert.ToBoolean(posicao.Attribute("Cor").Value), Convert.ToBoolean(posicao.Attribute("Sentido").Value));
                                    }
                                }

                                Tabuleiro tab = new Tabuleiro(t);

                                Jogo j = new Jogo(j1, j2, tab);
                                j.Id = Convert.ToInt16(jogoIn.Attribute("Id").Value);

                                jogosInacabados.Add(j);
                            }


                            numJogador        = 0;
                            jogadorEncontrado = false;
                        }
                    }
                }
            }

            Program.M_Jogo.LoadJogosInacabados(jogosInacabados);
        }
예제 #4
0
        private void M_User_RespostaFimDeJogo(Jogador j1, Jogador j2, int i)
        {               //0 -> j1 ; 1 -> j2 ; 2 -> Empate
            if (i == 0) //Ganhou o JogadorUm
            {
                lNomeVencedorN.Text             = ((Pessoa)j1).Username;
                lCountryVencedorN.Text          = ((Pessoa)j1).Pais;
                pbJogadorVencedor.ImageLocation = ((Pessoa)j1).Imagem;

                if (j2 is Robot)
                {
                    lNomePerdedorN.Text             = "Robot";
                    lCountryPerdedorN.Text          = "--";
                    pBJogadorPerdedor.ImageLocation = ((Robot)j2).Imagem;
                }
                else if (j2 is Guest)
                {
                    lNomePerdedorN.Text             = "Guest";
                    lCountryPerdedorN.Text          = "--";
                    pBJogadorPerdedor.ImageLocation = ((Guest)j2).Imagem;
                }
                else
                {
                    lNomePerdedorN.Text             = ((Pessoa)j2).Username;
                    lCountryPerdedorN.Text          = ((Pessoa)j2).Pais;
                    pBJogadorPerdedor.ImageLocation = ((Pessoa)j2).Imagem;
                }
            }
            else if (i == 1) //Ganhoi o jogadorDois
            {
                lNomePerdedorN.Text             = ((Pessoa)j1).Username;
                lCountryPerdedorN.Text          = ((Pessoa)j1).Pais;
                pBJogadorPerdedor.ImageLocation = ((Pessoa)j1).Imagem;

                if (j2 is Robot)
                {
                    lNomeVencedorN.Text             = "Robot";
                    lCountryVencedorN.Text          = "--";
                    pbJogadorVencedor.ImageLocation = ((Robot)j2).Imagem;
                }
                else
                if (j2 is Guest)
                {
                    lNomeVencedorN.Text             = "Guest";
                    lCountryVencedorN.Text          = "--";
                    pbJogadorVencedor.ImageLocation = ((Guest)j2).Imagem;
                }
                else
                {
                    lNomeVencedorN.Text             = ((Pessoa)j2).Username;
                    lCountryVencedorN.Text          = ((Pessoa)j2).Pais;
                    pbJogadorVencedor.ImageLocation = ((Pessoa)j2).Imagem;
                }
            }
            else //Empate
            {
                lWinner.Text = "It's a draw";

                lNomeVencedorN.Text             = ((Pessoa)j1).Username;
                lCountryVencedorN.Text          = ((Pessoa)j1).Pais;
                pbJogadorVencedor.ImageLocation = ((Pessoa)j1).Imagem;

                if (j2 is Robot)
                {
                    lNomePerdedorN.Text             = "Robot";
                    lCountryPerdedorN.Text          = "--";
                    pBJogadorPerdedor.ImageLocation = ((Robot)j2).Imagem;
                }
                else
                if (j2 is Guest)
                {
                    lNomePerdedorN.Text             = "Guest";
                    lCountryPerdedorN.Text          = "--";
                    pBJogadorPerdedor.ImageLocation = ((Guest)j2).Imagem;
                }
                else
                {
                    lNomePerdedorN.Text             = ((Pessoa)j2).Username;
                    lCountryPerdedorN.Text          = ((Pessoa)j2).Pais;
                    pBJogadorPerdedor.ImageLocation = ((Pessoa)j2).Imagem;
                }
            }

            Program.V_Tabuleiro.Hide();
            this.Show();
        }
예제 #5
0
 private void V_JogadorOponente_PedidoComecarJogo(User u1, Jogador j)
 {
     Program.M_Jogo.ComecarJogo(u1, j);
 }