Preciso de umas dicas (Simulador de um jogo)

olá sou iniciante em java…

Estou a tentar criar um Simular de um jogo. O computador gera um número aleatório e num máximo de 10 tentativas o usuário tem que
o adivinhar. Em cada iteração tem de indicar se ele estava certo, e se é maior ou menor. O programa termina quando
acertar o número ou se esgotarem as 10 tentativas

Se alguém poder dar umas dicas agradeço…

Já fiz isto mas agora não seu como fazer para comparar a string com o numero gerado

public class exercicio2 {
public static void main(String[] args) throws IOException {
Random aleatorio= new Random();
int n= aleatorio.nextInt();
System.out.println("n = "+n);
InputStreamReader usuario = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader (usuario);
System.out.println(“Introduza um numero:”);
String num = input .readLine();
System.out.println("o numero é: "+num);
while (){

	}
	
}

}

você tem que converter a String para um Integer.

String s = "1";
Integer i = Integer.parseInt(s);

Pode usar também a classe java.util.Scanner, que possui métodos para ler números inteiros do teclado.

Obrigado…

vc podera fazer o seguinte para isto…

  
  if (n == new Integer(num).intValue()) {
      //o usuario acertou o numero
  }
 

ou tbm pode fazer assim:

  
  if (new Integer(n).equals(new Integer(num))) {
      //o usuario acertou o numero
  }
 

ou assim…

  
  if (new Integer(n).equals(Integer.parseInt(num))) {
      //o usuario acertou o numero
  }
 

mas vale lembrar que antes de converter o valor digitado em inteiro seria interresante vc valida-lo para saber se
o que o usuario digitou e realmente um numero… vai que ele digite um “sdfsdf” ou seila oq… vc recebera um belo de um NumberFormatException…

sim como eu faço para verificar se digitou um numero?

Acho que você quis dizer: "Como eu faço para saber se o usuário acertou o número?"
Se não for, peço desculpas. Se for, coloque essa condição no seu while:

enquanto (numero_digitado != numero_sorteado) { // Obtenha novo número do usuário }
Abraços

está-me acontecer-me isto se o que digitar não for um numero

java.lang.NumberFormatException

como se resolve isto

desculpem mas eu ainda percebo muito pouco disto…

Sugiro que você não se preocupe com isso agora.
Primeiro escreva o seu programa assumindo que todas as entradas serão corretas. Quando tudo estiver funcionando, poste seu código aqui e discutiremos uma forma mais robusta de tratar os erros.
Abraços

Já consegui agora apenas me dá erro java.lang.NumberFormatException se introduzir um numero muito grande…

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;

public class exercicio2 {
public static void main(String[] args) throws IOException {
Random aleatorio= new Random();
int n= aleatorio.nextInt();
System.out.println("n = "+n);
int m=1;
int acertou=0;
while(m!=10 && acertou!=1){
InputStreamReader usuario = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader (usuario);
System.out.println(“Introduza um numero:”);
String num = input .readLine();
long i = Integer.parseInt(num);
if (i>n){
System.out.println("o numero é: "+num+“o numero é maior”);
}else{
if(i<n){
System.out.println(“o numero é: “+num+” o numero é menor”);
}else{
if(i==n){
System.out.println("Acertou no numero: "+num);
acertou++;
}
}

			}	
		m++;
	}				
}

}

NumberFormatException é um erro que você pode tratar através de instruções específicas da linguagem:

try { // Código passível de erro } catch (NumberFormatException ex) { // Tratamento do erro ocorrido }
Você terá que estudar tratamento de exceções.

ok muito obrigado a todos consegui os meus objectivos…

[quote=MADMAX1]Já consegui agora apenas me dá erro java.lang.NumberFormatException se introduzir um numero muito grande…

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;


public class exercicio2 {
	public static void main(String[] args) throws IOException {
		Random aleatorio= new Random();
		int n= aleatorio.nextInt();
		System.out.println("n = "+n);
		int m=1;
		int acertou=0;
		while(m!=10 && acertou!=1){
			InputStreamReader usuario = new InputStreamReader(System.in);
			BufferedReader input = new BufferedReader (usuario);
			System.out.println("Introduza um numero:");
			String num = input .readLine(); 
			long i = Integer.parseInt(num);
			if (i>n){
				System.out.println("o numero é: "+num+"o numero é maior");
			}else{
					if(i<n){
						System.out.println("o numero é: "+num+" o numero é menor");
					}else{
						if(i==n){
							System.out.println("Acertou no numero: "+num);
							acertou++;
						}
					}
						
				}	
			m++;
		}				
	}
}

[/quote]

Só um problema:
Você cria um InputReader para cada vez que ele digitar:

//...
while(m!=10 && acertou!=1){
			InputStreamReader usuario = new InputStreamReader(System.in);
			BufferedReader input = new BufferedReader (usuario);
			System.out.println("Introduza um numero:");
			String num = input .readLine(); 
//...

E não fecha os Streams. se fossem 50 tentativas isso podia até travar a JVM

A solução é criar apenas um objeto e usar quantas vezes forem necessarias:

//...
			InputStreamReader usuario = new InputStreamReader(System.in);
			BufferedReader input = new BufferedReader (usuario);

while(m!=10 && acertou!=1){
			System.out.println("Introduza um numero:");
			String num = input .readLine(); 
			long i = Integer.parseInt(num);

//...
//e depois que sair do while
try{
input.close();
}catch(Exception e){  e.printStackTrace();  }

E não devo fazer isso?

Desculpa não termina apertei sem querer em Submit