Jogo de dados bem simples

estava vasculhando meus estudos e testes e programas e achei este joguinho de dados. foi um dos primeiros que fiz. depois melhorei, fiz a soma do número de vitórias e algumas outras coisas, mas segue aí o código para alguém olhar e quem sabe até brincar…

isso depois evoluiu para um jogo de tabuleiros que fiz, onde os dados já funcionam com imagens, podemos usar um ou dois dados de acordo com o comportamento da casa. se alguém se interessar posso postar o jogo de tabuleiros, é bem interessante. claro é uma versão e pode melhorar. mas bons projetos comecam pequenos, quem sabe um dia fica bacana, a base programacional é bem interessante.

segue o jogo simples:

versao 1.0

foi feito no netbeans, e ele as vezes ‘chia’ desta biblioteca grouplayout, tem que procurar e adicionar ela no projeto. aguardo coments.
para iniciante certamente isto é ‘legalzinho’… valeu.


/*
 * Tela.java
 *
 * Created on 3 de Agosto de 2009, 22:43
 */

package javaapplication10;

/**
 *
 * @author  raghyjose
 */
public class Tela extends javax.swing.JFrame {
    
    /** Creates new form Tela */
    public Tela() {
        initComponents();
    }
    int somaTotal=0;
    int jogadas=0;
     int njogadas=0;
     boolean vitoria=false;
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jBdoisDados = new javax.swing.JButton();
        jTdado1 = new javax.swing.JTextField();
        jTdado2 = new javax.swing.JTextField();
        jTsoma = new javax.swing.JTextField();
        jButton4 = new javax.swing.JButton();
        jTsomaTotal = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jTjogadas = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBorder(javax.swing.BorderFactory.createMatteBorder(2, 2, 2, 2, new java.awt.Color(0, 0, 0)));

        jBdoisDados.setText("2 Dados");
        jBdoisDados.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBdoisDadosActionPerformed(evt);
            }
        });

        jButton4.setText("limpar");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        jLabel1.setText("soma total:");

        jLabel2.setText("numero de jogadas:");

        jLabel3.setText("soma dos 2 dados:");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel2)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jTdado1, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jTdado2, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jBdoisDados)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButton4)))
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(57, 57, 57)
                                .addComponent(jLabel1))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(18, 18, 18)
                                .addComponent(jLabel3)))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jTsomaTotal, javax.swing.GroupLayout.DEFAULT_SIZE, 148, Short.MAX_VALUE)
                    .addComponent(jTjogadas)
                    .addComponent(jTsoma))
                .addContainerGap(55, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTdado1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTdado2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3)
                    .addComponent(jTsoma, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(31, 31, 31)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel1)
                            .addComponent(jTsomaTotal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel2)
                            .addComponent(jTjogadas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jBdoisDados)
                            .addComponent(jButton4))))
                .addContainerGap(39, Short.MAX_VALUE))
        );

        jLabel4.setFont(new java.awt.Font("Tahoma", 0, 18));
        jLabel4.setText("JOGO DOS DOIS DADOS");

        jLabel5.setText("Tente chegar até 100, com menos jogadas...");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(27, 27, 27)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(10, 10, 10)
                                .addComponent(jLabel5))
                            .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 291, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel5)
                .addGap(34, 34, 34)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(66, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jBdoisDadosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBdoisDadosActionPerformed
        if (somaTotal<100){
            if(vitoria==true){jogadas=0;
            vitoria=false;}
            
        int u=0;        int d=0;
        int t=0; 
        int q=0;
        int c=0;
        int s=0;
        double x=0;
        //cria o randomico
        x=Math.random()*6;
        x=x+1;
        //converte para int
       int b=(int)x;
         String b11= String.valueOf(b);
          jTdado1.setText(b11); 
        
       int u2=0;        int d2=0;
        int t2=0; 
        int q2=0;
        int c2=0;
        int s2=0;
        double x2=0;
        
        //cria o randomico
        x2=Math.random()*6;
        x2=x2+1;
        //converte para int
       int b2=(int)x2;  
       String b22= String.valueOf(b2);
          jTdado2.setText(b22); 
        
        
      int valor1=Integer.parseInt(jTdado1.getText());
           int valor2=Integer.parseInt(jTdado2.getText());
           int soma=valor1+valor2;
            jTsoma.setText("soma:"+soma); 
       
            //somatotal
          
       somaTotal=somaTotal+soma;
       
        if (somaTotal<100){
       jTsomaTotal.setText(" TOTAL: "+somaTotal);
            } else {
                 jTsomaTotal.setText(" TOTAL: "+somaTotal+"  VITORIA !!!");
                 somaTotal=0;
                 vitoria=true;
            }
        }
            
            
        jogadas=jogadas+1;
          jTjogadas.setText("Num de Jogadas="+jogadas)  ;
            
            
}//GEN-LAST:event_jBdoisDadosActionPerformed

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
      jTsoma.setText("");
      jTdado1.setText("");
           jTdado2.setText("");
           jTjogadas.setText("");
      jTsomaTotal.setText("");
      somaTotal=0;
      jogadas=0;
    }//GEN-LAST:event_jButton4ActionPerformed
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Tela().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jBdoisDados;
    private javax.swing.JButton jButton4;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTdado1;
    private javax.swing.JTextField jTdado2;
    private javax.swing.JTextField jTjogadas;
    private javax.swing.JTextField jTsoma;
    private javax.swing.JTextField jTsomaTotal;
    // End of variables declaration//GEN-END:variables
    
}

apartir daí desenvolvi um jogo de sorteio de mega-sena , também um de bingo, que tem estrutura parecida, pois sorteiam números randomicamente…

se alguém se interessar posto o código aqui, de fato o jar e o projeto é muito grande para por como arquivo para download ou no anexo.

valeu.

raghy@ig.com.br
estou de olho no meu xadrez, yatzi(general), alguma colaboracao com TCP-IP? para conectar dois jogadores?
podiamos comecar, com um simples jogo de dados para depois fazer algum projeto mais ousado de jogo multiplayer.
grato.

:roll:

e aí deu para conhecer, jogar?

segue a biblioteca que pode faltar, ponha numa pasta lib, se ainda não funcionar só com ela, ‘por perto’ do arquivo.

e do tcp, ip, coments?

achei uma apostila interesante na net.
fala de tcp, ip, segue aí

a apostila é muito grande… nao foi

raghy@ig.com.br