double Histogram::goodness(int k){ if(omega(k) == 1 || omega(k) == 0) return 0; //cout << "mew k " << mew(k) << endl; //cout << "omega k " << omega(k) << endl; return (mew(256)*omega(k) - mew(k))*(mew(256)*omega(k) - mew(k)) / (omega(k) * (1 - omega(k))); }
void theGame() { SDL_WM_SetCaption("WASD: Move, BACKSPACE: Start Screen, ENTER: Fullscreen", NULL); Sprite mew("testChar2.png", 32, 156, 0); //load mew and set R 32, G 156, B 0 to be transparent. Set width to 33 and height to 69 Tile *tiles[TOTAL_TILES]; Enemy *enemies[TOTAL_ENEMIES]; enemies[0] = new Enemy(225, 0, ENEMY_ROBOT); enemies[0]->setVelX(50); enemies[1] = new Enemy(225, 0, ENEMY_ROBOT); enemies[1]->setVelX(100); enemies[2] = new Enemy(225, 0, ENEMY_ANDROID); enemies[2]->setVelX(-75); bool playing = true; if(setTiles(tiles) == false) { cleanUp(); exit(0); } //game loop delta.start(); while(playing) { fps.start(); while(SDL_PollEvent(&event)) { mew.handle_input(); myWindow.handle_window(); handleMusic(); if(event.key.keysym.sym == SDLK_BACKSPACE) { deleteTiles(tiles); deleteEnemies(enemies); startScreen(); } if(event.type == SDL_QUIT) playing = false; } if (myWindow.error()) { cleanUp(); exit(0); } mew.move(delta.get_ticks(), tiles, enemies); for (int e = 0; e < TOTAL_ENEMIES; e++) { enemies[e]->walk(delta.get_ticks(), tiles); } delta.start(); //restart delta after movement mew.setCamera(); for( int t = 0; t < TOTAL_TILES; t++ ) tiles[t]->show(); mew.show(); for (int e = 0; e < TOTAL_ENEMIES; e++) enemies[e]->show(); if(SDL_Flip(screen) == -1) { cleanUp(); exit(0); } if(fps.get_ticks() < (1000 / FRAMES_PER_SECOND)) SDL_Delay(1000 / FRAMES_PER_SECOND - fps.get_ticks()); } deleteTiles(tiles); deleteEnemies(enemies); exit(0); }