Ir ao conteúdo

Posts recomendados

Postado

Olá, boa tarde.

 

Eu gostaria de saber por que estou recebendo esse erro no eclipse. Quando vou iniciar um projeto java eu coloquei nas configurações a JRE 8 alguma coisa. Procurei no Google e segundo alguns fóruns essa poderia ser a razão do erro, mas enfim, fiquei perdido... 

 

O pacote que estou tentando incluir é o util math e o scanner

 

O código é parecido com esse abaixo. Esse eu fiz agora rapidinho no trabalho, não tem a condição para "jogar de novo?" por ex, porque eu reescrevi tudo e fiquei com preguiça, foi apenas no notepad++, só reescrevi pra verem se foi algum erro de sintaxe que gerou o erro do compilador. 

Import Java.util.Random;
Import Java.util.Scanner;

//iniciando a classe jockenpo

Public class jockenpo() {
	//declarando as variáveis
	Public int playerHuman;
	Public int playerCpu;
	
	//iniciando o objeto gameChoice, é o item que decide o ganhador
	boolean gameChoice(int playerHuman, int playerCpu){
		Public boolean victory;
		this.playerHuman = playerHuman;
		this.playerCpu = playerCpu;
				if {(playerCpu == 1 && playerHuman == 3 || playerCpu == 2 && playerHuman == 1 || playerCpu == 3 && playerHuman == 2)
					victory = false; }
						else{
							victory = true; }
		return boolean victory;
	}	
	//iniciando o objeto que define a jogada do computador
		int cpu(int playerCpu){
			Random play = new Random();
			this.playerCpu = playerCpu;
			playerCpu = play.nextInt(3);
		
			return int playerCpu;
	}
	
}

//iniciando o Main
Public Static Void Main(istring [] args) {
	Scanner read = new Scanner(System.in);
	jockenpo j = new jockenpo();
	
	j.playerCpu = 0;
	j.playerHuman = 0;
	j.victory = true;
	
	// Condicao para seguir com o jogo
		do {
			j.playerHuman ==   0 ? System.out.printf ("Vamos jogar jockenpo \n Sendo que pedra 1, papel 2 e tesoura 3! \n Vamos, digite um número! \n"); : System.out.print("Apenas 1, 2 ou 3");
	
	
			playerHuman = read.nextInt();
		}
		while {
			(j.playerHuman != 1 || 2 || 3); 
		}
		
	j.cpu();
	J.gameChoice();
	
	j.victory() == true ? System.out.prinf("voce ganhou\n") : System.out.printf("voce e um ***** mermao\n");
	
}

 

Postado

As palavras reservadas devem ser todas em letras minúsculas. O erro que está dando é porque você está colocando o nome errado na hora de importar.

Import Java.util.Scanner;

//Isso deve ser:

import java.util.Scanner; //As palavras import e java devem ser em letras minúsculas

 

Postado
Em 06/07/2019 às 12:54, iHollyZinhO disse:

As palavras reservadas devem ser todas em letras minúsculas. O erro que está dando é porque você está colocando o nome errado na hora de importar.


Import Java.util.Scanner;

//Isso deve ser:

import java.util.Scanner; //As palavras import e java devem ser em letras minúsculas

 

Obrigado amigo, vou testar e assim que tiver um tempo posto os resultados, obrigado.

Postado
Em 08/07/2019 às 09:59, Hela disse:

Obrigado amigo, vou testar e assim que tiver um tempo posto os resultados, obrigado.

 

Refiz o programa e tudo foi bem, mas agora estou tendo problema em outras linhas e gostaria de ajuda.

 

package jok;
import java.util.Random;
import java.util.Scanner;
/**
 *
 * @author gabri
 */
public class Jok {
	//declarando as variáveis
	public static int playerHuman;
	public static int playerCpu;
	
	//iniciando o objeto gameChoice, é o item que decide o ganhador
	private static boolean gameChoice(boolean victory){
        playerHuman = 0;
        playerCpu = 0;
        victory = !(playerCpu == 1 && playerHuman == 3 || playerCpu == 2 && playerHuman == 1 || playerCpu == 3 && playerHuman == 2);
        return victory;
        }
        //iniciando o objeto que define a jogada do computador
		private static int cpu(){
			Random play = new Random();
			playerCpu = 0;
			playerCpu = play.nextInt(3)+1;
			return playerCpu;
	}
                
                
    public static void main(String[] args) {
        
        Scanner read = new Scanner(System.in);
	Jok j = new Jok();
	
	Jok.playerCpu = 0;
	Jok.playerHuman = 0;
	// Condicao para seguir com o jogo
        do {
			(Jok.playerHuman == 0) ? System.out.printf("Vamos jogar jockenpo \n Sendo que pedra 1, papel 2 e tesoura 3! \n Vamos, digite um número! \n") : System.out.print("Apenas 1, 2 ou 3");
	
	
			playerHuman = read.nextInt(3);
		}
		while {
			(j.playerHuman <== 0 || >== 4); 
		}
		
	j.cpu();
	j.gameChoice();
	
	(j.gameChoice() == true) ? System.out.prinf("voce ganhou\n") : System.out.printf("voce e um ***** mermao\n");
	
}
    }
       
    }
    
}

Estou tendo problemas nesse pedaço:

do {
			(Jok.playerHuman == 0) ? System.out.printf("Vamos jogar jockenpo \n Sendo que pedra 1, papel 2 e tesoura 3! \n Vamos, digite um número! \n") : System.out.print("Apenas 1, 2 ou 3");
	
	
			playerHuman = read.nextInt(3);
		}
		while {
			(j.playerHuman <== 0 || >== 4); 
		}

E nesse

(j.gameChoice() == true) ? System.out.prinf("voce ganhou\n") : System.out.printf("voce e um ***** mermao\n");

 

Postado

@Hela, seu código está com alguns erros de sintaxe, além de algumas chaves "dando sopa no final". Reorganizando seu código, uma possível solução seria assim:

import java.util.Scanner;
import java.util.Random;

public class Jockenpo {
    /**
     * O computador realiza a jogada.
     */
    private static int computadorJoga() {
        return new Random().nextInt(3) + 1;
    }

    /**
     * Verifica o campeão
     * [0] - Empate
     * [1] - Jogador
     * [2] - Computador
     */
    private static int verificarVencedor(int jogador, int computador){
        int vencedor;

        if (jogador == computador) {
            vencedor = 0;
        } else if (jogador == 1) {
            vencedor = (computador == 2) ? 2 : 1;
        } else if (jogador == 2) {
            vencedor = (computador == 3) ? 2 : 1;
        } else {
            vencedor = (computador == 1) ? 2 : 1;
        }

        return vencedor;
    }

    public static void main(String[] args) {
        int jogador;
        int computador;
        int vencedor;

        char repetir = 's';

        while (repetir == 's') {
            jogador = 0;
            computador = 0;
            vencedor = 0;

            // Jogador joga
            while (jogador < 1 || jogador > 3) {
                System.out.println("[1] - Pedra \t [2] - Papel \t [3] - Tesoura");
                System.out.print("> ");
                jogador = new Scanner(System.in).nextInt();
            }

            // Computador joga
            while (computador < 1 || computador > 3) {
                computador = computadorJoga();
            }

            vencedor = verificarVencedor(jogador, computador);

            System.out.println("-------------------");
            System.out.println("J: " + jogador);
            System.out.println("C: " + computador);
            System.out.println("V: " + vencedor);

            switch (vencedor) {
                case 0:
                    System.out.println(">> Empate <<");
                    break;
                case 1:
                    System.out.println(">> Venceu <<");
                    break;
                case 2:
                    System.out.println(">> Perdeu <<");
                    break;
                default:
                    System.err.println("** Bug no jogo **");
                    break;
            }

            System.out.println("-------------------");
            System.out.println();
            System.out.print("Jogar de novo? [ S / N ]: ");
            repetir = new Scanner(System.in).next().toLowerCase().charAt(0);
        }

        System.exit(0);
    }
}

 

Postado

Obrigado, Adriano. 

 

Mas confesso que não fico confortável com esse tanto de if concatenado, não seria isso um mal hábito?

 

 

  if (jogador == computador) {
            vencedor = 0;
        } else if (jogador == 1) {
            vencedor = (computador == 2) ? 2 : 1;
        } else if (jogador == 2) {
            vencedor = (computador == 3) ? 2 : 1;
        } else {
            vencedor = (computador == 1) ? 2 : 1;
        }

 

Postado

Até onde eu sei não. Inclusive existem situações que se você não fizer dessa forma, o algoritmo não funciona corretamente. Se você tem dificuldades com esse tipo de sintaxe, essa modificação funciona também:

private static int verificarVencedor(int jogador, int computador){
    if (jogador == computador) {
        return 0;
    }
    
    if (jogador == 1) {
        return (computador == 2) ? 2 : 1;
    } 
    
    if (jogador == 2) {
        return (computador == 3) ? 2 : 1;
    } 
    
    return (computador == 1) ? 2 : 1;
}

Pessoalmente não gosto dessa sintaxe, pois a função fica com muitos pontos de escape (return), dependendo da situação isso pode dificultar a depuração do código.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!