← Desenvolvimento

[JAVA]

Lida 3472 vezes

Offline

MadMaxPT 
Membro
Mensagens 6 Gostos 0
Troféus totais: 15
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 First Post Karma Seventh year Anniversary Sixth year Anniversary

Sugeriram-me este Fórum, porém não tenho tempo disponível para ler tudo o que andam a escrever por aí.
A minha dúvida não sei se está colocada no espaço correcto, se não estiver, coloquem por favor, e peço desde já as minhas desculpas.

A minha dúvida é simples e Objectiva.

Estou a criar Um Jogo em JAVA onde o utilizador tem que adivinhar o número que o computador lança, ou seja, o computador cria um número aleatório.

Agora o meu problema é como guardar esse número aleatório, eis o código:

Código: (java) [Seleccione]
int n_secreto = (int) (1 +(Math.random() * 100));
Agora como guardo esse número para depois utilizar nos while's e if's?

Aguardo resposta.

Cumprimentos,
Rafael Ferreira
Offline

johndays 
Membro
Mensagens 387 Gostos 1
Feedback +3

Troféus totais: 24
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts

Penso que ao declarares a variável como aleatória, ela fica logo guardada.

No entanto (1 +(Math.random() * 100)), isto está correcto? Queres um número aleatório de 1-100, certo?

Agora é só fazeres o ciclo while, penso que o if dar-te ia muito mais trabalho.
Offline

MadMaxPT 
Membro
Mensagens 6 Gostos 0
Troféus totais: 15
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 First Post Karma Seventh year Anniversary Sixth year Anniversary

Sim daria muito mais trabalho, mas aquilo que gostaria de fazer seria:

Vou elaborar tipo um algoritmo:

O computador calcula o número aleatório.
O utilizador insere um número entre 0 e 100.
O computador analisa se o número dado pelo utilizador é maior, igual ou menor que o calculado pelo computador, informando ao utilizador se este é maior, igual ou menor.
Se o número é igual ele informa que ganhou.
Se o número é menor ou maior, ele informa respectivamente se o é.
Então se o número não for igual ele volta atrás para fazer novamente o processo, até chegar ao número que o computador calculou.

E ainda não estou a colocar aqui por exemplo um contador para dificultar um pouco a situação, agradecia que me ajudassem.

Cumps,
Rafael Ferreira
Offline

johndays 
Membro
Mensagens 387 Gostos 1
Feedback +3

Troféus totais: 24
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts

public class Main {

int n_secreto = (int) (1 +(Math.random() * 100));
    public static void main(String[] args) {
        Main random = new Main();
        int var1;
        String vAux;
       

        vAux= JOptionPane.showInputDialog("Insira o número");
        var1= Integer.parseInt(vAux);

        if(var1==random.n_secreto){
            JOptionPane.showMessageDialog(null,"Parabéns, acertou à 1ª tentativa");
        }
        while(var1!=random.n_secreto){
            vAux= JOptionPane.showInputDialog("Insira outro número");
            var1= Integer.parseInt(vAux);
            if (var1==random.n_secreto)
            JOptionPane.showMessageDialog(null,"Parabéns, acertou pois o número era "+var1);
               

}


Já está a funcionar, este código faz com que o programa crie um número aleatório entre o intervalo que pediste, e verifique se é = ou diferente, se for igual, informa que está certo, senão manda repetir, agora tu fazes o resto, pois é muito fácil :P .

Mesmo com contador, torna-se fácil. Se tiveres dúvidas apita.
Offline

MadMaxPT 
Membro
Mensagens 6 Gostos 0
Troféus totais: 15
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 First Post Karma Seventh year Anniversary Sixth year Anniversary

Quer dizer eu sou iniciante em JAVA, e sinceramente não sei o que quer dizer os "var's", mas se me explicares, poderei saber :P

Cumps,
Rafael Ferreira
Offline

MadMaxPT 
Membro
Mensagens 6 Gostos 0
Troféus totais: 15
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 First Post Karma Seventh year Anniversary Sixth year Anniversary

Como é que incremento um valor na variável? ou decremento?

Cumps,
Rafael Ferreira
Offline

jtk 
Membro
Mensagens 141 Gostos 0
Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Visita

http://download.oracle.com/javase/tutorial/java/TOC.html

tens lá a resposta as tuas duvidas, e muito mais informação, e também podes procurar um livro de java na net ;)

int a;

a++; //Incremento
a--;  //Decremento

ou podes fazer a = a - 1;
Offline

johndays 
Membro
Mensagens 387 Gostos 1
Feedback +3

Troféus totais: 24
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts

Já está mais ou menos percebido? Se quiseres posso meter tudo direitinho.
Offline

MadMaxPT 
Membro
Mensagens 6 Gostos 0
Troféus totais: 15
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 First Post Karma Seventh year Anniversary Sixth year Anniversary

Está + ou - percebido, mas mesmo assim não consigo resolver isso.. Sobretudo a parte do contador etc..
Offline

cgoncalves 
Membro
Mensagens 789 Gostos 0
Feedback +12

Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Isso é muito básico, mas pronto, uma solução simples é:

Código: (java) [Seleccione]
import java.util.Scanner;

/**
 *
 * @Carlos Gonçalves
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
            int n_secreto = (int) (1 +(Math.random() * 100));
            int contador = 0;
            int num;
           Scanner in = new Scanner(System.in);
            System.out.println("Insira o número");
                num = in.nextInt();
                contador++;
                if (n_secreto == num)
                    System.out.println("Parabéns, acertou à "+contador+"ª tentativa");

                else
                {
                    while(num != n_secreto){
                        System.out.println("Errado! Insira outro número\n");
// apenas para sabermos qual é o número secreto para testares que funciona, depois é só apagar a linha abaixo
                        System.out.println(n_secreto);
                        num = in.nextInt();
                        contador++;
                        if (num == n_secreto)
                            System.out.println("Parabéns, acertou pois o número era "+num+"à "+contador+"ª tentativa");
                    }
                }
    }
}
Offline

MadMaxPT 
Membro
Mensagens 6 Gostos 0
Troféus totais: 15
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 First Post Karma Seventh year Anniversary Sixth year Anniversary

Até aí eu conseguia fazer mais ou menos isso ^^

Mas.. O que gostava de fazer seria isso:[COM CONTADOR]

O computador calcula o número aleatório.
O utilizador insere um número entre 0 e 100.
O computador analisa se o número dado pelo utilizador é maior, igual ou menor que o calculado pelo computador, informando ao utilizador se este é maior, igual ou menor.
Se o número é igual ele informa que ganhou.
Se o número é menor ou maior, ele informa respectivamente se o é.
Então se o número não for igual ele volta atrás para fazer novamente o processo, até chegar ao número que o computador calculou.


Se o número é inferior ao que o computador calcula ele avisa que o numero secreto é maior, e vice-versa.. :s

Cumps,
Rafael Ferreira
Offline

cgoncalves 
Membro
Mensagens 789 Gostos 0
Feedback +12

Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Até aí eu conseguia fazer mais ou menos isso ^^

Mas.. O que gostava de fazer seria isso:[COM CONTADOR]

O computador calcula o número aleatório.
O utilizador insere um número entre 0 e 100.
O computador analisa se o número dado pelo utilizador é maior, igual ou menor que o calculado pelo computador, informando ao utilizador se este é maior, igual ou menor.
Se o número é igual ele informa que ganhou.
Se o número é menor ou maior, ele informa respectivamente se o é.
Então se o número não for igual ele volta atrás para fazer novamente o processo, até chegar ao número que o computador calculou.


Se o número é inferior ao que o computador calcula ele avisa que o numero secreto é maior, e vice-versa.. :s

Cumps,
Rafael Ferreira

Ora se testaste o que disse consegues ver que ele usa o contador.

Para fazer o que queres, só precisas no while de acrescentar mais um if que verifica se ele é maior ou menor que o número introduzido pelo utilizador, i.e:

if( num > n_secreto)
System.out.println("O número secreto é inferior ao introduzido");

if (num < n_secreto)
System.out.println("O número secreto é maior ao introduzido");