예제 #1
0
  @Override
  public void actionPerformed(ActionEvent e) {

    if (firstClick) {
      firstClick = false;
      lastIcon = buttons[0][0].getIcon();
      buttons[0][0].setIcon(null);
      for (int i = 0; i < 10000; i++) {
        int zufallY = (int) ((Math.random() * YY) + 0);
        int zufallX = (int) ((Math.random() * XX) + 0);
        switchButton(zufallY, zufallX);
      }
      // ToDo: unwiederrufbare Operationen vermeiden?
      // funktion klären und abfangen
      /*while(lastButton % XX != 0)
          switchButton(lastButton-1);
      while (lastButton != "00")
          switchButton(lastButton-XX);*/

    } else {
      PuzzButton tmp = (PuzzButton) e.getSource();
      int posY = tmp.getPosY();
      int posX = tmp.getPosX();

      switchButton(posY, posX);
      if (isDone()) {
        buttons[0][0].setIcon(lastIcon);
        firstClick = true;
      }
    }
  }
예제 #2
0
  private boolean isDone() {

    // hint: name wird umgesetzt, deswegen muss entweder name geprüft werden, oder x / y umgesetzt
    // werden.
    for (PuzzButton[] b : buttons) {
      for (PuzzButton button : b) {
        if (!button.getYX().equals(button.getActionCommand())) return false;
      }
    }

    return true;
  };