int CustomTimeCtrl::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QWidget::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: isAuto((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 1: isDateTime((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 2: dateTimeChanged((*reinterpret_cast< const QDateTime(*)>(_a[1]))); break;
        case 3: adjustDateTime((*reinterpret_cast< QModelIndex(*)>(_a[1])),(*reinterpret_cast< QVariant(*)>(_a[2]))); break;
        case 4: blockSignals((*reinterpret_cast< const bool(*)>(_a[1]))); break;
        case 5: setHasTime((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 6: onDateChanged((*reinterpret_cast< const QDate(*)>(_a[1]))); break;
        case 7: onTimeChanged((*reinterpret_cast< const QTime(*)>(_a[1]))); break;
        default: ;
        }
        _id -= 8;
    }
#ifndef QT_NO_PROPERTIES
      else if (_c == QMetaObject::ReadProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: *reinterpret_cast< QDateTime*>(_v) = dateTime(); break;
        }
        _id -= 1;
    } else if (_c == QMetaObject::WriteProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: setDateTime(*reinterpret_cast< QDateTime*>(_v)); break;
        }
        _id -= 1;
    } else if (_c == QMetaObject::ResetProperty) {
        _id -= 1;
    } else if (_c == QMetaObject::QueryPropertyDesignable) {
        _id -= 1;
    } else if (_c == QMetaObject::QueryPropertyScriptable) {
        _id -= 1;
    } else if (_c == QMetaObject::QueryPropertyStored) {
        _id -= 1;
    } else if (_c == QMetaObject::QueryPropertyEditable) {
        _id -= 1;
    } else if (_c == QMetaObject::QueryPropertyUser) {
        _id -= 1;
    }
#endif // QT_NO_PROPERTIES
    return _id;
}
示例#2
0
/**
 * コンソール上で対局を行います。
 */
bool ConsoleManager::play() {

  // 定跡の読み込み
  if (!book_.readFile()) {
    Loggers::warning << "Could not read book.";
  }

  record_.init(Board::Handicap::Even);

  // 棋譜の読み込み
  if (!config_.inFileName.empty()) {
    CsaReader::read(config_.inFileName, record_);
  }

  auto searcherConfig = buildSearcherConfig(searcher_.getConfig(), config_);
  searcher_.setConfig(searcherConfig);

  printBoard(record_.getBoard());

  while (true) {

    if (!config_.outFileName.empty()) {
      CsaWriter::write(config_.outFileName, record_);
    }

    if (isAuto()) {

      // コンピュータによる着手
      search(true);

      // 盤面表示
      printBoard(record_.getBoard());

    } else {

      // ユーザからのコマンド入力
      CommandResult result = inputCommand();

      if (result == CommandResult::Changed) {
        // 盤面表示
        printBoard(record_.getBoard());

      } else if (result == CommandResult::Quit) {
        // quit
        break;

      }

    }
  }

  return true;
}