Пример #1
0
  /**
   * @param source
   * @param cmd
   * @param ev
   */
  public void cmdAnalyser(ConsoleListener source, String cmd, ViewEvent ev) {

    boolean badArgument = true;
    int i;
    int j;
    int iIndexEnd;
    int jIndexEnd;
    String sFlag;
    try {
      while (badArgument) {

        if (cmd.length() == 0) {
          throw new InvalidCommandException();

        } else if (cmd.equals("h")) {
          this.help();
          badArgument = false;
          source.catchViewEvent(ev);
        } else if ("d".equals(cmd.substring(0, 1))) {
          iIndexEnd = cmd.indexOf(" ", 2);
          i = Integer.valueOf(cmd.substring(2, iIndexEnd));
          j = Integer.valueOf(cmd.substring(iIndexEnd + 1));
          i--;
          j--;
          badArgument = false;
          Minesweeper.getInstance().getRules().demine(i, j);

        } else if ("m".equals(cmd.substring(0, 1))) {
          iIndexEnd = cmd.indexOf(" ", 2);
          jIndexEnd = cmd.indexOf(" ", iIndexEnd + 1);
          i = Integer.valueOf(cmd.substring(2, iIndexEnd));
          j = Integer.valueOf(cmd.substring(iIndexEnd + 1, jIndexEnd));
          sFlag = cmd.substring(jIndexEnd + 1);
          i--;
          j--;
          badArgument = false;
          Minesweeper.getInstance().getRules().flag(i, j, sFlag);

        } else if ("q".equals(cmd.substring(0, 1)) && cmd.length() == 1) {
          Minesweeper.getInstance().exit();
          badArgument = false;

        } else if (cmd.equals("o")) {
          Minesweeper.getInstance().jumToOptions();
          badArgument = false;

        } else if (cmd.equals("r")) {
          Minesweeper.getInstance().restart();
          badArgument = false;

        } else {
          throw new InvalidCommandException();
        }
      }
    } catch (RuntimeException e) {
      throw new InvalidCommandException();
    }
  }