Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.Toolkit;
- import javax.swing.JButton;
- import javax.swing.border.EmptyBorder;
- public class Cell extends JButton implements ActionListener{
- private int row;
- private int col;
- private int value;
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- }
- public Cell(int value, int row, int col) {
- super();
- this.row = row;
- this.col = col;
- this.setValue(value);
- setBorder(new EmptyBorder(3,3,3,3));
- addActionListener(this);
- if(value == 0) {
- setText(" ");
- }
- else {
- setText("" + value);
- }
- }
- public boolean isWin() { //fungerar ikke pga sista rutan är 0?
- for(int r = 0; r < ImageViewer.cellArr.length; r++) {
- for(int c = 0; c < ImageViewer.cellArr[r].length; c++) {
- if(ImageViewer.cellArr[row][col].getValue() != ImageViewer.correctCellArr[row][col].getValue()) {
- return false;
- }
- }
- }
- return true;
- }
- public void swapNeighbors(int row, int col) {
- int currentR = row;
- int currentC = col;
- int emptyC = 0;
- int emptyR = 0;
- for (int r = 0; r < ImageViewer.cellArr.length; r++) {
- for (int c = 0; c < ImageViewer.cellArr[r].length; c++) {
- if(ImageViewer.cellArr[r][c].getValue() == 0) {
- emptyR = ImageViewer.cellArr[r][c].row;
- emptyC = ImageViewer.cellArr[r][c].col;
- }
- }
- }
- if((currentR == emptyR && Math.abs(currentC - emptyC)==1) || (currentC == emptyC && Math.abs(currentR - emptyR)==1)) {
- //Set new text and value to empty cell
- ImageViewer.cellArr[emptyR][emptyC].setText(ImageViewer.cellArr[row][col].getText());
- ImageViewer.cellArr[emptyR][emptyC].setValue(ImageViewer.cellArr[row][col].getValue());
- //Set text and value of clicked cell to zero
- ImageViewer.cellArr[row][col].setText(" ");
- ImageViewer.cellArr[row][col].setValue(0);
- } else {
- Toolkit.getDefaultToolkit().beep();
- }
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- swapNeighbors(row, col);
- //hårdkodat, fixa sedan
- if(ImageViewer.cellArr[3][3].getValue() == 0) {
- if(isWin()) {
- System.out.print("Game over!\n");
- }
- }
- }
- public int getValue() {
- return value;
- }
- public void setValue(int value) {
- this.value = value;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement