Ir para conteúdo
Fórum Script Brasil
  • 0

Criação de um jogo da velha para web usando Java(modelo, DAO, SERVELT, JSP, JS, AJAX)


Steffane Lucas

Pergunta

O jodo não ta rodando e não to sabendo vê o motivo:

Modelo:

package modelo;

import java.util.Vector;


public class TbJogoVelha {
    private Vector<String> tabuleiro = new Vector<String>(9);
    private String simboloJogador1 = "X";
    private String simboloJogador2 = "O";
    private int njogadasJogador1   = 0;
    private int njogadasJogador2   = 0;
    private int vez                = 1;
    private int fimJogo            = 0;
    private int vencedor           = 0;
    private String pos1;
    private String pos2;
    private String pos3;
    private String pos4;
    private String pos5;
    private String pos6;
    private String pos7;
    private String pos8;
    private String pos9;
    
        public TbJogoVelha() {
           getTabuleiro().add(" ");
           getTabuleiro().add(" ");
           getTabuleiro().add(" ");
           getTabuleiro().add(" ");
           getTabuleiro().add(" ");
           getTabuleiro().add(" ");
           getTabuleiro().add(" ");
           getTabuleiro().add(" ");
           getTabuleiro().add(" ");
    }

    public Vector<String> getTabuleiro() {
        return tabuleiro;
    }

    public void setTabuleiro(Vector<String> tabuleiro) {
        this.tabuleiro = tabuleiro;
    }

    public String getSimboloJogador1() {
        return simboloJogador1;
    }

    public void setSimboloJogador1(String simboloJogador1) {
        this.simboloJogador1 = simboloJogador1;
    }

    public String getSimboloJogador2() {
        return simboloJogador2;
    }

    public void setSimboloJogador2(String simboloJogador2) {
        this.simboloJogador2 = simboloJogador2;
    }
    
        public int getNjogadasJogador1() {
        return njogadasJogador1;
    }

    public void setNjogadasJogador1(int njogadasJogador1) {
        this.njogadasJogador1 = njogadasJogador1;
    }

    public int getNjogadasJogador2() {
        return njogadasJogador2;
    }

    public void setNjogadasJogador2(int njogadasJogador2) {
        this.njogadasJogador2 = njogadasJogador2;
    }

    public int getVez() {
        return vez;
    }

    public void setVez(int vez) {
        this.vez = vez;
    }

    public int getFimJogo() {
        return fimJogo;
    }

    public void setFimJogo(int fimJogo) {
        this.fimJogo = fimJogo;
    }

    public int getVencedor() {
        return vencedor;
    }

    public void setVencedor(int vencedor) {
        this.vencedor = vencedor;
    }

    public String getPos1() {
        return this.tabuleiro.get(0);
    }

    public void setPos1(String pos1) {
        this.pos1 = pos1;
    }

    public String getPos2() {
        return this.tabuleiro.get(1);
    }

    public void setPos2(String pos2) {
        this.pos2 = pos2;
    }

    public String getPos3() {
        return this.tabuleiro.get(2);
    }

    public void setPos3(String pos3) {
        this.pos3 = pos3;
    }

    public String getPos4() {
        return this.tabuleiro.get(3);
    }

    public void setPos4(String pos4) {
        this.pos4 = pos4;
    }

    public String getPos5() {
        return this.tabuleiro.get(4);
    }

    public void setPos5(String pos5) {
        this.pos5 = pos5;
    }

    public String getPos6() {
        return this.tabuleiro.get(5);
    }

    public void setPos6(String pos6) {
        this.pos6 = pos6;
    }

    public String getPos7() {
        return this.tabuleiro.get(6);
    }

    public void setPos7(String pos7) {
        this.pos7 = pos7;
    }

    public String getPos8() {
        return this.tabuleiro.get(7);
    }

    public void setPos8(String pos8) {
        this.pos8 = pos8;
    }

    public String getPos9() {
        return this.tabuleiro.get(8);
    }

    public void setPos9(String pos9) {
        this.pos9 = pos9;
    }   
}   

 

 

DAO:

package dao.S;


import modelo.TbJogoVelha;
    

public class JogoVelhaDAO{


    public int verificarJogada(int jogada, TbJogoVelha tbJogoVelha){
            if ((jogada > 0 && jogada < 10 )) {
                if (tbJogoVelha.getTabuleiro().get(jogada -1).equals(" "))
                    return 1;
                
                else 
                    return 0;
                
            }
        return 0;
        }
    
        public TbJogoVelha realizarJogada(int jogada, TbJogoVelha tbJogoVelha){
        String simbolo = "";
        
        if (tbJogoVelha.getVez() == 1) {
            simbolo = tbJogoVelha.getSimboloJogador1();
        }
        else {
                simbolo = tbJogoVelha.getSimboloJogador2();
                tbJogoVelha.getTabuleiro().set(jogada -1, simbolo);
        }
  
        if (tbJogoVelha.getVez() == 1) {
            tbJogoVelha.setVez(1);
            tbJogoVelha.setNjogadasJogador1(tbJogoVelha.getNjogadasJogador1()+1);
        }
        else {
              tbJogoVelha.setVez(2);
              tbJogoVelha.setNjogadasJogador2(tbJogoVelha.getNjogadasJogador2()+1);

        }
        return tbJogoVelha;
        
    }
        

    public int verificarVencedor(TbJogoVelha tbJogoVelha) {
        //TbJogoVelha tbJogoVelha = new TbJogoVelha();
        if((tbJogoVelha.getTabuleiro().get(0).equals("X")) && (tbJogoVelha.getTabuleiro().get(1).equals("X")) && (tbJogoVelha.getTabuleiro().get(2).equals("X"))) {
                return 1;
        }
        else if ((tbJogoVelha.getTabuleiro().get(3).equals("X")) && (tbJogoVelha.getTabuleiro().get(4).equals("X")) && (tbJogoVelha.getTabuleiro().get(5).equals("X"))) { 
                return 1;
        }
        else if ((tbJogoVelha.getTabuleiro().get(6).equals("X")) && (tbJogoVelha.getTabuleiro().get(7).equals("X")) && (tbJogoVelha.getTabuleiro().get(8).equals("X"))) {
                return 1;
        }
        else if ((tbJogoVelha.getTabuleiro().get(0).equals("X")) && (tbJogoVelha.getTabuleiro().get(3).equals("X")) && (tbJogoVelha.getTabuleiro().get(6).equals("X"))) {
                return 1;
        }        
        else if ((tbJogoVelha.getTabuleiro().get(1).equals("X")) && (tbJogoVelha.getTabuleiro().get(4).equals("X")) && (tbJogoVelha.getTabuleiro().get(7).equals("X"))) {
                return 1;
        }
        else if ((tbJogoVelha.getTabuleiro().get(2).equals("X")) && (tbJogoVelha.getTabuleiro().get(5).equals("X")) && (tbJogoVelha.getTabuleiro().get(8).equals("X"))) {
                return 1;
        }
        else if ((tbJogoVelha.getTabuleiro().get(0).equals("X")) && (tbJogoVelha.getTabuleiro().get(4).equals("X")) && (tbJogoVelha.getTabuleiro().get(8).equals("X"))) {
                return 1;
        }        
        else if ((tbJogoVelha.getTabuleiro().get(2).equals("X")) && (tbJogoVelha.getTabuleiro().get(4).equals("X")) && (tbJogoVelha.getTabuleiro().get(6).equals("X"))) {
                return 1;
        }
        else if ((tbJogoVelha.getTabuleiro().get(0).equals("O")) && (tbJogoVelha.getTabuleiro().get(1).equals("O")) && (tbJogoVelha.getTabuleiro().get(2).equals("O"))) {
                return 2;
        }
        else if ((tbJogoVelha.getTabuleiro().get(3).equals("O")) && (tbJogoVelha.getTabuleiro().get(4).equals("O")) && (tbJogoVelha.getTabuleiro().get(5).equals("0"))) {
                return 2;
        }
        else if ((tbJogoVelha.getTabuleiro().get(6).equals("O")) && (tbJogoVelha.getTabuleiro().get(7).equals("O")) && (tbJogoVelha.getTabuleiro().get(8).equals("O"))) {
                return 2;
        }
        else if ((tbJogoVelha.getTabuleiro().get(0).equals("O")) && (tbJogoVelha.getTabuleiro().get(3).equals("O")) && (tbJogoVelha.getTabuleiro().get(6).equals("O"))) {
                return 2;
        }
        else if ((tbJogoVelha.getTabuleiro().get(1).equals("O")) && (tbJogoVelha.getTabuleiro().get(4).equals("O")) && (tbJogoVelha.getTabuleiro().get(7).equals("O"))) {
                return 2;
        }
        else if ((tbJogoVelha.getTabuleiro().get(2).equals("O")) && (tbJogoVelha.getTabuleiro().get(5).equals("O")) && (tbJogoVelha.getTabuleiro().get(8).equals("O"))) {
                return 2;
        }
        else if ((tbJogoVelha.getTabuleiro().get(0).equals("O")) && (tbJogoVelha.getTabuleiro().get(4).equals("O")) && (tbJogoVelha.getTabuleiro().get(8).equals("O"))) {
                return 2;
        }
        else if ((tbJogoVelha.getTabuleiro().get(2).equals("O")) && (tbJogoVelha.getTabuleiro().get(4).equals("O")) && (tbJogoVelha.getTabuleiro().get(6).equals("O"))) {
                return 2;
        }
        else {
                return 0;
        }
    }
    public int verificarFimDeJogo(TbJogoVelha tbJogoVelha) {
       // TbJogoVelha tbJogoVelha = new TbJogoVelha();
        if (tbJogoVelha.getNjogadasJogador1() + tbJogoVelha.getNjogadasJogador2() >= 9) {
                return 1;
        }
        else if (this.verificarVencedor(tbJogoVelha) != 0) {
                return 1;
        }
        else {
                return 0;
        }
    }
}
 

SERVELET

package bo.S;


import dao.Steffane.JogoVelhaDAO;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Arrays;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import modelo.TbJogoVelha;


public class JogoVelhaBO extends HttpServlet {
    private static final long serialVersionUID = 1L; 
        Connection conn = null;
        private String relat = "";
        HttpServletResponse res;
        HttpServletRequest req;
        String pagina = "";    
        
public JogoVelhaBO() {
    super();
}

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    processRequest(req, res);
}

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    processRequest(req, res);
}

public void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.req = request;
        this.res = response;
        res.setContentType("text/html;charset=UTF-8");
        
        try {
            if(req.getParameter("r") != null){
                relat = req.getParameter("r");
            }
            switch (relat){
              case "S04":          telaJogo();           break;
              case "S04a":         jogar();              break;
            }
        }
        catch (SQLException ex){
                req.getRequestDispatcher("/jsp/Erro.jsp").forward(req, res);
                }
        finally {
            if (conn != null){
            try {
                conn.close();
                }catch (SQLException ex) {
                }
            }
        }
    }

    private void telaJogo() throws SQLException{
        int cont = 1;
        try {
            req.setAttribute("cont", cont);
            req.getRequestDispatcher("/jsp/Steffane/jogoVelha.jsp").forward(req, res);
        }
        catch (ServletException | IOException e) {
            System.out.println("erro " + e.toString());
        }
    }
    
    private void jogar() throws IOException, ServletException{
        //ETAPA 3 PEGANDO VALOR DA SERVLET NA BO
        int jogada = Integer.parseInt(req.getParameter("txtjogada"));
        
        try {
           JogoVelhaDAO jogoVelhaDAO = new JogoVelhaDAO();
           TbJogoVelha tbJogoVelha = new TbJogoVelha();
  
            if (tbJogoVelha.getFimJogo() == 1) {
               tbJogoVelha = new TbJogoVelha();
            }
            
            else if (jogoVelhaDAO.verificarJogada(jogada,tbJogoVelha) == 1) {
                tbJogoVelha = jogoVelhaDAO.realizarJogada(jogada, tbJogoVelha);
                System.out.println(tbJogoVelha = jogoVelhaDAO.realizarJogada(jogada, tbJogoVelha));
            }
            else if (jogoVelhaDAO.verificarFimDeJogo(tbJogoVelha) == 1) {                   
                     tbJogoVelha.setFimJogo(1); 
            }
            else {
                   pagina+="<p> Jogada invalida </p>"; 
            }
            if (jogoVelhaDAO.verificarFimDeJogo(tbJogoVelha) == 1) { 
                tbJogoVelha.setFimJogo(1); 
            }    
            else if (jogoVelhaDAO.verificarVencedor(tbJogoVelha) == 1) {
                pagina+="<p>Fim de Jogo! Vencedor Jogador 1</p>";
            }
            else if (jogoVelhaDAO.verificarVencedor(tbJogoVelha) == 2) {                       
                     pagina+="Fim de Jogo! Vencedor Jogador 2";
            }
            else {
                   pagina+="Fim de Jogo! DEU VELHA!";  
            } 

            res.setContentType("text/xml; charset=utf-8");
            res.setHeader("Cache-Control", "no-cache");
            res.getWriter().write(pagina);     
        }
        
        catch (NumberFormatException e) {
            System.out.println("erro " + e.toString());
        }
        finally{
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    System.out.println(Arrays.toString(ex.getStackTrace()));
                }
            }
        }
    }

 


 JSP

 

        <div class="container" style="height: 100%; width: 100%;">
            <div id="legenda" style="position: relative; float: left;">
                <form name="form1" action="JogoVelhaBO" method="POST" class="form-horizontal" accept-charset="iso-8859-1,utf-8">
                    <input type="hidden" name="txtjogada" id="txtjogada" value="${txtjogada}"/>
                    <font color="red"><h1>Jogo da velha</h1></font>
                    <br/>
                    <table border="1" style="height: 200px; width: 200px;">
                        <div class="container" id='container'>
                            <tr>
                                <div id="um">
                                    <td><input type="button" value="${tbJogoVelha.pos1}" onclick="jogar(1)" style="height: 100%; width: 100%;"/></td>
                                </div>
                                <div id="dois">
                                    <td><input type="button" value="${tbJogoVelha.pos2}" onclick="jogar(2)" style="height: 100%; width: 100%;"/></td>
                                </div>
                                <div id="tres">
                                    <td><input type="button" value="${tbJogoVelha.pos3}" onclick="jogar(3)" style="height: 100%; width: 100%;"/></td>
                                </div>
                            </tr>
                            <tr>
                                <div id="quatro">
                                    <td><input type="button" value="${tbJogoVelha.pos4}" onclick="jogar(4)" style="height: 100%; width: 100%;"/></td>
                                </div>
                                <div id="cinco">
                                    <td><input type="button" value="${tbJogoVelha.pos5}" onclick="jogar(5)" style="height: 100%; width: 100%;"/></td>
                                </div>
                                <div id="seis">
                                    <td><input type="button" value="${tbJogoVelha.pos6}" onclick="jogar(6)" style="height: 100%; width: 100%;"/></td>
                                </div>
                            </tr>
                            <tr>
                                <div id="sete">
                                    <td><input type="button" value="${tbJogoVelha.pos7}" onclick="jogar(7)" style="height: 100%; width: 100%;"/></td>
                                </div>
                                <div id="oito">
                                    <td><input type="button" value="${tbJogoVelha.pos8}" onclick="jogar(8)" style="height: 100%; width: 100%;"/></td>
                                </div>
                                <div id="nove">
                                    <td><input type="button" value="${tbJogoVelha.pos9}" onclick="jogar(9)" style="height: 100%; width: 100%;"/></td>
                                </div>
                            </tr>
                        </div>    
                    </table>  
                </form>
            </div>
    </body>
</html>

 

 

JS

 

function jogar(posicao) {
    document.getElementById('txtjogada').value = posicao;
    div = "container"; 
    //ETAPA 2 PASSANDO PARAMETRO PARA A NOSSA SERVLET
    url = "SmartGesCac?r=S04a&txtjogada=" + posicao;
    atualizaTable(url);
}

function returnAjax(htm){
    detailDiv1 = document.getElementById(div);
    detailDiv1.innerHTML = htm;
}

 

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...