Advertisement
Guest User

Untitled

a guest
Feb 13th, 2016
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. import javax.swing.*;
  2. import java.awt.*;
  3.  
  4. /**
  5. * Labs 3:
  6. * Created by MAWood on 12/02/2016.
  7. */
  8. class Dice extends JFrame {
  9.  
  10. private final boolean[][][] states;
  11. private int state = 5;
  12.  
  13. private Dice()
  14. {
  15. states = new boolean[][][]{
  16. {{false,false,false},{false,true, false}, {false,false,false}},
  17. {{false,false,true}, {false,false,false}, {true,false,false}},
  18. {{false,false,true}, {false,true, false}, {true,false,false}},
  19. {{true,false,true}, {false,false,false}, {true,false,true}},
  20. {{true,false,true}, {false,true, false}, {true,false,true}},
  21. {{true,true,true}, {false,false,false}, {true,true,true}}};
  22.  
  23. this.setSize(80, 150);
  24. this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  25.  
  26. JButton b = new JButton("Randomise");
  27. this.setLayout(new BorderLayout());
  28. this.add(b, BorderLayout.SOUTH);
  29. b.addActionListener(
  30. e -> repaint()
  31. );
  32. this.setVisible(true);
  33. }
  34.  
  35. public void paint(Graphics g)
  36. {
  37. super.paint(g);
  38. state = (int)(Math.random() * 6);
  39. drawDiceFace(g);
  40. }
  41.  
  42. private void drawDiceFace(Graphics g)
  43. {
  44. int xOffset = 30;
  45. int yOffset = 50;
  46. int dotSpacing = 20;
  47. int dotDiameter = 10;
  48. int border = 10;
  49.  
  50. g.setColor(new Color(0f,0f,0f));
  51.  
  52. g.drawRect(xOffset - border, yOffset - border, border + dotSpacing*3, border + dotSpacing*3);
  53.  
  54. for(int x = 0; x < 3; x++)
  55. {
  56. for(int y = 0; y < 3; y++)
  57. {
  58. if(states[state][x][y])
  59. g.fillOval(xOffset + x*dotSpacing, yOffset + y*dotSpacing, dotDiameter, dotDiameter);
  60. }
  61. }
  62. }
  63.  
  64. public static void main(String[] args)
  65. {
  66. new Dice();
  67. }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement