Buscar

aps do jogo da velha


Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

UNIVERSIDADE PAULISTA – UNIP
CURSO: CIÊNCIA DA COMPUTAÇÃO
“DESESENVOLVIMENTO DE UM JOGO COM UTILIZAÇÃO DE INTERFACE GRÁFICA”
MANAUS
2017
UNIVERSIDADE PAULISTA – UNIP
CURSO: CIÊNCIA DA COMPUTAÇÃO
Hudson Jonathan Lopes de Souza RA: D2313B5
Jackeline Suzanne Macedo de Moraes RA: DO5GED8
“DESESENVOLVIMENTO DE UM JOGO COM UTILIZAÇÃO DE INTERFACE GRÁFICA”
Trabalho exigido como requisito para avalição da Atividade Prática Supervisionada do curso de Ciência da computação, para parcial de nota sob Orientação: Prof. Joaquim
MANAUS
2017
1.INTRODUÇÃO 
Atualmente os jogos são bem elaborados e utilização muito a interface gráfica para uma melhor apresentação ao seu jogador, as bibliotecas gráficas são bastante simples no que diz respeito a conceitos necessários para usá-las. A complexidade no aprendizado de interfaces gráficas em Java reside no tamanho das bibliotecas e no enorme mundo de possibilidades; isso pode assustar, em um primeiro momento. 
AWT e Swing são bibliotecas gráficas oficiais inclusas em qualquer JRE ou JD K. Além destas, existem algumas outras bibliotecas de terceiros, sendo a mais famosa, o SWT - desenvolvida pela IBM e utiliza da no Eclipse e em vários outros produtos.
Neste trabalho vamos ver como os jogos, criação, desenvolvimento, e finalidade do jogo apresentado. Bom ao desenvolver do jogo vamos ver o passo a passo dele, aqui o jogo que utilizaremos para esse trabalho vai ser o jogo da velha muito conhecido por todos.
Utilizaremos nesse trabalho a linguagem Java, para poder desenvolver esse jogo com seus códigos que vão ser apresentados aqui.
2.OBJETIVO
O objetivo desse jogo é que duas pessoas posam jogar alternadamente conforme o que se pede ao decorrer do jogo, onde cada um vai preenchendo os espaços vazios, que se encontram no jogo.
Cada participante deve usar o símbolo (X ou O). Onde vence o jogo quem conseguir formar primeiro uma das três linhas com os símbolos iguais, seja na horizontal, vertical ou diagonal. 
Onde o jogador tem que testa seu raciocínio lógico e suas estratégias, sua atenção ao jogo e como não da velha.
3. LINGUAGEM DE PROGRAMAÇÃO
A linguagem de programação utilizada foi o Java oito (JSE oito) destinada ao desktop. Para saber quais API usufruímos.
 
3.1Interfaces 
 As interfaces têm o propósito principal de suprir a ausência de heranças múltiplas oferecendo um mecanismo mais eficiente. Herança múltipla significa que uma classe possuir mais de uma superclasse, ou seja, derivar de duas ou mais classes e herdar os membros não privado de todas elas. 
Ao programar uma interface é preciso implementar todos os métodos definidos nesta interface e, por isso, esta classe pode ser tratada como sendo do tipo que a interface representa. Além disso, uma mesma classe pode implementar múltiplas interface e, portanto, poderá assumir diferentes tipos. 
Assim como as classes, as interfaces podem conter atributos e métodos. Entretanto, elas não possuem construtores e funcionam, de certo modo, como uma classe abstrata, não podendo ser instanciadas. Só há um modo de instanciar um objeto cujo tipo seja uma interface: utilizar um construtor de uma classe que a tenha implementado. 
Uma das diferenças práticas entre classes e interfaces, é que tanto os atributos quanto os métodos de uma interface devem ser públicos. Todo atributo é implicitamente constante e estático. 
Em interfaces, todo método é implicitamente abstrato. Métodos abstratos não possuem corpo, mas somente os elementos que compõem a sua assinatura. 
3.2Conceito geral do jogo
O jogo da velha é um jogo bastante conhecido, também conhecido como “Família do moinho” ou “Trilha”, varia de nome conforme a região em que ela se joga, na China de 500A.C, era conhecida como Luk tsut k’i e no Estados Unidos chama-se tic tac-toe e na Holanda tic tac-tol. Já aqui no Brasil quando se empata chama-se “deu velha”.
3.3Enredo do jogo
Bom nesse jogo baseia-se em formar três símbolos iguais, que pode ser na horizontal, vertical ou diagonal, conforme as jogadas que, cada jogador jogo, onde eles tem que calcular onde vão colocar cada símbolo para que ela não de velha, quando empatam o jogo e nenhum dos dois jogadores vence o jogo, o jogo se ganha através do primeiro que completar cada quadrado vazio
 
Regras do jogo.
O tabuleiro é uma matriz de três linhas por três colunas.
Dois jogadores escolhem uma marcação cada um, geralmente um círculo (O) e um xis (X).
Os jogadores jogam alternadamente, uma marcação por vez, numa lacuna que esteja vazia.
O objetivo é conseguir três círculos ou três xis em linha, quer horizontal, vertical ou diagonal, e ao mesmo tempo, quando possível, impedir o adversário de ganhar na próxima jogada.
Quando um jogador conquista o objetivo, costuma-se riscar os três símbolos.
Se os dois jogadores jogarem sempre da melhor forma, o jogo terminará sempre em empate. A lógica do jogo é muito simples, de modo que não é difícil deduzir ou decorar todas as possibilidades para efetuar a melhor jogada – apesar de o número total de possibilidades ser muito grande, a maioria delas é simétrica, além de que as regras são simples. Por esse motivo, é muito comum que o jogo dê empate (ou “dê velha”).
Ganhar: Se você tem duas peças numa linha, ponha a terceira
Bloquear: Se o oponente tiver duas peças em linha, ponha a terceira para bloqueá-lo.
 Triângulo: Crie uma oportunidade em que você poderá ganhar de duas maneiras.
 Bloquear o Triângulo do oponente
Centro: Jogue no centro.
Canto vazio: jogue num canto vazio.
4.Desenvolvimento
No desenvolvimento do jogo foi utilizado um laptop da fabricante Acer com o processador Intel®Core™ i3 – 2328M CPU @ 2.20 GHz, RAM de 6.00 GB, sistema operacional Windows 10 Pro x64 e HD de 1.00 TB 
Os principais livros utilizados foram “Java como programar”de Paul Deitel e Harvey Deitel,“Sistemas de banco de dados” de Elmasri e Navathe, e“Programação de games com Java” de Jonathan S. Harbour, todos se encontram na referência bibliográfica. 
A linguagem de programação utilizada foi o Java oito (JSE oito) destinada ao desktop. 
 
Interface Gráfica (GUI) 
 
No desenvolvimento da interface gráfica foi utilizado o plug-in, , Window Builder. Este plug-in facilita no manuseio das APIs AWT e Swing, dando a possibilidade de usufruir de suas capacidades criativas de desenvolvimento de GUI. 
 No Java, o desenvolvimento de interface gráfica pode ser realizado com o uso de componentes disponíveis em duas APIs distintas: o AWT e o Swing. Uma GUI é desenvolvida utilizando-se componentes, que são objetos visuais que possibilitam ao usuário realizar a interação com o programa por meio de um ambiente gráfico. (SANTOS, 2014, p. 970). 
 
Códigos do jogo
boolean Jogador1Ativo = true;
    boolean Jogador2Ativo = false;
    
    int VitoriaDoJogador1 = 0;
    int VitoriaDoJogador2 = 0;
    int PartidasEmpatadas = 0;
    public JogoDaVelha() {
        initComponents();
    }
    
    
    public void JogadorAtivo() {
        
        if (Jogador1Ativo == true) {
            Jogador1Ativo = false;
            Jogador2Ativo = true;
        } else {
            Jogador1Ativo = true;
            Jogador2Ativo = false;
        }
        
        JogadorVencedor("X");
        JogadorVencedor("0");
        
    }
    
    
    
    public void JogadorVencedor(String Jogador) {
        
        
        /******************* Verificando Linhas *********************/
        if (B1.getText().equals(Jogador) &&
                B2.getText().equals(Jogador) &&
                B3.getText().equals(Jogador)) {
            
            if (B1.getText().equals("X"))
                Vencedor("Jogador 1");
            else
                Vencedor("Jogador 2");
            
        }if (B4.getText().equals(Jogador) &&
                B5.getText().equals(Jogador) &&
                B6.getText().equals(Jogador)) {
            
            if (B4.getText().equals("X"))
                Vencedor("Jogador 1");
            else
                Vencedor("Jogador 2");
            
        }
        
        
        if (B7.getText().equals(Jogador) &&
                B8.getText().equals(Jogador) &&
                B9.getText().equals(Jogador)) {
            
            if (B7.getText().equals("X"))
                Vencedor("Jogador 1");
            else
                Vencedor("Jogador 2");
            
        }
        
        
        /******************* Verificando Colunas *********************/
        if (B1.getText().equals(Jogador) &&
                B4.getText().equals(Jogador) &&
                B7.getText().equals(Jogador)) {
            
            if (B1.getText().equals("X"))
                Vencedor("Jogador 1");
            else
                Vencedor("Jogador 2");
            
        }
        
        
        if (B2.getText().equals(Jogador) &&
                B5.getText().equals(Jogador) &&
                B8.getText().equals(Jogador)) {
            
            if (B2.getText().equals("X"))
                Vencedor("Jogador 1");
            else
                Vencedor("Jogador 2");
            
        }
        
        
        if (B3.getText().equals(Jogador) &&
                B6.getText().equals(Jogador) &&
                B9.getText().equals(Jogador)) {
            
            if (B3.getText().equals("X"))
                Vencedor("Jogador 1");
            else
                Vencedor("Jogador 2");
            
        }
        
        
        /******************* Verificando Diagonais *********************/
        if (B1.getText().equals(Jogador) &&
                B5.getText().equals(Jogador) &&
                B9.getText().equals(Jogador)) {
            
            if (B1.getText().equals("X"))
                Vencedor("Jogador 1");
            else
                Vencedor("Jogador 2");
            
        }
        
        
        if (B3.getText().equals(Jogador) &&
                B5.getText().equals(Jogador) &&
                B7.getText().equals(Jogador)) {
            
            if (B3.getText().equals("X"))
                Vencedor("Jogador 1");
            else
                Vencedor("Jogador 2");
            
        }
        
        
        /******************* Verificando Empate *********************/
        if ( !B1.getText().equals("") &&
                !B2.getText().equals("") &&
                !B3.getText().equals("") &&
                !B4.getText().equals("") &&
                !B5.getText().equals("") &&
                !B6.getText().equals("") &&
                !B7.getText().equals("") &&
                !B8.getText().equals("") &&
                !B9.getText().equals("") ) {
            
            Vencedor("Empate");
        }
        
    }
    
    
    public void Vencedor(String JogadorVencedor) {
        
        if (JogadorVencedor.equals("Jogador 1")) {
            JOptionPane.showMessageDialog(JogoDaVelha.this, "Parabéns Jogador 1. Você venceu o Jogo!");
            VitoriaDoJogador1++;
            NumeroDeVitoriasDoJogador1.setText("Número de Vitórias: " + VitoriaDoJogador1);
            LimparCampos();
        }
        
        
        if (JogadorVencedor.equals("Jogador 2")) {
            JOptionPane.showMessageDialog(JogoDaVelha.this, "Parabéns Jogador 2. Você venceu o Jogo!");
            VitoriaDoJogador2++;
            NumeroDeVitoriasDoJogador2.setText("Número de Vitórias: " + VitoriaDoJogador2);
            LimparCampos();
        }
        
        
        if (JogadorVencedor.equals("Empate")) {
            JOptionPane.showMessageDialog(JogoDaVelha.this, "Jogo Empatado! Joguem Novamente!");
            PartidasEmpatadas++;
            NumeroDeEmpates.setText("Número de Empates: " + PartidasEmpatadas);
            LimparCampos();
        }
        
    }
    
    
    public void LimparCampos() {
        
        B1.setText("");
        B2.setText("");
        B3.setText("");
        B4.setText("");
        B5.setText("");
        B6.setText("");
        B7.setText("");
        B8.setText("");
        B9.setText("");
        
        Jogador1Ativo = true;
        Jogador2Ativo = false;
        
    }
    private void B3ActionPerformed(java.awt.event.ActionEvent evt) {                                   
        
        if (Jogador1Ativo == true) {
            if (B3.getText().equals("")) {
                B3.setText("X");
                JogadorAtivo();
            }
        } else {
            if (B3.getText().equals("")) {
                B3.setText("0");
                JogadorAtivo();
            }
        }
        
    }                                  
    private void B1ActionPerformed(java.awt.event.ActionEvent evt) {                                   
        
        if (Jogador1Ativo == true) {
            if (B1.getText().equals("")) {
                B1.setText("X");
                JogadorAtivo();
            }
        } else {
            if (B1.getText().equals("")) {
                B1.setText("0");
                JogadorAtivo();
            }
        }
        
        
    }                                  
    private void B2ActionPerformed(java.awt.event.ActionEvent evt) {                                   
        
        if (Jogador1Ativo == true) {
            if (B2.getText().equals("")) {
                B2.setText("X");
                JogadorAtivo();
            }
        } else {
            if (B2.getText().equals("")) {
                B2.setText("0");
                JogadorAtivo();
            }
        }
        
        
    }                                  
    private void B4ActionPerformed(java.awt.event.ActionEvent evt) {                                   
        
        if (Jogador1Ativo == true) {
            if (B4.getText().equals("")) {
                B4.setText("X");
                JogadorAtivo();
            }
        } else {
            if (B4.getText().equals("")) {
                B4.setText("0");
                JogadorAtivo();
            }
        }
        
    }                                  
    private void B5ActionPerformed(java.awt.event.ActionEvent evt) {                                   
        
        if (Jogador1Ativo == true) {
            if (B5.getText().equals("")) {
                B5.setText("X");
                JogadorAtivo();
            }
        } else {
            if (B5.getText().equals("")) {
                B5.setText("0");
                JogadorAtivo();
            }
        }
        
    }                                  
    private void B6ActionPerformed(java.awt.event.ActionEvent evt) {                                   
        
        if (Jogador1Ativo == true) {
            if (B6.getText().equals("")) {
                B6.setText("X");
                JogadorAtivo();
            }
        } else {
            if (B6.getText().equals("")) {
                B6.setText("0");
                JogadorAtivo();
            }
        }
        
    }                                  
    private void B7ActionPerformed(java.awt.event.ActionEvent evt) {                                   
        
        if (Jogador1Ativo == true) {
            if (B7.getText().equals("")) {
                B7.setText("X");
                JogadorAtivo();
            }
        } else {
            if (B7.getText().equals("")) {
                B7.setText("0");
                JogadorAtivo();
            }
        }
        
        
    }                                  
    private void B8ActionPerformed(java.awt.event.ActionEventevt) {                                   
        
        if (Jogador1Ativo == true) {
            if (B8.getText().equals("")) {
                B8.setText("X");
                JogadorAtivo();
            }
        } else {
            if (B8.getText().equals("")) {
                B8.setText("0");
                JogadorAtivo();
            }
        }
        
    }                                  
    private void B9ActionPerformed(java.awt.event.ActionEvent evt) {                                   
        
        if (Jogador1Ativo == true) {
            if (B9.getText().equals("")) {
                B9.setText("X");
                JogadorAtivo();
            }
        } else {
            if (B9.getText().equals("")) {
                B9.setText("0");
                JogadorAtivo();
            }
        }
        
    }                                  
    private void NovoJogoActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
        LimparCampos();
        
    }                                        
    private void SobreJogoActionPerformed(java.awt.event.ActionEvent evt) {                                          
        
         new SobreJogoDaVelha(
                 (int) getLocation().getX(),
                 (int) getLocation().getY(),
                 JogoDaVelha.this, true
         ).setVisible(true);
        
        
    }                                         
    private void SairDoJogoActionPerformed(java.awt.event.ActionEvent evt) {                                           
        
        
        System.exit(0);
        
    }
CONCLUSÃO 
 
Concluímos que a criação de um jogo envolve muitos códigos com alguma linguagem a ser escrita como a que utilizamos nesse trabalho que foi Java Se, que foi de fundamental importância para elaboração do jogo a que foi exposta, e como foi importante para o nosso aprendizado e maior conhecimento nessa linguagem e como as interfaces são feitas.
REFERÊNCIA BIBLIOGRAFICA
DEITEL, H. M; DEITEL, P. J. Java como programar. 8. Ed. São Paulo: Pearson Prentice Hall, 2010. 391p. 
 
 DIAS, R. Introdução ao Desenvolvimento Independente de Jogos. 1. Ed. São Paulo: Individual,2015. 132 p. 
 
HEUSER, C. A; Projeto de Banco de Dados. 4. Ed. Porto Alegre: Instituto de Informática da UFRGS, 1998. 192 p. 
 
HARBOUR, J. S. Programação de games com Java. 2. Ed. São Paulo: Cengage Learning, 2010. 417 p. 
 
HORSTMANN, C. Conceitos de computação com Java. 5. Ed. São Paulo: Bookman, 2009. 720 p.