Exemple #1
0
  /** Updates the gridLayout with the actual game data if existing. */
  private void updateGridView() {

    if (fieldCreationFragment == null || fieldCreationFragment.getZahlenschlange() == null) {
      return;
    }

    Zahlenschlange gameLogic = fieldCreationFragment.getZahlenschlange();

    int index = 0;
    for (int y = 0; y < difficulty; y++) {
      for (int x = 0; x < difficulty; x++) {

        View v = gameSquareGridLayout.getChildAt(index);
        if (v instanceof Field) {
          Field f = (Field) v;

          f.setNumber(gameLogic.getValue(x, y));
          f.setDirection(Field.DIRECTION_NONE);
          f.setDirection2(Field.DIRECTION_NONE);
          f.setBodyStyle(Field.BODY_NORMAL);
        }
        index++;
      }
    }

    Field first = (Field) gameSquareGridLayout.getChildAt(0);
    Field last = (Field) gameSquareGridLayout.getChildAt(index - 1);

    first.setBodyStyle(Field.BODY_TAIL);
    last.setBodyStyle(Field.BODY_HEAD);

    drawPath(gameLogic.getPath());
  }
Exemple #2
0
  /**
   * MaxNumber Value
   *
   * @return Zahlenschlange.getMaxNumber() or -1 if zahlenschlange null
   */
  private int getMaxNumber() {

    int ret = -1;

    if (fieldCreationFragment != null && fieldCreationFragment.getZahlenschlange() != null) {

      ret = fieldCreationFragment.getZahlenschlange().getMaxNumber();
    }

    return ret;
  }
Exemple #3
0
  @Override
  protected void onResume() {

    super.onResume();

    Log.d(
        Game.class.getName(),
        "Resume [creating, paused, finished, timerTime] "
            + creating
            + " "
            + paused
            + " "
            + finished
            + " "
            + timer.getElapsedTime());

    if (!creating) {
      if (fieldCreationFragment.getZahlenschlange() == null) {

        createGame();
      } else if (!paused && finished == GAME_FINISHED_NOT_YET) {

        startGame();
      } else {

        updateGridView();
      }
    }
  }
Exemple #4
0
  private void onFieldClick(Field f) {

    if (f == null
        || fieldCreationFragment == null
        || fieldCreationFragment.getZahlenschlange() == null) {
      return;
    }

    if (clickCount < MAX_CLICKS) {
      clickCount++;
    }
    updateClickCount();

    Zahlenschlange gameLogic = fieldCreationFragment.getZahlenschlange();

    int index = f.getIndex();
    int y = index / difficulty;
    index = index % difficulty;
    int x = index;

    Position end = gameLogic.getPathEnd();
    if (end.getX() == x && end.getY() == y) {

      gameLogic.undo();
      updateGridView();
      return;
    }

    Result res = gameLogic.makeStepTo(x, y);
    if (res.isOk() || res.isGameFinished()) {

      updateGridView();

      if (res.isGameFinished()) {

        finishGame(true);
      }
    } else if (res.isNotAllowed()) {

      showToast(getString(R.string.operation_not_allowed));
    }
  }
Exemple #5
0
  private void updateFinishButtonText() {

    if (finished == GAME_FINISHED_FAILED) {

      finishButton.setText(R.string.finish_btn_fail);
      drawPath(fieldCreationFragment.getZahlenschlange().getSolution());
    } else {

      finishButton.setText(R.string.finish_btn);
    }
  }
Exemple #6
0
  /** Create a new game depending on the current difficulty. */
  private void createGame() {

    Log.d(Game.class.getName(), "Create Game");

    creating = true;

    clickCount = 0;
    timer.stop();
    timer.resetTime();
    updateTimerTime();

    fieldCreationFragment.createNewZahlenschlange(difficulty);
  }
Exemple #7
0
  @Override
  public void onFinishedLoading() {

    Log.d(
        Game.class.getName(),
        "FinishedLoading "
            + AsString.fetch(fieldCreationFragment.getZahlenschlange().getSolution()));
    hideLoadingDialog();
    updateGridView();
    creating = false;

    startGame();
  }