Ir ao conteúdo

Jogo de Pokenpo


.Halloween.

Posts recomendados

Postado

fiz um jogo de jokenpo so que preciso que seja com math.random e nao estou conseguindo adicionar.

tenho que excluir o jogador 2 e coloca como se tivesse um jogador com a maquina e nao um jogador contra o outro.]

alguem pode me dar algumas dicas de como inserir.

-------------


public class pedra {

public static void main(String[] args) {
{
String jogador1, jogador2;
String jogada1, jogada2, st, s;
int j1 = 0;
int j2 = 0;

jogador1 = "Informe o nome do jogador1: ";
jogador1 = JOptionPane.showInputDialog(jogador1);

jogador2 = "Informe o nome do jogador2: ";
jogador2 = JOptionPane.showInputDialog(jogador2);


while(j1 < 3 && j2 < 3)
{

jogada1 = "Informe a jogada do jogador1: ";
jogada1 = JOptionPane.showInputDialog(null, jogada1);

jogada2 = "Informe a jogada do jogador2: ";
jogada2 = JOptionPane.showInputDialog(null, jogada2);

if(jogada1.equals("tesoura") && jogada2.equals("tesoura"))
{
st = "Empate " + (j1 + " x " + j2);
JOptionPane.showMessageDialog(null, st, "Mensagem", 1);
}

if(jogada1.equals("pedra") && jogada2.equals("pedra"))
{
st = "Empate " + (j1 + " x " + j2);
JOptionPane.showMessageDialog(null, st, "Mensagem", 1);
}

if(jogada1.equals("papel") && jogada2.equals("papel"))
{
st = "Empate " + (j1 + " x " + j2);
JOptionPane.showMessageDialog(null, st, "Mensagem", 1);
}

if(jogada1.equals("tesoura") && jogada2.equals("papel"))
{
j1++;
s = "Resultado " + (j1 + " x " + j2);
JOptionPane.showMessageDialog(null, s, "Mensagem", 1);
}

if(jogada1.equals("tesoura") && jogada2.equals("pedra"))
{
j2++;
s = "Resultado " + (j1 + " x " + j2);
JOptionPane.showMessageDialog(null, s, "Mensagem", 1);
}

if(jogada1.equals("papel") && jogada2.equals("pedra"))
{
j1++;
s = "Resultado " + (j1 + " x " + j2);
JOptionPane.showMessageDialog(null, s, "Mensagem", 1);
}

if(jogada1.equals("papel") && jogada2.equals("tesoura"))
{
j2++;
s = "Resultado " + (j1 + " x " + j2);
JOptionPane.showMessageDialog(null, s, "Mensagem", 1);
}

if(jogada1.equals("pedra") && jogada2.equals("papel"))
{
j2++;
s = "Resultado " + (j1 + " x " + j2);
JOptionPane.showMessageDialog(null, s, "Mensagem", 1);
}

if(jogada1.equals("pedra") && jogada2.equals("tesoura"))
{
j1++;
s = "Resultado " + (j1 + " x " + j2);
JOptionPane.showMessageDialog(null, s, "Mensagem", 1);
}

}

if(j1 == 3)
{
jogador1 = "O ganhador foi o jogador 1!";
JOptionPane.showMessageDialog(null, jogador1, "Mensagem", 1);
}else
{
jogador2 = "O ganhador foi o jogador2!";
JOptionPane.showMessageDialog(null, jogador2, "Mensagem", 1);
}


}
}
import javax.swing.JOptionPane;;  

  • Membro VIP
Postado

Olá .Halloween., seja bem vindo ao Fórum do Clube do Hardware. :lol:

Então, poste o seu código com a tentativa utilizando o Math.random() e no caso como está tentando fazer...

De qualquer sorte, vai ai algumas dicas (se preferir, para ser avaliadas mais adiante):

- As condições são mutualmente exclusivas entre si, ou seja, devem-se utilizar if/else nesses casos;

- Ao perguntar a jogada, faltou especificar o que deve ser escrito;

- Ao exibir o resultado, o programa não está avisando quem ganhou, simplesmente está aparecendo o resultado atualizado.

- Seu algoritmo tem muito código repetido, dá para simplificar.

- Por ai vai...

No aguardo.

Postado

cara vocês deu dicas que eu nao tinha repado !! muito obrigado!!

System.out.print("Informe quantos round deseja jogar = ");
round= scan.nextInt();

para

JOptionPane.showInputDialog

nao sei fazer quando tem o scanner, pode me disser.

so que ainda nao entendi como tirar o jogador 2 e colocar a maquina com random sem ter que criar um classe pra isso. eu so queria colocar o random no lugar do jogador 2.

  • Membro VIP
Postado

Pesquise no "Google" com os termos:

random java

Analise os exemplos e tente entender o funcionamento do Math.random(), como montar uma fórmula para trabalhar com somente 3 possibilidades, e daí, com essa margem de possibilidades, associa cada um dos valores a uma respectiva escolha (pedra, papel ou tesoura).

Tipo, se gerar "1", é pedra, se "2" é papel e se "3" é tesoura. ^_^

No aguardo.

Postado

amigo como eu faço para quebrar linha dento do print.

System.out.println(" Resultado " + (j1 + " x " + j2) + " parabens " + jogador1 + a Tesoura Cortou o papel);

fico muito grande a linha eu gostaria de dividir em duas.

a parte da tesoura cortou o papel gostaria de coloca em outra linha

------

"\n " consegui.

  • Moderador
Postado

não sei se resolve mas tenta usar o "\n" que a maioria das linguagens aceitam como o php e python


System.out.println(" Resultado " + (j1 + " x " + j2) + "[B][COLOR="Red"]\n[/COLOR][/B]parabens " + jogador1 + a Tesoura Cortou o papel);

junto mesmo assim, se der espaço a palavra parabens vai aparecer adiantada na linha

Postado

amigos muito obrigado pelas dicas !!

refiz o codigo com as dicas.

mais no que eu ainda posso melhorar no codigo.

obrigado pelas dicas foram rapidas e uteis


import javax.swing.JOptionPane;;
public class pedra {

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);

String jogador1, jogador2;
int j1 = 0;
int j2 = 0;
int round, jogada1, jogada2;

System.out.print("Informe o nome do jogador 1 = ");
jogador1= scan.next();

System.out.print("Informe o nome do jogador 2 = ");
jogador2= scan.next();

System.out.print("Informe quantos round deseja jogar = ");
round= scan.nextInt();


while(j1 < round && j2 < round)
{

System.out.print("jogada de " +jogador1+ ":pedra(1) - papel(2) - tesoura(3) ");
jogada1= scan.nextInt();

jogada2=1+(int)(Math.random( )*3);

if(jogada1 == 3 && jogada2 == 3)
{
System.out.println(" Empate " + (j1 + " x " + j2));
}

if(jogada1 == 1 && jogada2 == 1)
{
System.out.println(" Empate " + (j1 + " x " + j2));
}

if(jogada1 == 2 && jogada2 == 2)
{
System.out.println(" Empate " + (j1 + " x " + j2));
}

if(jogada1 == 3 && jogada2 == 2)
{
j1++;
System.out.println(" parabens " + jogador1+ "\n " + "A tesoura cortou o papel !! "+ "\n " + " Resultado " + (j1 + " x " + j2));
}

if(jogada1 == 3 && jogada2 == 1)
{
j2++;
System.out.println(" parabens " + jogador2+ "\n " + "A tesoura foi destruida pela pedra " + "\n " + " Resultado " + (j1 + " x " + j2));
}

if(jogada1 == 2 && jogada2 == 1)
{
j1++;
System.out.println(" parabens " + jogador1 + "\n " + "O Papel superou a pedra !! "+ "\n " + " Resultado " + (j1 + " x " + j2));
}

if(jogada1 == 2 && jogada2 == 3)
{
j2++;
System.out.println(" parabens " + jogador2+ "\n " + "O Papel foi cortado pela tesoura "+ "\n " + " Resultado " + (j1 + " x " + j2));
}

if(jogada1 == 1 && jogada2 == 2)
{
j2++;
System.out.println(" parabens " + jogador2+ "\n " + "A pedra foi engolida pelo papel "+ "\n " + " Resultado " + (j1 + " x " + j2));
}

if(jogada1 == 1 && jogada2 == 3)
{
j1++;
System.out.println(" parabens " + jogador1+ "\n " + "A pedra esmagou a tesoura"+ "\n " + " Resultado " + (j1 + " x " + j2));
}

}

if(j1 == round)
{
jogador1 = "O ganhador foi " + jogador1;
System.out.println(jogador1);
}else
{
jogador2 = "O ganhador foi " + jogador2;
System.out.println(jogador2);
}


}
}
import java.util.Scanner;

  • Moderador
Postado

BOm sobre matrizes eu não sei te ajudar em java.. mas posso te dar uma dica para encurtar seu código e otimizar.

Como você atribuiu ali a cada jogada um numero.. podes fazer um calculo simples e 1 bloco de if , else if e else para testar ... eliminando assim aquele monte de ifs.

por exemplo:



resultado = (jogada2 - jogada1)) % round;

if (resultado == 0){
System.out.println("Houve um empate!");
}else if (resultado == 1){
System.out.println("O olayer2 ganhou!");
}else{
System.out.println("player1 ganhou!");
}

poderias fazer com switch case também desta forma:



resultado = (jogada2 - jogada1)) % round;

switch(resultado)
{
case 0: System.out.println("Houve um empate!"); break;
case 1: System.out.println("O player2 ganhou!"); break;
case 2: System.out.println("O player1 ganhou!"); break;
}

fica aí a dica!

  • Moderador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!