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: