Ae galera, blz ? Primeiramente queria dar parabens ao forum ai, mto bom! to lendo sempre, mas me cadastrei soh agora!
Assim, to fazendo um jogo de papel, pedra e tesoura, porem nao consigo atribuir valores aos meus metodos. Tipo, deixa eu colocar aki pra me expressar melhor:
[code]class JoKenPo
{
// Escolha do número de jogos
void novoJogo(int n)
{
if(n%2==1)
System.out.println(""+n+" Partida(s) Escolhida(s)");
else
System.out.println(“Escolha um Numero de Partidas Que Seja Impar!”);
}
int e;
int n;
// Escolha do Jogador
void escolhaDoJogador(int escolha)
{
if(escolha==1)
System.out.println(“Sua escolha foi “+escolha+”-Papel”);
else if(escolha==2)
System.out.println(“Sua escolha foi “+escolha+”-Pedra”);
else if(escolha==3)
System.out.println(“Sua escolha foi “+escolha+”-Tesoura”);
else
System.out.println(“Escolha um numero de 1 a 3”);
e = escolha;
}
// Escolha do Computador(Aleatoria)
void escolhaDoComputador()
{
java.util.Random gerador = new java.util.Random();
int numeroAleatorio = gerador.nextInt(3) + 1; // 1 + número aleatório entre 0 e 2 => [1-3]
if(numeroAleatorio==1)
System.out.println(“A escolha do computador foi “+numeroAleatorio+”-Papel”);
if(numeroAleatorio==2)
System.out.println(“A escolha do computador foi “+numeroAleatorio+”-Pedra”);
if(numeroAleatorio==3)
System.out.println(“A escolha do computador foi “+numeroAleatorio+”-Tesoura”);
n = numeroAleatorio;
}
// É o início do jogo
void quemGanha()
{
if(e-n==0)
System.out.println(“Empate”);
else if(e-n==-1)
System.out.println(“Vitoria Do Jogador”);
else if(e-n==1)
System.out.println(“Vitoria Do Computador”);
else if(e-n==-2)
System.out.println(“Vitoria Do Computador”);
else if(e-n==2)
System.out.println(“Vitoria Do Jogador”);
}
void imprimirPlacar()
{
}
void proximaPartida()
{
}
}[/code]
Entao, to com um problema ali no metodo quemGanha().
Como fazer pra que dentro do if ele pegue o valor recebido pelos 2 metodos anteriores ? Como atribuir valores aos metodos ali ?
Nao sei se soube me expressar bem, qquer coisa eu escrevo com outras palavras…
Vlw quem puder ajudar!
EDIT.: Opa, acho q ja consegui!
Amigo,
Uma dica::
voce esta programando estruturado.
Utilize o poder da orientação a objetos.
utilize classes, atributos, construtores.
no seu condigo não vejo modificadores na classe nos atributos nem nos métodos.
agora uma orientação para seu problema.
sobre passagem por parâmetros
quando se trata de tipos básicos, como: int, double, float, char,…
a passagem é por valor.
int i = 2;
void teste(int b){
b = 3;
}
void roda(){
teste(i);
}
ao rodar i = 2;
agora quando se trata de objetos
a passagem é por referencia
public class Objeto{
private int atributo = 0;
public getAtributo(){
return atributo;}
}
public class Teste{
Objeto a = new Objeto();
a.setAtributo(1);
void teste(Objeto a){
a.setAtributo(3);
}
void roda(){
teste(a);
}
}
a.getAtributo retornara 3
Opa Gabiso, nao entendi tudo oq vc falou nao cara…to fazendo bacharelado em computacao na Usp, mas to no primeiro mes de aula ainda…nao sei mta coisa alem de int, double e void…estou fazendo como o professor esta dando as aulas, basicamente!
Isso ai eh um programa q o prof. mandou fazer, e falou q precisaria usar os seguintes metodosMétodos
· void novoJogo(n):
· void escolhaDoJogador(int escolha):
■ (1 = Papel, 2 = Pedra e 3 = Tesoura);
· void escolhaDoComputador():
· void quemGanha():
· void imprimirPlacar():
· void proximaPartida():
· boolean verificarTerminoDeJogo():
To usando DrJava tb…eu coloco JoKenPo jogo = new JoKenPo(); no painel de interacoes dps…tem uma interface grafica pra colocar ainda!
mas ve ae se ta orientado a objetos agora ou ta a mesma coisa:
class JoKenPo
{
//Variaveis inteiras auxiliares
int e; //Relaciona-se com escolha
int a; //Relaciona-se com numeroAleatorio
int c; //Pontos do Computador
int j; //Pontos do Jogador
int u; //Numero de Jogos
// Escolha do número de jogos
void novoJogo(int n)
{
if(n%2==1)
System.out.println(""+n+" Partida(s) Escolhida(s)");
else
System.out.println("Escolha um Numero de Partidas Que Seja Impar!");
u = n;
}
// Escolha do Jogador
void escolhaDoJogador(int escolha)
{
if(escolha==1)
System.out.println("Sua escolha foi "+escolha+"-Papel");
else if(escolha==2)
System.out.println("Sua escolha foi "+escolha+"-Pedra");
else if(escolha==3)
System.out.println("Sua escolha foi "+escolha+"-Tesoura");
else
System.out.println("Escolha um numero de 1 a 3");
e = escolha;
}
// Escolha do Computador(Aleatoria)
void escolhaDoComputador()
{
java.util.Random gerador = new java.util.Random();
int numeroAleatorio = gerador.nextInt(3) + 1; // 1 + número aleatório entre 0 e 2 => [1-3]
if(numeroAleatorio==1)
System.out.println("A escolha do computador foi "+numeroAleatorio+"-Papel");
if(numeroAleatorio==2)
System.out.println("A escolha do computador foi "+numeroAleatorio+"-Pedra");
if(numeroAleatorio==3)
System.out.println("A escolha do computador foi "+numeroAleatorio+"-Tesoura");
a = numeroAleatorio;
}
// É o início do jogo
void quemGanha()
{
if(e-a==0)
System.out.println("Empate");
else if(e-a==-1)
System.out.println("Vitoria Do Jogador");
else if(e-a==1)
System.out.println("Vitoria Do Computador");
else if(e-a==-2)
System.out.println("Vitoria Do Computador");
else if(e-a==2)
System.out.println("Vitoria Do Jogador");
}
// Mostra o Placar Atual
void imprimirPlacar()
{
if(e-a==-1)
j=j+1;
else if(e-a==1)
c=c+1;
else if(e-a==-2)
c=c+1;
else if(e-a==2)
j=j+1;
System.out.println("Computador: "+c+" - Jogador: "+j+"");
}
void proximaPartida()
{
}
boolean verificarTerminoDeJogo()
{
return ((c==(u+1)/2) || (j==(u+1)/2));
}
}
ta saindo!
Acho que la no método escolhaDoJogador(), quando vc verifica a opção no if, atribui o valor da escolha em e.
Tipo:
if(escolha == 1)
e = escolha;
E uma dica, de o nome da variavel condizente a que ela recebe. Tipo em vez de e coloque escolhaJogador.
O acréscimo do placar tem que estar dentro do método quemGanha().
No imprimePlacar só coloque a ultima linha.