All pastes #992274 Raw Edit

Miscellany

public java v1 · immutable
#992274 ·published 2008-04-21 18:38 UTC
rendered paste body
/* * Yahtzee.java * * Created on April 21, 2008, 3:40 PM */package yahtzeejouke;/** * * @author  Mats Willemsen */public class Yahtzee extends javax.swing.JFrame {    int nummers[] = new int[5];    int restnummers[] = new int[5];    boolean filled[] = new boolean[13];    int gerold = 0;    boolean haveToChoose = false;    boolean picked = false;    int welkeknop = 1;        /** Creates new form Yahtzee */    public Yahtzee() {        initComponents();        dobbel1.setEnabled(false);        dobbel2.setEnabled(false);        dobbel3.setEnabled(false);        dobbel4.setEnabled(false);        dobbel5.setEnabled(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">    private void initComponents() {        jScrollPane1 = new javax.swing.JScrollPane();        tabelBoven = new javax.swing.JTable();        jScrollPane2 = new javax.swing.JScrollPane();        tabelOnder = new javax.swing.JTable();        jScrollPane3 = new javax.swing.JScrollPane();        waardeKeuze = new javax.swing.JList();        dobbel1 = new javax.swing.JButton();        dobbel2 = new javax.swing.JButton();        dobbel3 = new javax.swing.JButton();        dobbel4 = new javax.swing.JButton();        dobbel5 = new javax.swing.JButton();        btnRol = new javax.swing.JButton();        btnWaarde = new javax.swing.JButton();        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);        tabelBoven.setModel(new javax.swing.table.DefaultTableModel(            new Object [][] {                {"Enen", null},                {"Tweeen", null},                {"Drieen", null},                {"Vieren", null},                {"Vijven", null},                {"Zessen", null},                {"Subtotaal", null},                {"Extra bonus", null},                {"Totaal", null}            },            new String [] {                "Bovenste helft", "Speler 1"            }        ) {            boolean[] canEdit = new boolean [] {                false, true            };            public boolean isCellEditable(int rowIndex, int columnIndex) {                return canEdit [columnIndex];            }        });        tabelBoven.setColumnSelectionAllowed(true);        tabelBoven.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(java.awt.event.MouseEvent evt) {                tabelBovenMouseClicked(evt);            }        });        jScrollPane1.setViewportView(tabelBoven);        tabelOnder.setModel(new javax.swing.table.DefaultTableModel(            new Object [][] {                {"Three of a kind", null},                {"Carre", null},                {"Full House", null},                {"Kleine straat", null},                {"Grote straat", null},                {"Yahtzee", null},                {"Chance", null},                {"Totaal onderste", null},                {"Totaal bovenste", null},                {"Totaal spel", null}            },            new String [] {                "Onderste helft", "Speler 1"            }        ));        jScrollPane2.setViewportView(tabelOnder);        waardeKeuze.setModel(new javax.swing.AbstractListModel() {            String[] strings = { "Enen", "Tweeen", "Drieen", "Vieren", "Vijven", "Zessen", "Three of a kind", "Carre", "Full House", "Kleine Straat", "Grote Straat", "Yahtzee", "Chance" };            public int getSize() { return strings.length; }            public Object getElementAt(int i) { return strings[i]; }        });        jScrollPane3.setViewportView(waardeKeuze);        dobbel1.setText("1");        dobbel1.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                dobbel1ActionPerformed(evt);            }        });        dobbel2.setText("2");        dobbel2.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                dobbel2ActionPerformed(evt);            }        });        dobbel3.setText("3");        dobbel3.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                dobbel3ActionPerformed(evt);            }        });        dobbel4.setText("4");        dobbel4.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                dobbel4ActionPerformed(evt);            }        });        dobbel5.setText("5");        dobbel5.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                dobbel5ActionPerformed(evt);            }        });        btnRol.setText("Rol!");        btnRol.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnRolActionPerformed(evt);            }        });        btnWaarde.setText("Vul waarde in!");        btnWaarde.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnWaardeActionPerformed(evt);            }        });        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());        getContentPane().setLayout(layout);        layout.setHorizontalGroup(            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(layout.createSequentialGroup()                .addContainerGap()                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)                    .addComponent(jScrollPane3)                    .addComponent(btnWaarde, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))                .addGap(18, 18, 18)                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)                        .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 288, Short.MAX_VALUE)                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 288, Short.MAX_VALUE))                    .addGroup(layout.createSequentialGroup()                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)                            .addComponent(btnRol, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE)                            .addGroup(layout.createSequentialGroup()                                .addComponent(dobbel1, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                .addComponent(dobbel2, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                .addComponent(dobbel3, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)))                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addComponent(dobbel4, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addComponent(dobbel5, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 39, javax.swing.GroupLayout.PREFERRED_SIZE)))                .addGap(40, 40, 40))        );        layout.setVerticalGroup(            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(layout.createSequentialGroup()                .addGap(22, 22, 22)                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                    .addGroup(layout.createSequentialGroup()                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 168, javax.swing.GroupLayout.PREFERRED_SIZE)                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 185, javax.swing.GroupLayout.PREFERRED_SIZE)                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                            .addComponent(dobbel1, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)                            .addComponent(dobbel2, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)                            .addComponent(dobbel5, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)                            .addComponent(dobbel4, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)                            .addComponent(dobbel3, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE))                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addComponent(btnRol, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))                    .addGroup(layout.createSequentialGroup()                        .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE)                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addComponent(btnWaarde)))                .addContainerGap(106, Short.MAX_VALUE))        );        pack();    }// </editor-fold>    public void handleRol(){       if(picked == true && haveToChoose == false)       {           picked = false;       }    if(haveToChoose == false)        {        if(gerold == 0)        {            dobbel1.setEnabled(true);            dobbel2.setEnabled(true);            dobbel3.setEnabled(true);            dobbel4.setEnabled(true);            dobbel5.setEnabled(true);        }        if(gerold == 3)        {            javax.swing.JOptionPane.showMessageDialog(null, "Je moet eerst een waarde kiezen");            haveToChoose = true;            return;        }        boolean[] getSelected = getSelected();                for(int i =0 ; i < 5; i++)        {            if(getSelected[i] != false)               //  nummers[i] = (int)(6*Math.random() + 1);                   nummers[0] = 1;                nummers[1] = 1;                nummers[2] = 1;                nummers[3] = 2;                nummers[4] = 2;        }                for(int i = 0; i < getSelected.length; i++)        {            switch(i)            {                case 0:                    if(getSelected[i] != false)                        dobbel1.setText(Integer.toString(nummers[i]));                    break;                case 1:                    if(getSelected[i] != false)                        dobbel2.setText(Integer.toString(nummers[i]));                    break;                                    case 2:                    if(getSelected[i] != false)                        dobbel3.setText(Integer.toString(nummers[i]));                    break;                                    case 3:                    if(getSelected[i] != false)                        dobbel4.setText(Integer.toString(nummers[i]));                    break;                                    case 4:                    if(getSelected[i] != false)                        dobbel5.setText(Integer.toString(nummers[i]));                         break;                               }        }        gerold++;            }    }    public void handleGetal(int nummer)    {        if(filled[nummer-1] == true)        {            javax.swing.JOptionPane.showMessageDialog(null, "Dit vak is al in bezet");            return;        }        int som = 0;        for(int i = 0; i < nummers.length; i++)        {            if(nummers[i] == nummer)            {                som += nummer;            }        }       tabelBoven.setValueAt(som, nummer - 1, 1);       filled[nummer - 1] = true;       picked = true;       haveToChoose = false;       gerold = 0;       resetKnoppen();    }    public void resetKnoppen()    {        resetKnop(dobbel1);        resetKnop(dobbel2);        resetKnop(dobbel3);        resetKnop(dobbel4);        resetKnop(dobbel5);        welkeknop = 1;    }    public void resetKnop(javax.swing.JButton button)    {        button.setText(String.format("%d", welkeknop));        button.setEnabled(false);        welkeknop++;    }    public void toak()    {        System.arraycopy(nummers, 0, restnummers, 0, nummers.length);            if(filled[6] == true)            {            javax.swing.JOptionPane.showMessageDialog(null,"Three of a kind is al gekozen");            return;            }            java.util.Arrays.sort(restnummers);            for(int i = 1; i < 7; i++)            {                int found = searchArray(restnummers,i);                if(found >= 0)                {                      restnummers[found] = -5;                    found = searchArray(restnummers,i);                    if(found >= 0)                    {                    restnummers[found] = -5;                    found = searchArray(restnummers,i);                    if(found >= 0)                    {                        int sum = 0;                        for(int j = 0; j < nummers.length; j ++)                        {                            sum += nummers[j];                        }                        tabelOnder.setValueAt(sum, 0, 1);                        filled[6] = true;                                           }                    }                }            }            if(filled[6] == false)                tabelOnder.setValueAt(0, 0, 1);            filled[6] = true;            picked = true;            haveToChoose = false;                }    public void fullhouse()    {        System.arraycopy(nummers, 0, restnummers, 0, nummers.length);        if(filled[8] == true)        {            javax.swing.JOptionPane.showMessageDialog(null,"Full House is al gekozen");            return;        }        java.util.Arrays.sort(restnummers);        for(int i = 1; i < 7; i++)        {            int found = searchArray(restnummers,i);            if(found >= 0)            {                restnummers[found] = -5;                found = searchArray(restnummers,i);                if(found >= 0)                {                    restnummers[found] = -5;                    found = searchArray(restnummers,i);                    if(found >= 0){                    for(int j = 0; j < 7; j++)                    {                        if(j == i)                            continue;                        found = searchArray(restnummers,j);                        if(found >= 0)                        {                            restnummers[found] = -5;                            found = searchArray(restnummers,j);                            if(found >= 0)                            {                                tabelOnder.setValueAt(25,2,1);                                filled[8] = true;                            }                        }                    }                    }                }            }        }        if(filled[8] == false)            tabelOnder.setValueAt(0,2,1);        filled[8] = true;        picked = true;        haveToChoose = false;    }    public void carre()    {        System.arraycopy(nummers, 0, restnummers, 0, nummers.length);            if(filled[7] == true)            {            javax.swing.JOptionPane.showMessageDialog(null,"Carre is al gekozen");            return;            }            java.util.Arrays.sort(restnummers);            for(int i = 1; i < 7; i++)            {                int found = searchArray(restnummers,i);                if(found >= 0)                {                      restnummers[found] = -5;                    found = searchArray(restnummers,i);                    if(found >= 0)                    {                    restnummers[found] = -5;                    found = searchArray(restnummers,i);                    if(found >= 0)                    {                        restnummers[found] = -5;                        found = searchArray(restnummers,i);                        if(found >= 0) {                            int sum = 0;                            for(int j = 0; j < nummers.length; j ++)                            {                                sum += nummers[j];                            }                            tabelOnder.setValueAt(sum, 1, 1);                            filled[7] = true;                        }                    }                    }                }            }            if(filled[7] == false)                tabelOnder.setValueAt(0, 1, 1);            filled[7] = true;            picked = true;            haveToChoose = false;                }    public int searchArray(int[] haystack, int needle)    {        for(int i = 0; i < haystack.length; i++)        {            if(haystack[i] == needle)            {                return i;            }        }        return -5;    }    public void handleKeuze()    {        if(!picked)        {        switch(waardeKeuze.getSelectedIndex())        {            case 0:                handleGetal(1);                break;            case 1:                handleGetal(2);                break;            case 2:                handleGetal(3);                break;            case 3:                handleGetal(4);                break;            case 4:                handleGetal(5);                break;            case 5:                handleGetal(6);                break;            case 6:                toak();                break;            case 7:                carre();                break;            case 8:                fullhouse();/*            case 9:                kstraat();            case 10:                gstraat();            case 11:                yahtzee();            case 12:                chance(); */        }        }        else        {            javax.swing.JOptionPane.showMessageDialog(null, "Je moet eerst weer dobbelen!");        }    }    //    btnRol.setEnabled(false);           public void dobbel(java.awt.event.ActionEvent evt)    {        ((javax.swing.JButton)evt.getSource()).setEnabled(false);    }    public boolean[] getSelected()    {        boolean[] selected = new boolean[5];        selected[0] = dobbel1.isEnabled();        selected[1] = dobbel2.isEnabled();        selected[2] = dobbel3.isEnabled();        selected[3] = dobbel4.isEnabled();        selected[4] = dobbel5.isEnabled();        return selected;                  }    private void tabelBovenMouseClicked(java.awt.event.MouseEvent evt) {    }    private void btnRolActionPerformed(java.awt.event.ActionEvent evt) {        handleRol();    }    private void dobbel1ActionPerformed(java.awt.event.ActionEvent evt) {        dobbel(evt);    }    private void dobbel2ActionPerformed(java.awt.event.ActionEvent evt) {        dobbel(evt);    }    private void dobbel3ActionPerformed(java.awt.event.ActionEvent evt) {        dobbel(evt);    }    private void dobbel4ActionPerformed(java.awt.event.ActionEvent evt) {        dobbel(evt);    }    private void dobbel5ActionPerformed(java.awt.event.ActionEvent evt) {        dobbel(evt);    }    private void btnWaardeActionPerformed(java.awt.event.ActionEvent evt) {        handleKeuze();    }        /**     * @param args the command line arguments     */    public static void main(String args[]) {        java.awt.EventQueue.invokeLater(new Runnable() {            public void run() {                new Yahtzee().setVisible(true);            }        });    }        // Variables declaration - do not modify    private javax.swing.JButton btnRol;    private javax.swing.JButton btnWaarde;    private javax.swing.JButton dobbel1;    private javax.swing.JButton dobbel2;    private javax.swing.JButton dobbel3;    private javax.swing.JButton dobbel4;    private javax.swing.JButton dobbel5;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JScrollPane jScrollPane2;    private javax.swing.JScrollPane jScrollPane3;    private javax.swing.JTable tabelBoven;    private javax.swing.JTable tabelOnder;    private javax.swing.JList waardeKeuze;    // End of variables declaration    }