Olá, sou novo aqui no fórum.
Preciso fazer o jogo, pedra, papel, tesoura com interface gráfica.
São três jogador, então coloquei 3 comoBox e cada um com a opções pedra, papel, tesoura e depois tem um botão jogar para díspar a comparação.
Preciso fazer os ifs da vida e passar a mensagem para um textFiled ou um label com a mensagem empate ou jogador x é o vencedor.
O primeiro problema é que empaquei até na hora de consegui pegar a opção do jogar e passar para uma variável qualquer para depois fazer a comparação
String res1;
String res2;
String res3;
public void res(String res1, String res2, String res3){
this.res1 = res1;
this.res2 = res2;
this.res3 = res3;
}
@SuppressWarnings(“unchecked”)
// <editor-fold defaultstate=“collapsed” desc=“Generated Code”>
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
j2 = new javax.swing.JComboBox();
j1 = new javax.swing.JComboBox();
j3 = new javax.swing.JComboBox();
lPlacar = new javax.swing.JLabel();
jogar = new javax.swing.JButton();
res = new javax.swing.JTextField();
l1 = new javax.swing.JLabel();
l2 = new javax.swing.JLabel();
l3 = new javax.swing.JLabel();
private void jogarActionPerformed(java.awt.event.ActionEvent evt) {
res.setText(j1.getSelectedItem().toString());
res.setText(j2.getSelectedItem().toString());
res.setText(j3.getSelectedItem().toString());
/* assim não deu certo
res1 =((String)(j1.getSelectedItem()));
res2 =((String)(j2.getSelectedItem()));
res3 =((String)(j3.getSelectedItem()));*/
}
private void j1ActionPerformed(java.awt.event.ActionEvent evt) {
res1 =((String)(j1.getSelectedItem()));
}
private void j2ActionPerformed(java.awt.event.ActionEvent evt) {
res2 =((String)(j2.getSelectedItem()));
}
private void j3ActionPerformed(java.awt.event.ActionEvent evt) {
res3 =((String)(j3.getSelectedItem()));
}
// Variables declaration - do not modify
private javax.swing.JComboBox j1;
private javax.swing.JComboBox j2;
private javax.swing.JComboBox j3;
private javax.swing.JLabel jLabel1;
private javax.swing.JButton jogar;
private javax.swing.JLabel l1;
private javax.swing.JLabel l2;
private javax.swing.JLabel l3;
private javax.swing.JLabel lPlacar;
private javax.swing.JTextField res;
// End of variables declaration
}
Cara, é só fazer a mesma coisa.
ou
[quote=xxMAGRAOxx]Cara, é só fazer a mesma coisa.
ou
Obrigado pela ajuda… mais não deu certo, sou iniciante de mais, porem na facu tenho que fazer esse exercicio e como sempre preciso aprender mais por fora do que pela facu.
Olha de uma olhada, o que estou fazendo de errado.
j1.setText(j1.getSelectedItem().toString()); // assim não deu
res1.getSelectedItem().toString(); // assim não deu
j3.getSelectedItem().toString(); // assim não da erro, mais também no teste atual, não aparece o texto [empate], que precisa aparecer na variavel res que é um textField
if(j1.equals("Pedra") && j1.equals("Pedra") && j1.equals("Pedra")){
System.out.println("Empate");
}
Obrigado pela ajuda…
Entendo, ja passei muito por isso com a faculdade.
Então, olha só.
As váriaveis res1, res2 e res3 estão pegando o valor que está nos comboBoxs.
res1 = j1.getSelectedItem().toString();
res2 = j2.getSelectedItem().toString();
res3 = j3.getSelectedItem().toString();
Ao clicar no botão jogar é só fazer isso:
if(res1.equals(res2) && res1.equals(res3)){
System.out.println("Empate");
etc...
}
Agora, se continuar dando errado o problema está em outra coisa. Daí é só vc postar o erro e o código que te ajudo.
Abraços!
[quote=xxMAGRAOxx]Entendo, ja passei muito por isso com a faculdade.
Então, olha só.
As váriaveis res1, res2 e res3 estão pegando o valor que está nos comboBoxs.
res1 = j1.getSelectedItem().toString();
res2 = j2.getSelectedItem().toString();
res3 = j3.getSelectedItem().toString();
Ao clicar no botão jogar é só fazer isso:
if(res1.equals(res2) && res1.equals(res3)){
System.out.println("Empate");
etc...
}
Agora, se continuar dando errado o problema está em outra coisa. Daí é só vc postar o erro e o código que te ajudo.
Abraços![/quote]
Estamos chegando lá.
Ex, se o res1 for pedra && res2 for pedra && res2 for pedra
msg: empate
se o res1 for papel && res2 for tesoura && res2 for papel
msg: Jogado 2 venceu
se res1 for papel && res2 for tesoura && res2 for tesoura
msg: Jogado 1 tá fora… continuando jogo
ect… esse é o meu desafio…
neste forma como seria?
if(res1.equals(res2) && res1.equals(res3)){ //jogador res1, res2, res3 são iguais, mais não tem como o sistema saber qual exatamente foi a escolha, parece que assim não tem jeito de comparar se o res1 ganhou do res2 ou empatou ou perdeu para o res3, pois o fato dele ser diferente pode caracterizar derrota ou vitoria...
System.out.println("Empate");
etc...
}
Nossa… como eu estou dando trabalho, será que expressei bem…
obrigado por enquanto…
Ih Brother. O que eu te dei foi só a ponta do iceberg. Vc terá que fazer uma série de ifs aninhados para resolver tal algoritmo.
Fiz uma amostra do que te espera.
if(res1 == "pedra" && res2 == "papel"){//Começo das comparações
j2.setEnable(false);//Jogador 1 eliminou o jogador 2. Desabilita o jogador 2 e continua o jogo
if(res1 == "pedra" && res3 == "papel"){
j3.setEnable(false);//Jogador 1 eliminou o jogador 2 e o jogador 3. Fim de jogo
}else if(res1 == "papel" && res3 == "pedra"){
j3.setEnable(false);//Jogador 1 eliminou o jogador 2 e o jogador 3. Fim de jogo
}else{
j1.setEnable(false);//Se o jogador 1 ganhou do 2 mas perdeu pro 3 em qualquer condicao o jogador 3 eh o vencedor.
}
}else if(res1 == "papel" && res2 == "pedra"){
j2.setEnable(false);
if(res1 == "pedra" && res3 == "papel"){
j3.setEnable(false);
}else if(res1 == "papel" && res3 == "pedra"){
j3.setEnable(false);
}else{
j1.setEnable(false);
}
}else{
j1.setEnable(false);
}
//Agora começa com o j2 e por ai vai
//setEnable é para sumir com o comboBox perdedor
Vc vai ter que quebrar a cabeça um pouco ai. Estou indo dormir.
Depois posta o progresso.
Abraços!
[quote=xxMAGRAOxx]Ih Brother. O que eu te dei foi só a ponta do iceberg. Vc terá que fazer uma série de ifs aninhados para resolver tal algoritmo.
Fiz uma amostra do que te espera.
if(res1 == "pedra" && res2 == "papel"){//Começo das comparações
j2.setEnable(false);//Jogador 1 eliminou o jogador 2. Desabilita o jogador 2 e continua o jogo
if(res1 == "pedra" && res3 == "papel"){
j3.setEnable(false);//Jogador 1 eliminou o jogador 2 e o jogador 3. Fim de jogo
}else if(res1 == "papel" && res3 == "pedra"){
j3.setEnable(false);//Jogador 1 eliminou o jogador 2 e o jogador 3. Fim de jogo
}else{
j1.setEnable(false);//Se o jogador 1 ganhou do 2 mas perdeu pro 3 em qualquer condicao
}
}else if(res1 == "papel" && res2 == "pedra"){
j2.setEnable(false);
if(res1 == "pedra" && res3 == "papel"){
j3.setEnable(false);
}else if(res1 == "papel" && res3 == "pedra"){
j3.setEnable(false);
}else{
j1.setEnable(false);
}
}else{
j1.setEnable(false);
}
//Agora começa com o j2 e por ai vai
//setEnable é para sumir com o comboBox perdedor
Vc vai ter que quebrar a cabeça um pouco ai. Estou indo dormir.
Depois posta o progresso.
Abraços![/quote]
Amigo, obrigadão mesmo, acho que agora vai…
Sucesso…