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!";
}
Pergunta
Steffane Lucas
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
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.