Ir ao conteúdo
  • Cadastre-se

Renan Galina

Membros Plenos
  • Total de itens

    196
  • Registro em

  • Última visita

  • Qualificações

    N/D

Reputação

38

Informações gerais

  • Cidade e Estado
    Campo Grande - MS
  • Sexo
    Masculino

Meu PC

  • Processador
    AMD Ryzen 5 2600 3.9 ghz
  • Placa de vídeo
    GALAX GTX 1060 6GB EXOC
  • Placa-mãe
    ASUS PRIME B350M-A
  • Memória
    HyperX Fury 8GB DDR 2400MHZ
  • HDs
    750gb do PC antigo
  • SSDs
    120gb Sandisk
  • Gabinete
    C3TECH G650
  • Fonte
    VS600
  • Mouse
    Razer Abyssus
  • Teclado
    SKORPION
  • Headset
    um da feira
  • Monitor
    LG FLATRON W1953T
  • Sistema Operacional
    Windows 10
  • Browser
    Chrome/Edge

Meu Smartphone

  • Marca e modelo
    iPhone 7 32gb

Meu Console

  • Modelo
    PS3 500GB

Outros

  • Ocupação
    Cursando Sistemas de Informação na UFMS
  1. @giu_d Obrigado pela ajuda giu_d!
  2. @giu_d O meu ficou assim: public class JogoDaVelha { public static void main(String[] args) { Menu menu = new Menu(); Tabuleiro tabuleiro = new Tabuleiro(); // Identifica o jogador 1 como humano ( usando id 1 ) Jogador jogador1 = new Jogador(1); Jogador jogador2 = new Jogador(2); // Impressão inicial para começar o jogo menu.imprimeTabuleiro(tabuleiro); // começa com o jogador humano Jogador jogador = jogador1; boolean acabou = false; do { if (jogador.getid() == 1) { // Faz a jogada do considerando o método para usuário humano jogador.jogada(tabuleiro, menu.lerLinha(), menu.lerColuna()); } else { // Faz a jogada do considerando o método para computador jogador.jogada(tabuleiro); } // troca de jogador if (jogador == jogador1) { jogador = jogador2; } else { jogador = jogador1; } // Imprime o tabuleiro para o usuário ver a situação atual menu.imprimeTabuleiro(tabuleiro); // Verifica se alguém venceu if (tabuleiro.verificaVitoria("X")) { System.out.println("Vitória do jogador X"); acabou = true; } else if (tabuleiro.verificaVitoria("O")) { System.out.println("Vitória do jogador O"); acabou = true; } else if ((jogador1.getQtd() + jogador2.getQtd()) == 9) { System.out.println("Deu velha!"); acabou = true; } } while (!acabou); } } public class Jogador { private int qtd, id; // o atributo qtd ainda não está em uso public Jogador(int id_jogador) { this.id = id_jogador; this.qtd = 0; } public int getQtd() { return qtd; } public int getid() { return this.id; } // Em um desses métodos aqui teria que validar se a posição da jogada está vazia public void jogada(Tabuleiro tabuleiro, int linha, int coluna) { if (id == 1) { tabuleiro.setPosicao(linha, coluna, "X"); } else { tabuleiro.setPosicao(linha, coluna, "O"); } qtd++; } public void jogada(Tabuleiro tabuleiro) { // aqui o computador deve escolher uma posição vazia do tabuleiro para jogar int linha = 0; // trocar o zero pela linha escolhida pelo computador; int coluna = 0; // trocar o zero pela coluna escolhida pelo computador; tabuleiro.setPosicao(linha, coluna, "O"); qtd++; } } Só que quando executo, mesmo problema: Precisa de uma lógica para quando jogar X, trocar para o O. adicionado 6 minutos depois Rodei seu código aqui, mas não da pra digitar a linha nem coluna: sempre aparece: "Erro essa jogada ja foi efetuada" sendo que nao ta preenchido. Consegui arrumar: em vez do continue; era break.
  3. Ok, consegui rodar finalmente o programa. Agora, há um dilema: Tenho que alterar para td vez não repetir o 'x' porque qualquer valor que eu digite em linha ou coluna me retorna apenas X.
  4. @r.c_lopez Tenta acessar as pastas dele, mas acho muito difícil conseguir pois o cel precisa ta ligado p você acessar os dados. Se tiver backup só pegar na google e ja era
  5. @giu_d O único erro para compilar agora, está na classe Jogador. Jogador.java:17: error: cannot find symbol tabuleiro.setPosicao(linha, coluna, "X"); ^ symbol: variable linha location: class Jogador Jogador.java:17: error: cannot find symbol tabuleiro.setPosicao(linha, coluna, "X"); ^ symbol: variable coluna location: class Jogador Jogador.java:19: error: cannot find symbol tabuleiro.setPosicao(linha, coluna, "O"); ^ symbol: variable linha location: class Jogador Jogador.java:19: error: cannot find symbol tabuleiro.setPosicao(linha, coluna, "O"); ^ symbol: variable coluna location: class Jogador Jogador.java:24: error: cannot find symbol if (posições[linha][coluna] == sinal || posições[linha][coluna] == 'O') { ^ symbol: variable posições location: class Jogador Jogador.java:24: error: cannot find symbol if (posições[linha][coluna] == sinal || posições[linha][coluna] == 'O') { ^ symbol: variable sinal location: class Jogador Jogador.java:24: error: cannot find symbol if (posições[linha][coluna] == sinal || posições[linha][coluna] == 'O') { ^ symbol: variable posições location: class Jogador Jogador.java:27: error: cannot find symbol posições[linha][coluna] = sinal; ^ symbol: variable posições location: class Jogador Jogador.java:27: error: cannot find symbol posições[linha][coluna] = sinal; ^ symbol: variable sinal location: class Jogador Jogador.java:28: error: cannot find symbol jogada++; ^ symbol: variable jogada location: class Jogador 10 errors
  6. Fiz alterações! > Tabuleiro public class Tabuleiro { public String[][] matriz; public String[][] posições; public Tabuleiro() { posições = new String[3][3]; for (int i = 0; i < posições.length; i++) { for (int j = 0; j < posições[i].length; j++) { posições[i][j] = ""; } } } public String getPosicao(int linha, int coluna) { return posições[linha][coluna]; } public String getPosicoes(int a, int b){ return matriz[a][b]; } public void setPosicao(int linha, int coluna, String valor) { posições[linha][coluna] = valor; } public boolean verificaVitoria(String sinal) { if ((posições[0][0] == sinal && posições[0][1] == sinal && posições[0][2] == sinal) || //linha 1 (posições[1][0] == sinal && posições[1][1] == sinal && posições[1][2] == sinal) || //linha 2 (posições[2][0] == sinal && posições[2][1] == sinal && posições[2][2] == sinal) || //linha 3 (posições[0][0] == sinal && posições[1][0] == sinal && posições[2][0] == sinal) || //coluna 1 (posições[0][1] == sinal && posições[1][1] == sinal && posições[2][1] == sinal) || //coluna 2 (posições[0][2] == sinal && posições[1][2] == sinal && posições[2][2] == sinal) || //coluna 3 (posições[0][0] == sinal && posições[1][1] == sinal && posições[2][2] == sinal) || //diagonal (posições[0][2] == sinal && posições[1][1] == sinal && posições[2][0] == sinal)) { //diagonal inversa return true; } return false; } } Jogador public class Jogador{ private int qtd, id, id_jogador; public int linha=0, coluna=0; //Construtor public Jogador(int id_jogador){ this.id_jogador = id_jogador; } public int getid(){ return this.id; } public void jogada(Tabuleiro tabuleiro, int linha, int coluna){ this.linha = linha; this.coluna = coluna; if (posições[linha][coluna] == sinal || posições[linha][coluna] == 'O') { return false; } else { //jogada válida posições[linha][coluna] = sinal; jogada++; return true; } } public void jogada(Tabuleiro tabuleiro){ System.out.println(tabuleiro); menu.lerLinha(); menu.lerColuna(); } public void jogada(Tabuleiro tabuleiro){ if (id ==1) tabuleiro.setPosicao(linha, coluna, "X"); else tabuleiro.setPosicao(linha, coluna, "O"); } } Menu import java.util.Scanner; public class Menu{ private Scanner sc = new Scanner (System.in); private int linha=0, coluna=0; public Menu(){ } public void imprimeTabuleiro(int oi, int ola, Tabuleiro tabuleiro){ String[][] matriz = tabuleiro.getPosicoes(); for (int a = 0; a < matriz.length; a++) { for (int b = 0; b < matriz[0].length; b++) { System.out.print(matriz[a][b] + " | "); } System.out.println(); } } public int lerLinha(){ System.out.println("Digite a linha: "); this.linha = sc.nextInt(); return linha; } public int lerColuna(){ System.out.println("Digite a coluna: "); this.coluna = sc.nextInt(); return coluna; } } Main public class JogoDaVelha { public static void main(String[] args) { Menu menu = new Menu(); Tabuleiro tabuleiro = new Tabuleiro(); int linha, coluna, contador=0; Jogador jogador1; Jogador jogador2; boolean vitoriaX=false, vitoriaO=false; //Identifica o jogador 1 como humano ( usando id 1 ) jogador1 = new Jogador(1); jogador2 = new Jogador(2); //Impressão inicial para começar o jogo menu.imprimeTabuleiro(tabuleiro); do{ //Faz a jogada do primeiro jogador, considerando o método para usuário humano jogador1.jogada(tabuleiro,menu.lerLinha(), menu.lerColuna()); //contabiliza a jogada com sucesso, visto que os métodos já garantem que a jogada sempre acontecerá com sucesso contador++; //Imprime o tabuleiro para o usuário ver a situação atual menu.imprimeTabuleiro(tabuleiro); //Verifica se alguém venceu vitoriaX = tabuleiro.verificaVitoria("X"); vitoriaO = tabuleiro.verificaVitoria("O"); //Caso ngm tenha vencido ainda e não tenha acabado as jogadas, o segundo jogador joga. if(vitoriaX == false && vitoriaO == false && contador < 9){ //Faz a jogada do primeiro jogador, considerando o método para usuário computador jogador2.jogada(tabuleiro); //contabiliza a jogada com sucesso, visto que os métodos já garantem que a jogada sempre acontecerá com sucesso contador++; //Imprime o tabuleiro para o usuário ver a situação atual menu.imprimeTabuleiro(tabuleiro); //Verifica se alguém venceu vitoriaX = tabuleiro.verificaVitoria("X"); vitoriaO = tabuleiro.verificaVitoria("O"); } //Repete a estrutura enquanto ngm vencer e houver jogadas disponíveis. }while(vitoriaX == false && vitoriaO == false && contador < 9); //Verifica se o jogador 1 ganhou if (vitoriaX) { System.out.println("Vitória do jogador X"); }else{ //Verifica se o jogador 2 ganhou if (vitoriaO) { System.out.println("Vitória do jogador O"); }else{ //Verifica se deu velha System.out.println("Deu velha!"); } } } } Agora, dá os seguintes erros: .\Jogador.java:29: error: method jogada(Tabuleiro) is already defined in class J ogador public void jogada(Tabuleiro tabuleiro){ ^ JogoDaVelha.java:15: error: method imprimeTabuleiro in class Menu cannot be appl ied to given types; menu.imprimeTabuleiro(tabuleiro); ^ required: int,int,Tabuleiro found: Tabuleiro reason: actual and formal argument lists differ in length JogoDaVelha.java:23: error: method imprimeTabuleiro in class Menu cannot be appl ied to given types; menu.imprimeTabuleiro(tabuleiro); ^ required: int,int,Tabuleiro found: Tabuleiro reason: actual and formal argument lists differ in length JogoDaVelha.java:34: error: method imprimeTabuleiro in class Menu cannot be appl ied to given types; menu.imprimeTabuleiro(tabuleiro); ^ required: int,int,Tabuleiro found: Tabuleiro reason: actual and formal argument lists differ in length .\Menu.java:8: error: method getPosicoes in class Tabuleiro cannot be applied to given types; String[][] matriz = tabuleiro.getPosicoes(); ^ required: int,int found: no arguments reason: actual and formal argument lists differ in length .\Jogador.java:15: error: cannot find symbol if (posições[linha][coluna] == sinal || posições[linha][coluna] == 'O') { ^ symbol: variable posições location: class Jogador .\Jogador.java:15: error: cannot find symbol if (posições[linha][coluna] == sinal || posições[linha][coluna] == 'O') { ^ symbol: variable sinal location: class Jogador .\Jogador.java:15: error: cannot find symbol if (posições[linha][coluna] == sinal || posições[linha][coluna] == 'O') { ^ symbol: variable posições location: class Jogador .\Jogador.java:16: error: incompatible types: unexpected return value return false; ^ .\Jogador.java:19: error: cannot find symbol posições[linha][coluna] = sinal; ^ symbol: variable posições location: class Jogador .\Jogador.java:19: error: cannot find symbol posições[linha][coluna] = sinal; ^ symbol: variable sinal location: class Jogador .\Jogador.java:20: error: cannot find symbol jogada++; ^ symbol: variable jogada location: class Jogador .\Jogador.java:21: error: incompatible types: unexpected return value return true; ^ .\Jogador.java:26: error: cannot find symbol menu.lerLinha(); ^ symbol: variable menu location: class Jogador .\Jogador.java:27: error: cannot find symbol menu.lerColuna(); ^ symbol: variable menu location: class Jogador 15 errors
  7. @giu_d Mas ta com sinal de + no UML. O que tem sinal de - é apenas o teclado, que eu declarei: private Scanner sc = new Scanner (System.in); Pensei em um método para criar o jogada: boolean validarJogada(Tabuleiro tabuleiro) { if (posições[linha][coluna] == sinal || posições[linha][coluna] == 'O') { return false; } else { //jogada válida posições[linha][coluna] = sinal; jogada++; return true; } }
  8. Pega uma GTX 1060 6gb, ou 1070+ como GPU. Ram 8gb já basta, mas se quiser 16gb também é bom> SSD é indispensável. Processador vai de Ryzen da AMD, aí vai do seu uso. Eu pegaria o 2600X que é o meio termo.
  9. @r.c_lopez Tenta colocar uma bateria própria do SM G530( gran prime ); Caso contrário, bixou o firmware ou a placa, de tanto você insistir em colocar baterias diferentes. Já tive esse celular, quando deu o primeiro problema já joguei ele longe. Em vez de trocar tanto de bateria era só ter comprado um novo.
  10. Estou parado, não consigo evoluir nesse código... Ao compilar, recebo os seguintes erros: Ao compilar a classe main, dá os seguintes erros: JogoDaVelha.java:19: error: 'void' type not allowed here jogador1.jogada(tabuleiro,menu.lerLinha(), menu.lerColun a()); ^ JogoDaVelha.java:19: error: 'void' type not allowed here jogador1.jogada(tabuleiro,menu.lerLinha(), menu.lerColun a()); ^ JogoDaVelha.java:30: error: method jogada in class Jogador cannot be applied to given types; jogador2.jogada(tabuleiro); ^ required: Tabuleiro,int,int found: Tabuleiro reason: actual and formal argument lists differ in length .\Jogador.java:15: error: cannot find symbol if (posições[linha][coluna] == sinal || posições[linha][coluna] == 'O') { ^ symbol: variable posições location: class Jogador .\Jogador.java:15: error: cannot find symbol if (posições[linha][coluna] == sinal || posições[linha][coluna] == 'O') { ^ symbol: variable sinal location: class Jogador .\Jogador.java:15: error: cannot find symbol if (posições[linha][coluna] == sinal || posições[linha][coluna] == 'O') { ^ symbol: variable posições location: class Jogador .\Jogador.java:16: error: incompatible types: unexpected return value return false; ^ .\Jogador.java:19: error: cannot find symbol posições[linha][coluna] = sinal; ^ symbol: variable posições location: class Jogador .\Jogador.java:19: error: cannot find symbol posições[linha][coluna] = sinal; ^ symbol: variable sinal location: class Jogador .\Jogador.java:20: error: cannot find symbol jogada++; ^ symbol: variable jogada location: class Jogador .\Jogador.java:21: error: incompatible types: unexpected return value return true; ^ 11 errors
  11. Vai de 2600, tenho um e não me arrependo. Eu paguei 880, logo quando lançou.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×