Advertisement
charyaSuraz

Yahtzee

Jun 28th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 17.60 KB | None | 0 0
  1. //DashBoard code
  2. package Assignment;
  3.  
  4. import java.awt.Dimension;
  5. import java.awt.GridLayout;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8.  
  9. import javax.swing.BorderFactory;
  10. import javax.swing.JButton;
  11. import javax.swing.JLabel;
  12. import javax.swing.JPanel;
  13. import javax.swing.JTextField;
  14.  
  15. public class DashBoard implements ActionListener{
  16.    
  17.     protected JPanel dashBoard;
  18.     private JLabel catLabel, player1Label, player2Label;
  19.     private JButton acesBtn, twosBtn, threesBtn, foursBtn, fivesBtn, sixesBtn, kind3Btn, kind4Btn,
  20.         smallStraightBtn, largeStraightBtn, fullHouseBtn, yahtzeeBtn, chanceBtn, bonusBtn, totalBtn, clickScore;
  21.     private JTextField acesField_1, twosField_1, threesField_1, foursField_1, fivesField_1, sixesField_1, kind3Field_1,
  22.         kind4Field_1, smallField_1, largeField_1,  houseField_1, yahtzeeField_1, chanceField_1, bonusField_1, totalField_1,
  23.         acesField_2, twosField_2, threesField_2, foursField_2, fivesField_2, sixesField_2, kind3Field_2,
  24.         kind4Field_2, smallField_2, largeField_2,  houseField_2, yahtzeeField_2, chanceField_2, bonusField_2, totalField_2;
  25.     private int noOfPlayer;
  26.     private String[] playerName;
  27.     private int clickCount=1;
  28.    
  29.     public DashBoard(int val1, String[] val2){
  30.         this.noOfPlayer=val1;
  31.         this.playerName=val2;
  32.        
  33.         defaultDash();
  34. }
  35.     public void defaultDash(){
  36.         dashBoard= new JPanel(new GridLayout(17, noOfPlayer+1));
  37.         catLabel=new JLabel("Category");
  38.         player1Label= new JLabel(playerName[0]);
  39.        
  40.         acesBtn= new JButton("Aces"); acesBtn.addActionListener(this);
  41.         twosBtn= new JButton("Twos"); twosBtn.addActionListener(this);
  42.         threesBtn= new JButton("Threes"); threesBtn.addActionListener(this);
  43.         foursBtn= new JButton("Fours"); foursBtn.addActionListener(this);
  44.         fivesBtn= new JButton("Fives"); fivesBtn.addActionListener(this);
  45.         sixesBtn= new JButton("Sixes"); sixesBtn.addActionListener(this);
  46.         kind3Btn= new JButton("3 of a Kind"); kind3Btn.addActionListener(this);
  47.         kind4Btn= new JButton("4 of a Kind"); kind4Btn.addActionListener(this);
  48.         smallStraightBtn= new JButton("Small Straight"); smallStraightBtn.addActionListener(this);
  49.         largeStraightBtn= new JButton("Large Straight"); largeStraightBtn.addActionListener(this);
  50.         fullHouseBtn= new JButton("Full House"); fullHouseBtn.addActionListener(this);
  51.         yahtzeeBtn= new JButton("Yahtzee"); yahtzeeBtn.addActionListener(this);
  52.         chanceBtn= new JButton("Chance"); chanceBtn.addActionListener(this);
  53.         bonusBtn=new JButton("Bonus"); bonusBtn.setEnabled(false); bonusBtn.addActionListener(this);
  54.         totalBtn= new JButton("Total"); totalBtn.setEnabled(false); totalBtn.addActionListener(this);
  55.         clickScore= new JButton("Score"); clickScore.addActionListener(this);
  56.        
  57.         acesField_1 =new JTextField(); acesField_1.setEnabled(false);
  58.         twosField_1 =new JTextField(); twosField_1.setEnabled(false);
  59.         threesField_1 =new JTextField(); threesField_1.setEnabled(false);
  60.         foursField_1 =new JTextField(); foursField_1.setEnabled(false);
  61.         fivesField_1 =new JTextField(); fivesField_1.setEnabled(false);
  62.         sixesField_1 =new JTextField(); sixesField_1.setEnabled(false);
  63.         kind3Field_1 =new JTextField(); kind3Field_1.setEnabled(false);
  64.         kind4Field_1 =new JTextField(); kind4Field_1.setEnabled(false);
  65.         smallField_1 =new JTextField(); smallField_1.setEnabled(false);
  66.         largeField_1 =new JTextField(); largeField_1.setEnabled(false);
  67.         houseField_1 =new JTextField(); houseField_1.setEnabled(false);
  68.         yahtzeeField_1 =new JTextField(); yahtzeeField_1.setEnabled(false);
  69.         chanceField_1 =new JTextField(); chanceField_1.setEnabled(false);
  70.         bonusField_1 =new JTextField(); bonusField_1.setEnabled(false);
  71.         totalField_1 =new JTextField(); totalField_1.setEnabled(false);
  72.        
  73.         dashBoard.add(catLabel); dashBoard.add(player1Label);
  74.         dashBoard.add(acesBtn); dashBoard.add(acesField_1);
  75.         dashBoard.add(twosBtn); dashBoard.add(twosField_1);
  76.         dashBoard.add(threesBtn); dashBoard.add(threesField_1);
  77.         dashBoard.add(foursBtn); dashBoard.add(foursField_1);
  78.         dashBoard.add(fivesBtn); dashBoard.add(fivesField_1);
  79.         dashBoard.add(sixesBtn); dashBoard.add(sixesField_1);
  80.         dashBoard.add(kind3Btn); dashBoard.add(kind3Field_1);
  81.         dashBoard.add(kind4Btn); dashBoard.add(kind4Field_1);
  82.         dashBoard.add(smallStraightBtn); dashBoard.add(smallField_1);
  83.         dashBoard.add(largeStraightBtn); dashBoard.add(largeField_1);
  84.         dashBoard.add(fullHouseBtn); dashBoard.add(houseField_1);
  85.         dashBoard.add(yahtzeeBtn); dashBoard.add(yahtzeeField_1);
  86.         dashBoard.add(chanceBtn); dashBoard.add(chanceField_1);
  87.         dashBoard.add(bonusBtn); dashBoard.add(bonusField_1);
  88.         dashBoard.add(totalBtn); dashBoard.add(totalField_1);
  89.         dashBoard.add(clickScore);
  90.        
  91.         if(noOfPlayer==2){
  92.             player2Label=new JLabel(playerName[1]);
  93.            
  94.             acesField_2 =new JTextField();
  95.             twosField_2 =new JTextField(); twosField_2.setEnabled(false);
  96.             threesField_2 =new JTextField(); threesField_2.setEnabled(false);
  97.             foursField_2 =new JTextField(); foursField_2.setEnabled(false);
  98.             fivesField_2 =new JTextField(); fivesField_2.setEnabled(false);
  99.             sixesField_2 =new JTextField(); sixesField_2.setEnabled(false);
  100.             kind3Field_2 =new JTextField(); kind3Field_2.setEnabled(false);
  101.             kind4Field_2 =new JTextField(); kind4Field_2.setEnabled(false);
  102.             smallField_2 =new JTextField(); smallField_2.setEnabled(false);
  103.             largeField_2 =new JTextField(); largeField_2.setEnabled(false);
  104.             houseField_2 =new JTextField(); houseField_2.setEnabled(false);
  105.             yahtzeeField_2 =new JTextField(); yahtzeeField_2.setEnabled(false);
  106.             chanceField_2 =new JTextField(); chanceField_2.setEnabled(false);
  107.             bonusField_2 =new JTextField(); bonusField_2.setEnabled(false);
  108.             totalField_2 =new JTextField(); totalField_2.setEnabled(false);
  109.            
  110.             dashBoard.add(catLabel); dashBoard.add(player1Label); dashBoard.add(player2Label);
  111.             dashBoard.add(acesBtn); dashBoard.add(acesField_1); dashBoard.add(acesField_2);
  112.             dashBoard.add(twosBtn); dashBoard.add(twosField_1); dashBoard.add(twosField_2);
  113.             dashBoard.add(threesBtn); dashBoard.add(threesField_1); dashBoard.add(threesField_2);
  114.             dashBoard.add(foursBtn); dashBoard.add(foursField_1); dashBoard.add(foursField_2);
  115.             dashBoard.add(fivesBtn); dashBoard.add(fivesField_1); dashBoard.add(fivesField_2);
  116.             dashBoard.add(sixesBtn); dashBoard.add(sixesField_1); dashBoard.add(sixesField_2);
  117.             dashBoard.add(kind3Btn); dashBoard.add(kind3Field_1); dashBoard.add(kind3Field_2);
  118.             dashBoard.add(kind4Btn); dashBoard.add(kind4Field_1); dashBoard.add(kind4Field_2);
  119.             dashBoard.add(smallStraightBtn); dashBoard.add(smallField_1); dashBoard.add(smallField_2);
  120.             dashBoard.add(largeStraightBtn); dashBoard.add(largeField_1); dashBoard.add(largeField_2);
  121.             dashBoard.add(fullHouseBtn); dashBoard.add(houseField_1); dashBoard.add(houseField_2);
  122.             dashBoard.add(yahtzeeBtn); dashBoard.add(yahtzeeField_1); dashBoard.add(yahtzeeField_2);
  123.             dashBoard.add(chanceBtn); dashBoard.add(chanceField_1); dashBoard.add(chanceField_2);
  124.             dashBoard.add(bonusBtn); dashBoard.add(bonusField_1); dashBoard.add(bonusField_2);
  125.             dashBoard.add(totalBtn); dashBoard.add(totalField_1); dashBoard.add(totalField_2);
  126.             dashBoard.add(clickScore);
  127.         }
  128.         dashBoard.setPreferredSize(new Dimension(80*(noOfPlayer+1), 475));
  129.         btnEnabled();
  130.     }
  131.     public void btnEnabled(){
  132.          acesBtn.setEnabled(false);
  133.          twosBtn.setEnabled(false);
  134.          threesBtn.setEnabled(false);
  135.          foursBtn.setEnabled(false);
  136.          fivesBtn.setEnabled(false);
  137.          sixesBtn.setEnabled(false);
  138.          kind3Btn.setEnabled(false);
  139.          kind4Btn.setEnabled(false);
  140.          smallStraightBtn.setEnabled(false);
  141.          largeStraightBtn.setEnabled(false);
  142.          fullHouseBtn.setEnabled(false);
  143.          yahtzeeBtn.setEnabled(false);
  144.          chanceBtn.setEnabled(false);
  145.     }
  146.     @Override
  147.     public void actionPerformed(ActionEvent ae) {
  148.         if(ae.getSource()==clickScore){
  149.            
  150.         }
  151.         if(ae.getSource()==acesBtn){
  152.            
  153.         }
  154.     }
  155.     private boolean playerTurn(){
  156.         if (clickCount%2 != 0)
  157.             return true;
  158.         else
  159.             return false;
  160.     }
  161. }
  162.  
  163. //CheckScore class code
  164. package Assignment;
  165.  
  166. public class CheckScore {
  167.  
  168.     private int[] score;
  169.     private int aces, twos, threes, fours, fives, sixes, full, house;
  170.    
  171.     public CheckScore(int[] numbers) {
  172.         this.score=new int[5];
  173.         this.score=numbers;
  174.                         for(int counter=0; counter < score.length; counter++){
  175.                             if(score[counter]==1){
  176.                                 aces++;
  177.                                 switch (aces){
  178.                                     case 2:
  179.                                         full=2;
  180.                                         break;
  181.                                     case 3:
  182.                                         house=3;
  183.                                         break;}
  184.                             } else if(score[counter]==2){
  185.                                 twos++;
  186.                                 switch (twos){
  187.                                     case 2:
  188.                                         full=2;
  189.                                         break;
  190.                                     case 3:
  191.                                         house=3;
  192.                                         break;}
  193.                             } else if(score[counter]==3){
  194.                                 threes++;
  195.                                 switch (threes){
  196.                                     case 2:
  197.                                         full=2;
  198.                                         break;
  199.                                     case 3:
  200.                                         house=3;
  201.                                         break;}
  202.                             } else if(score[counter]==4){
  203.                                 fours++;
  204.                                 switch (fours){
  205.                                     case 2:
  206.                                         full=2;
  207.                                         break;
  208.                                     case 3:
  209.                                         house=3;
  210.                                         break;}
  211.                             } else if(score[counter]==5){
  212.                                 fives++;
  213.                                 switch (fives){
  214.                                     case 2:
  215.                                         full=2;
  216.                                         break;
  217.                                     case 3:
  218.                                         house=3;
  219.                                         break;}
  220.                             } else{
  221.                                 sixes++;
  222.                                 switch (sixes){
  223.                                     case 2:
  224.                                         full=2;
  225.                                         break;
  226.                                     case 3:
  227.                                         house=3;
  228.                                         break;}
  229.                             }
  230.                         }
  231.                     }
  232.         public int acesScore(){
  233.             int ace=2*(1*aces);
  234.             return ace;
  235.         }
  236.         public int twosScore(){
  237.             int two=2*(2*twos);
  238.             return two;
  239.         }
  240.         public int threesScore(){
  241.             int three=2*(3*threes);
  242.             return three;  
  243.         }
  244.         public int foursScore(){
  245.             int four=2*(4*fours);
  246.             return four;
  247.         }
  248.         public int fivesScore(){
  249.             int five=2*(3*fives);
  250.             return five;   
  251.         }
  252.         public int sixesScore(){
  253.             int six=2*(4*sixes);
  254.             return six;
  255.         }
  256.         public int kind3Score(){
  257.             int kind3=0;
  258.             if(aces>=3 || twos>=3 || threes>=3 || fours>=3 || fives>=3 || sixes>=3)
  259.                 kind3=aces*1+twos*2+threes*3+fours*4+fives*5+sixes*6;
  260.             return kind3;
  261.         }
  262.         public int kind4Score(){
  263.             int kind4=0;
  264.             if(aces>=4 || twos>=4 || threes>=4 || fours>=4 || fives>=4 || sixes>=4)
  265.                 kind4=aces*1+twos*2+threes*3+fours*4+fives*5+sixes*6;
  266.             return kind4;
  267.         }
  268.         public int smallStraightScore(){
  269.             int small=0;
  270.            
  271.            
  272.             return small;
  273.         }
  274.         public int largeStraightScore(){
  275.             int large=0;
  276.            
  277.            
  278.             return large;
  279.         }
  280.         public int fullHouseScore(){
  281.             int fullHouse=0;
  282.             if(full==2 && house==3)
  283.                 fullHouse=25;
  284.             return fullHouse;
  285.         }
  286.         public int yahtzeeScore(){
  287.             int yahtzee=0;
  288.             if(aces==5 || twos==5 || threes==5 || fours==5 || fives==5 || sixes==5)
  289.                 yahtzee=50;
  290.             return yahtzee;
  291.         }
  292.         public int chanceScore(){
  293.             int chance=aces*1+twos*2+threes*3+fours*4+fives*5+sixes*6;
  294.             return chance;
  295.         }
  296. }
  297.  
  298.  
  299. //DiceImage code
  300. package Assignment;
  301.  
  302.  
  303. import java.awt.Color;
  304. import java.awt.GridBagConstraints;
  305. import java.awt.GridBagLayout;
  306. import java.awt.event.ActionEvent;
  307. import java.awt.event.ActionListener;
  308.  
  309. import javax.swing.BorderFactory;
  310. import javax.swing.ImageIcon;
  311. import javax.swing.JButton;
  312. import javax.swing.JCheckBox;
  313. import javax.swing.JLabel;
  314. import javax.swing.JPanel;
  315.  
  316. public class DiceImage implements ActionListener{
  317.  
  318.     protected JPanel imagePanel;
  319.     private JLabel[] imagelabel;
  320.     private JButton rollBtn;
  321.     private JButton[] up, down;
  322.     private JCheckBox[] holdDice;
  323.     private int[] numbers;
  324.     private ImageIcon[] faces;
  325.     private boolean updownlimit;
  326.     private int rollLimit=1;
  327.    
  328.     private DiceRolling rolling;
  329.     @SuppressWarnings("unused")
  330.     private CheckScore check;
  331.    
  332.     public DiceImage(){
  333.         up=new JButton[5];
  334.         down=new JButton[5];
  335.        
  336.         imagePanel=new JPanel(new GridBagLayout());
  337.         GridBagConstraints c=new GridBagConstraints();
  338.         imagePanel.setBackground(Color.WHITE);
  339.        
  340.         this.imagelabel=new JLabel[5];
  341.         this.holdDice=new JCheckBox[5];
  342.         for(int i=0; i<5; i++){
  343.             imagelabel[i]=new JLabel(new ImageIcon("images/face6.png"));
  344.            
  345.             up[i]=new JButton();
  346.             up[i].setIcon(new ImageIcon("images/up.png"));
  347.             down[i]=new JButton();
  348.             down[i].setIcon(new ImageIcon("images/down.png"));
  349.             up[i].setBorder(BorderFactory.createEmptyBorder());
  350.             down[i].setBorder(BorderFactory.createEmptyBorder());
  351.            
  352.             up[i].addActionListener(this);
  353.             down[i].addActionListener(this);
  354.            
  355.             holdDice[i]=new JCheckBox("Hold dice");
  356.             holdDice[i].setEnabled(false);
  357.         }
  358.         rollBtn=new JButton("Roll");
  359.         rollBtn.addActionListener(this);
  360.  
  361.         c.gridx=0;
  362.         c.gridy=0;
  363.         for(int i=0; i<5; i++){
  364.             imagePanel.add(up[i],c);
  365.             c.gridx ++;
  366.         }
  367.         c.gridx=0;
  368.         c.gridy=1;
  369.         for(int i=0; i<5; i++){
  370.             imagePanel.add(imagelabel[i],c);
  371.             c.gridx ++;
  372.         }
  373.         c.gridx=0;
  374.         c.gridy=2;
  375.         for(int i=0; i<5; i++){
  376.             imagePanel.add(down[i],c);
  377.             c.gridx ++;
  378.         }
  379.         c.gridx=0;
  380.         c.gridy=3;
  381.         for(int i=0; i<5; i++){
  382.             imagePanel.add(holdDice[i],c);
  383.             c.gridx ++;
  384.         }
  385.         c.gridx=4;
  386.         c.gridy=5;
  387.         c.fill = GridBagConstraints.HORIZONTAL;
  388.         c.weighty = 0.1;   //request any extra vertical space
  389.         imagePanel.add(rollBtn, c);
  390.        
  391.         this.numbers=new int[5];
  392.         this.faces=new ImageIcon[7];
  393.         for(int i=1; i<=6; i++){
  394.             faces[i]=new ImageIcon("images/face"+i+".png");
  395.         }
  396.     }
  397.  
  398.     @Override
  399.     public void actionPerformed(ActionEvent ae) {
  400.         rolling=new DiceRolling();
  401.        
  402.         if(ae.getSource()==rollBtn){
  403.                 if(rollLimit>=4)
  404.                     rollBtn.setEnabled(false);
  405.                 switch(rollLimit){
  406.                     case 1:
  407.                         for(int i=0; i<5; i++)
  408.                             holdDice[i].setEnabled(true);
  409.                         break;
  410.                     case 2:
  411.                         for(int i=0; i<5; i++)
  412.                             holdDice[i].setEnabled(true);
  413.                         break;
  414.                     case 3:
  415.                         for(int i=0; i<5; i++)
  416.                             holdDice[i].setEnabled(true);
  417.                         break;
  418.                     default:
  419.                         for(int i=0; i<5; i++)
  420.                             holdDice[i].setEnabled(false);
  421.                         break;}
  422.                 updownlimit=true;
  423.                 rollAction();
  424.                 rollLimit++;
  425.         }
  426.         //first dice
  427.         if(ae.getSource()==up[0] && holdDice[0].isSelected()==false){
  428.             if(updownlimit==true){
  429.                 numbers[0]=new UpDownSpecialPower(numbers[0]).diceUp();
  430.                 imagelabel[0].setIcon(faces[numbers[0]]);
  431.                 updownlimit=false;
  432.             }      
  433.         }
  434.         if(ae.getSource()==down[0] && holdDice[0].isSelected()==false){
  435.             if(updownlimit==true){
  436.                 numbers[0]=new UpDownSpecialPower(numbers[0]).diceDown();
  437.                 imagelabel[0].setIcon(faces[numbers[0]]);
  438.                 updownlimit=false;
  439.             }  
  440.         }
  441.         //second dice
  442.         if(ae.getSource()==up[1] && holdDice[1].isSelected()==false){
  443.             if(updownlimit==true){
  444.                 numbers[1]=new UpDownSpecialPower(numbers[1]).diceUp();
  445.                 imagelabel[1].setIcon(faces[numbers[1]]);
  446.                 updownlimit=false;
  447.             }
  448.         }
  449.         if(ae.getSource()==down[1] && holdDice[1].isSelected()==false){
  450.             if(updownlimit==true){ 
  451.                 numbers[1]=new UpDownSpecialPower(numbers[1]).diceDown();
  452.                 imagelabel[1].setIcon(faces[numbers[1]]);
  453.                 updownlimit=false;
  454.             }
  455.         }
  456.         //third dice
  457.         if(ae.getSource()==up[2] && holdDice[2].isSelected()==false){
  458.             if(updownlimit==true){
  459.                 numbers[2]=new UpDownSpecialPower(numbers[2]).diceUp();
  460.                 imagelabel[2].setIcon(faces[numbers[2]]);
  461.                 updownlimit=false;
  462.             }
  463.         }
  464.         if(ae.getSource()==down[2] && holdDice[2].isSelected()==false){
  465.             if(updownlimit==true){
  466.                 numbers[2]=new UpDownSpecialPower(numbers[2]).diceDown();
  467.                 imagelabel[2].setIcon(faces[numbers[2]]);
  468.                 updownlimit=false;
  469.             }
  470.         }
  471.         //fourth dice
  472.         if(ae.getSource()==up[3] && holdDice[3].isSelected()==false){
  473.             if(updownlimit==true){
  474.                 numbers[3]=new UpDownSpecialPower(numbers[3]).diceUp();
  475.                 imagelabel[3].setIcon(faces[numbers[3]]);
  476.                 updownlimit=false;
  477.             }
  478.         }
  479.         if(ae.getSource()==down[3] && holdDice[3].isSelected()==false){
  480.             if(updownlimit==true){
  481.                 numbers[3]=new UpDownSpecialPower(numbers[3]).diceDown();
  482.                 imagelabel[3].setIcon(faces[numbers[3]]);
  483.                 updownlimit=false;
  484.             }
  485.         }
  486.         //fifth dice
  487.         if(ae.getSource()==up[4] && holdDice[4].isSelected()==false){
  488.             if(updownlimit==true){
  489.                 numbers[4]=new UpDownSpecialPower(numbers[4]).diceUp();
  490.                 imagelabel[4].setIcon(faces[numbers[4]]);
  491.                 updownlimit=false;
  492.             }
  493.         }
  494.         if(ae.getSource()==down[4] && holdDice[4].isSelected()==false){
  495.             if(updownlimit==true){
  496.                 numbers[4]=new UpDownSpecialPower(numbers[4]).diceDown();
  497.                 imagelabel[4].setIcon(faces[numbers[4]]);
  498.                 updownlimit=false;
  499.             }
  500.         }
  501.     }
  502.  
  503.     private void rollAction() {
  504.         if(holdDice[0].isSelected()==false)
  505.             numbers[0]=rolling.getFirstNumber();
  506.         if(holdDice[1].isSelected()==false)
  507.             numbers[1]=rolling.getSecondNumber();
  508.         if(holdDice[2].isSelected()==false)
  509.             numbers[2]=rolling.getThirdNumber();
  510.         if(holdDice[3].isSelected()==false)
  511.             numbers[3]=rolling.getFourthNumber();
  512.         if(holdDice[4].isSelected()==false)
  513.             numbers[4]=rolling.getFifthNumber();
  514.        
  515.         imagelabel[0].setIcon(faces[numbers[0]]);
  516.         imagelabel[1].setIcon(faces[numbers[1]]);
  517.         imagelabel[2].setIcon(faces[numbers[2]]);
  518.         imagelabel[3].setIcon(faces[numbers[3]]);
  519.         imagelabel[4].setIcon(faces[numbers[4]]);
  520.        
  521.         check=new CheckScore(numbers);
  522.         if(rollBtn.getModel().isPressed())
  523.             System.out.println("the button is pressed");
  524.     }
  525. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement