bool GameScene::init() { if (!Layer::init()) { return false; } mBestScoreCache = UserDefault::getInstance()->getIntegerForKey(KEY_BEST_SCORE, 0); Vec2 origin = Director::getInstance()->getVisibleOrigin(); Size visibleSize = Director::getInstance()->getVisibleSize(); auto background = LayerColor::create(Color4B(180, 170, 160, 255)); this->addChild(background); MenuItemFont::setFontName("Consolas"); MenuItemFont::setFontSize(80); auto menuItemRestart = MenuItemFont::create("RESTART", CC_CALLBACK_1(GameScene::onReStart, this)); auto menuItemExit = MenuItemFont::create("EXIT", CC_CALLBACK_1(GameScene::onExit, this)); auto menu = Menu::create(menuItemExit, menuItemRestart, nullptr); menu->setColor(Color3B(0, 255, 255)); menu->alignItemsVertically(); const float xPos = origin.x + visibleSize.width - menuItemRestart->getContentSize().width / 2.0f - 20.0f; menu->setPosition( Point(xPos, origin.y + visibleSize.height / 2.0f + 150.0f)); this->addChild(menu); auto scoreTitle = Label::createWithSystemFont("SCORE", "Consolas", 80); scoreTitle->setPosition( Point(xPos, origin.y + visibleSize.height / 2.0f - 50.0f)); this->addChild(scoreTitle); mScore = 0; mScoreLabel = Label::createWithSystemFont("0", "Consolas", 80); mScoreLabel->setPosition( Point(xPos, origin.y + visibleSize.height / 2.0f - 150.0f)); this->addChild(mScoreLabel); // enable touch event this->setTouchMode(Touch::DispatchMode::ONE_BY_ONE); this->setTouchEnabled(true); createEmptyCards(origin, visibleSize); generateCard(false); generateCard(false); return true; }
void GameScene::restartGame() { for (int y = 0; y < 4; ++y) { for (int x = 0; x < 4; ++x) { mCards[x][y]->setNumber(0); } } mIsGameOver = false; mLargestNumber = 0; mScore = 0; updateScoreLabel(); generateCard(false); generateCard(false); }
int main(){ char r; do{ char x; system("cls"); printf("Guess the Card\n"); printf("==============\n\n"); printf("Please choose a card in your mind...\n"); generateCard(); viewCard(); read(&r); arrangeCard(); viewCard(); read(&x); x += 2*(x - 1) + r; arrangeCard(); viewCard(); read(&r); printf("\nYour Card is %s, right? ^_^", card[x-2][r-1]); printf("\n\nWanna try again? [Y/N] "); do{ r=getch(); }while(r!='Y' && r!='y' && r!='n' && r!='N'); }while(r=='Y' || r=='y'); return 0; }
void GameScene::onTouchEnded(Touch* touch, Event* event) { if (isWin() || isGameOver()) { return; } GestureDetector::GestureType gesture = mGestureDetector.endPoint(touch->getLocation()); bool gestureValid = true; bool moved = false; switch (gesture) { case GestureDetector::MoveLeft: moved = moveLeft(); break; case GestureDetector::MoveRight: moved = moveRight(); break; case GestureDetector::MoveUp: moved = moveUp(); break; case GestureDetector::MoveDown: moved = moveDown(); break; case GestureDetector::Unknown: default: gestureValid = false; break; } if (gestureValid) { if (moved) { generateCard(true); CocosDenshion::SimpleAudioEngine::getInstance()->playEffect( MOVE_SUCESS_SOUND, false); } else { CocosDenshion::SimpleAudioEngine::getInstance()->playEffect( MOVE_FAILED_SOUND, false); } doCheck(); } }
int BingoApp::generate() { // Card svg file QFile cardSvgFile(cardSvgFilename); if ( ! cardSvgFile.open(QIODevice::Text | QIODevice::ReadOnly) ) { cerr << "bingo: could not open " << cardSvgFilename << endl; return 20; } // Load symbols file and generate calling card if asked if (int result = loadSymbols() ) return result; if (int result = generateCallingCard() ) return result; // Actual processing cout << "Generating " << numberCardsToGenerate << " bingo cards...\n"; QTextStream cardSvg(&cardSvgFile); for ( size_t i = 1; i <= numberCardsToGenerate; ++i ) { if (int result = generateCard(cardSvg, i)) return result; cardSvg.seek(0); } cout << "Done\n"; return 0; }