Ir para o conteúdo
calvin

[Resolvido] Slot Macine

Mensagens Recomendadas

calvin

Boa noite a todos,

Estou com um problema no jogo que desenvolvi fiz uma slot machine mas não consigo que quando se gera os números ele conte se existe duplos e acrescente ou decrescente o numero de créditos disponíveis.

Gostaria se fosse possível uma ajudinha da vossa parte se não for pedir muito.

O código que tenho é este:


package slot.machine;

* ******** IMPORTAÇÃO / CHAMAMENTO DAS BIBLIOTECAS / CLASSES *********
*/
import java.awt.*;        
import java.awt.event.*;
import javax.swing.*;
import java.util.Random;
/*
* ******** PAINEL DA SLOT MACHINE **************
*/
public class SlotMachinePanel extends JPanel {
/*
    * **** VARIVAEIS PRIVADAS
    */
private int random1;
private int random2;
private int random3;
private int coinCount;
private int doubles;
private int triples;
private int numberOfPulls;

private JButton pull;
private JLabel instruction;
private JLabel number1;
private JLabel number2;
private JLabel number3;
private JLabel numberOfDoubles;
private JLabel numberOfTriples;
private JLabel numberOfPullsLabel;
private JLabel coin;
    /*
        * ******* SLOT MACHINE ELABORAÇÃO E FUNCIONAMENTO ********
        */
public SlotMachinePanel ()
{
/*
    * ********** INICIALIZAÇÃO DAS VARIAVEIS ************
    */
coinCount = 5;
random1 = 0;
random2 = 0;
random3 = 0;
doubles = 0;
triples = 0;
instruction = new JLabel ("Clique no Botão e tente a sua sorte!");
coin = new JLabel ("Você têm " + coinCount + " créditos para jogar");
pull = new JButton ("Jogar");
pull.addActionListener (new ButtonListener());

number1 = new JLabel ("" + random1);
number1.setFont (new Font ("Helvitica", Font.BOLD, 40));
number2 = new JLabel ("" + random2);
number2.setFont (new Font ("Helvitica", Font.BOLD, 40));
number3 = new JLabel ("" + random3);
number3.setFont (new Font ("Helvitica", Font.BOLD, 40));
numberOfDoubles = new JLabel ("Número de duplos:" + doubles);
numberOfTriples = new JLabel ("Número de Triplos:" + triples);
numberOfPullsLabel = new JLabel ("Você clicou no botão " + numberOfPulls + " vezes.");
add (instruction);
add (coin);
add (pull);
add (number1);
add (number2);
add (number3);
add (numberOfDoubles);
add (numberOfTriples);
add (numberOfPullsLabel);
setPreferredSize (new Dimension(250,200));
//setBackground (Color.BLUE);
}
private class ButtonListener implements ActionListener {
public void actionPerformed (ActionEvent event){
Random generator = new Random();
random1 = generator.nextInt(9) +1;
random2 = generator.nextInt(9) +1;
random3 = generator.nextInt(9) +1;
number1.setText ("" + random1);
number2.setText ("" + random2);
number3.setText ("" + random3);



if ((random1==random2)&&(random1==random3)&&(random2==random3))
{
//Chamamento da função do dinheiro do prémio

//Exibe mensagem a dizer que ganhou
}
else
{
if ((random1==random2)&&(random1!=random3)&&(random2!=random3))
{
//Conta os duplos e acrescenta um crédito
}
else
{
if ((random1==random3)&&(random1!=random2)&&(random3!=random2))
{
//Conta os duplos e acrescenta um crédito
}
else
{
if ((random2==random3)&&(random2!=random1)&&(random3!=random1))
{
//Conta os duplos e acrescenta um crédito
}
else
{
if ((random1!=random2)&&(random2!=random3)&&(random1!=random3))
{
if(coinCount!=0)
{
//retira 1 crédito
}
else
{
//Termina o jogo com a exibição de uma mensagem e volta ao menu
}

}
}
}
}
}

}
}
}

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
calvin

Alguém me pode dizer como faço é que já tentei colocar a retirar créditos e a adicionar e não funciona dentro dos if's!!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Finrod

Boas,

Olhando para o teu código, as condições dos if's têm redundância. Dando um pequeno exemplo de lógica para perceberes aquilo a que me refiro: se A = B e A = C, então obrigatóriamente B = C, ou seja estás a fazer comparações desnecessárias, só necessitando de 2 comparações nas condições de cada um dos if's. Não há problema nisso que fizeste, mas como disse é desnecessário.

Quanto ao uso que fizeste dos if's e else's, não te aconselho a fazer dessa maneira. A tua estrutura divide-se em if e else, depois dentro do else tens novamente um if e else e assim sucessivamente. Podes minimizar o código usando uma estrutura deste tipo:

if (condição) { //código }

else if (condição) { //código }

else if (condição) { //código }

...

else { //código }

Refiz essa parte do teu código, caso queiras experimentar:


if(random1==random2 && random1==random3)
{

//Chamamento da função do dinheiro do prémio

//Exibe mensagem a dizer que ganhou

}

else if( random1==random2 && random1!=random3 || random1==random3 && random1!=random2 || random2==random3 && random2!=random1)
{

//Conta os duplos e acrescenta um crédito

}

else
{
if(coinCount!=0)
{
	//retira 1 crédito
}

else
{
	//Termina o jogo com a exibição de uma mensagem e volta ao menu
}
}

Assim ficas com menos código e sem redundâncias.

Quanto ao problema (se persistir), se estiveres a usar um IDE como o NetBeans ou Eclipse, podes sempre tentar utilizar o debug ou então, se não souberes utilizar isso, coloca alguma mensagem de output dentro de todos os if's e else's, para veres se o programa "entra" em algum deles.

Editado por Finrod

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.