コード例 #1
0
int checkForWin(Board* board, int pieceValue) {
  int matches = 0, topPiece, i, win = 0;
  for (i = 0; i < board->dimension; i++) {
    topPiece = findTopPiecePosition(board, i);
    if (board->rows[topPiece].squares[i] == 0) {
      continue;
    } else {
      if(i >= 3) {
        // look left
        matches = searchHorizontally(board, pieceValue, DIR_LEFT, topPiece, i);
        if(matches == 4) return 1;
        matches = 0;
        // down - left
        if(topPiece <= (board->dimension - 1) - 3) {
          matches = searchDiagonally(board, pieceValue, DIR_LEFT, topPiece, i);
          if(matches == 4) return 1;
          matches = 0;
        }
        // down - right
        if(topPiece != board->dimension - 1) {
          matches = searchDiagonally(board, pieceValue, DIR_RIGHT, topPiece, i);
          if(matches == 4) return 1;
          matches = 0;
        }
      }
      // right-most column
      if(i <= (board->dimension - 1) - 3) {
        // look right
        matches = searchHorizontally(board, pieceValue, DIR_RIGHT, topPiece, i);
        if(matches == 4) return 1;
        matches = 0;
        // up - right
        if(topPiece != 0) {
        }
        //down - right
        if(topPiece != board->dimension - 1) {
        }
      }
      if(topPiece <= (board->dimension - 1)) {
        matches = searchDown(board, pieceValue, topPiece, i);
        if(matches == 4) return 1;
        matches = 0;
      }
    }
  }
  win = matches;
  return win;
}
コード例 #2
0
ファイル: radio.cpp プロジェクト: bavanisp/qtmobility-1.1.0
Radio::Radio()
{
    radio = new QRadioTuner;
    connect(radio,SIGNAL(frequencyChanged(int)),this,SLOT(freqChanged(int)));
    connect(radio,SIGNAL(signalStrengthChanged(int)),this,SLOT(signalChanged(int)));
    connect(radio, SIGNAL(error(QRadioTuner::Error)), this, SLOT(error(QRadioTuner::Error)));

    if(radio->isBandSupported(QRadioTuner::FM))
        radio->setBand(QRadioTuner::FM);

    QWidget *window = new QWidget;
    QVBoxLayout* layout = new QVBoxLayout;
    QHBoxLayout* buttonBar = new QHBoxLayout;
#if defined Q_OS_SYMBIAN // this is so that we can see all buttons also in 3.1 devices, where the screens are smaller..
    QHBoxLayout* buttonBar2 = new QHBoxLayout;
#endif
    QHBoxLayout* topBar = new QHBoxLayout;

    layout->addLayout(topBar);

    freq = new QLabel;
    freq->setText(QString("%1 kHz").arg(radio->frequency()/1000));
    topBar->addWidget(freq);

    signal = new QLabel;
    if (radio->isAvailable())
        signal->setText(tr("No Signal"));
    else
        signal->setText(tr("No radio found"));
    topBar->addWidget(signal);
#if defined Q_WS_MAEMO_5
    QSpacerItem *spacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
    topBar->addItem(spacer);
    volumeSlider = new QSlider(Qt::Horizontal,this);
#else
    volumeSlider = new QSlider(Qt::Vertical,this);
#endif
    volumeSlider->setRange(0,100);
    volumeSlider->setValue(50);
    connect(volumeSlider,SIGNAL(valueChanged(int)),this,SLOT(updateVolume(int)));
    topBar->addWidget(volumeSlider);

    layout->addLayout(buttonBar);
#if defined Q_OS_SYMBIAN
    layout->addLayout(buttonBar2);
#endif

    searchLeft = new QPushButton;
    searchLeft->setText(tr("scan Down"));
    connect(searchLeft,SIGNAL(clicked()),SLOT(searchDown()));
    buttonBar->addWidget(searchLeft);

    left = new QPushButton;
    left->setText(tr("Freq Down"));
    connect(left,SIGNAL(clicked()),SLOT(freqDown()));
#if defined Q_OS_SYMBIAN
    buttonBar2->addWidget(left);
#else
    buttonBar->addWidget(left);
#endif

    right = new QPushButton;
    connect(right,SIGNAL(clicked()),SLOT(freqUp()));
    right->setText(tr("Freq Up"));
#if defined Q_OS_SYMBIAN
    buttonBar2->addWidget(right);
#else
    buttonBar->addWidget(right);
#endif

    searchRight = new QPushButton;
    searchRight->setText(tr("scan Up"));
    connect(searchRight,SIGNAL(clicked()),SLOT(searchUp()));
    buttonBar->addWidget(searchRight);

    window->setLayout(layout);
    setCentralWidget(window);
    window->show();

    radio->start();
}