int ttt<DEBUG>::moveRandom() { int i, j, play, row, col; std::uniform_int_distribution<int> randomPlay(0, 8); if(DEBUG) { std::cout << "ttt<DEBUG>::moveRandom();" << std::endl; } if(gameWon() > 0) return(-1); while(true) { play = randomPlay(mt); row = play % 3; col = play / 3; if(board[col][row] == ' ') break; } board[col][row] = (turn++ % 2 == 0 ? 'X' : 'O'); // history.push_back(board); return(0); }
//-------------------------------------------------------------- void testApp::update(){ /// SPHERES UPDATE /// for (int i = 0; i < redObjects.size(); i++) { //individual noise float time = ofGetElapsedTimef(); float timeScale = 5.0; float displacementScale = 2.75; ofVec3f timeOffsets = noiseObjects[i]; redObjects[i].point.x += (ofSignedNoise(time * timeScale + timeOffsets.x)) * displacementScale; redObjects[i].point.y += (ofSignedNoise(time * timeScale + timeOffsets.y)) * displacementScale; redObjects[i].point.z += (ofSignedNoise(time * timeScale + timeOffsets.y)) * displacementScale; redObjects[i].update(); } redObjects[counterObject].colorChange.set(0, 255, 180, 90); if (counterObject == redObjects.size()) { counterObject = 0; } //cout << redObjects.size() << endl; /// AUDIO UPDATE /// introVolume += 0.01; mixer.setOutputVolume(introVolume); if (introVolume >= 0.90) { introVolume = 0.95; } //MODE if (generativeMode == true) { randomPlay(); modeColor = redObjects[0].colorChange; indicator = "on"; } else if (!generativeMode) { modeColor = ofColor::black; indicator = "off"; } /// INTERACTION UPDATE /// ///Trigger samples by movement moveHand.update(); //Use the most left, middle, and right zones of screen if (moveHand.zone[0] >= 500) { triggerSample(); reactiveCircle.set(0, 255, 180, 90); moveHand.zone[0] = 0; } else { reactiveCircle = redObjects[0].colorChange; } }