Jump to content
calvin

[Resolvido] Slot Macine

Recommended Posts

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
}

}
}
}
}
}

}
}
}

Edited by brunoais
geshi

Share this post


Link to post
Share on other 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!!

Share this post


Link to post
Share on other 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.

Edited by Finrod

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.