Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. import java.awt.event.ActionEvent;
  2. import java.awt.event.ActionListener;
  3. import java.awt.Toolkit;
  4.  
  5. import javax.swing.JButton;
  6. import javax.swing.border.EmptyBorder;
  7.  
  8.  
  9. public class Cell extends JButton implements ActionListener{
  10. private int row;
  11. private int col;
  12. private int value;
  13.  
  14. public static void main(String[] args) {
  15. // TODO Auto-generated method stub
  16.  
  17. }
  18.  
  19. public Cell(int value, int row, int col) {
  20. super();
  21.  
  22. this.row = row;
  23. this.col = col;
  24. this.setValue(value);
  25.  
  26.  
  27. setBorder(new EmptyBorder(3,3,3,3));
  28. addActionListener(this);
  29.  
  30. if(value == 0) {
  31. setText(" ");
  32. }
  33. else {
  34. setText("" + value);
  35. }
  36. }
  37.  
  38. public boolean isWin() { //fungerar ikke pga sista rutan är 0?
  39. for(int r = 0; r < ImageViewer.cellArr.length; r++) {
  40. for(int c = 0; c < ImageViewer.cellArr[r].length; c++) {
  41. if(ImageViewer.cellArr[row][col].getValue() != ImageViewer.correctCellArr[row][col].getValue()) {
  42. return false;
  43. }
  44. }
  45. }
  46. return true;
  47. }
  48.  
  49. public void swapNeighbors(int row, int col) {
  50.  
  51. int currentR = row;
  52. int currentC = col;
  53.  
  54. int emptyC = 0;
  55. int emptyR = 0;
  56.  
  57. for (int r = 0; r < ImageViewer.cellArr.length; r++) {
  58. for (int c = 0; c < ImageViewer.cellArr[r].length; c++) {
  59. if(ImageViewer.cellArr[r][c].getValue() == 0) {
  60. emptyR = ImageViewer.cellArr[r][c].row;
  61. emptyC = ImageViewer.cellArr[r][c].col;
  62. }
  63. }
  64. }
  65.  
  66. if((currentR == emptyR && Math.abs(currentC - emptyC)==1) || (currentC == emptyC && Math.abs(currentR - emptyR)==1)) {
  67. //Set new text and value to empty cell
  68. ImageViewer.cellArr[emptyR][emptyC].setText(ImageViewer.cellArr[row][col].getText());
  69. ImageViewer.cellArr[emptyR][emptyC].setValue(ImageViewer.cellArr[row][col].getValue());
  70.  
  71. //Set text and value of clicked cell to zero
  72. ImageViewer.cellArr[row][col].setText(" ");
  73. ImageViewer.cellArr[row][col].setValue(0);
  74. } else {
  75. Toolkit.getDefaultToolkit().beep();
  76. }
  77. }
  78.  
  79.  
  80. @Override
  81. public void actionPerformed(ActionEvent e) {
  82.  
  83. swapNeighbors(row, col);
  84.  
  85. //hårdkodat, fixa sedan
  86. if(ImageViewer.cellArr[3][3].getValue() == 0) {
  87. if(isWin()) {
  88. System.out.print("Game over!\n");
  89. }
  90. }
  91.  
  92. }
  93.  
  94. public int getValue() {
  95. return value;
  96. }
  97.  
  98. public void setValue(int value) {
  99. this.value = value;
  100. }
  101.  
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement