int main() { int cmd; double v = 0.0; while (true) { cout << "Velg et program:" << endl; cout << "0) Avslutt" << endl; cout << "1) Manuell simulering" << endl; cout << "2) Optimal vinkel" << endl; cout << "3) Skyt på blink" << endl; cout << "Valg: "; cin >> cmd; cout << endl; switch(cmd) { case 0: return 0; break; case 1: simulate(); break; case 2: cout << "Optimal vinkel" << endl << "Hastighet: "; cin >> v; optimalAngleForMaxDistance(v); break; case 3: playTargetPractice(); break; } } return 0; }
void testCannonball() { const double feilmargin = 0.0001; //AcclX assert(avvik(0.0, acclX()) < feilmargin); //AcclY assert(avvik(-9.81, acclY()) < feilmargin); //velX assert(avvik(50.0, velX(50.0, 0)) < feilmargin); assert(avvik(50.0, velX(50.0, 2.5)) < feilmargin); assert(avvik(50.0, velX(50.0, 5.0)) < feilmargin); //velY assert(avvik(25.0, velY(25.0, 0)) < feilmargin); assert(avvik(0.475, velY(25.0, 2.5)) < feilmargin); assert(avvik(-24.05, velY(25.0, 5.0)) < feilmargin); //velIntY assert(avvik(25.0, velIntY(25.0, 0)) < feilmargin); assert(avvik(0.475, velIntY(25.0, 2.5)) < feilmargin); assert(avvik(-24.05, velIntY(25.0, 5.0)) < feilmargin); //posX assert(avvik(0.0, posX(50.0, 0)) < feilmargin); assert(avvik(125.0, posX(50.0, 2.5)) < feilmargin); assert(avvik(250.0, posX(50.0, 5.0)) < feilmargin); //posIntX assert(avvik(0.0, posIntX(50.0, 0)) < feilmargin); assert(avvik(125.0, posIntX(50.0, 2.5)) < feilmargin); assert(avvik(250.0, posIntX(50.0, 5.0)) < feilmargin); //posY assert(avvik(0.0, posY(25.0, 0)) < feilmargin); assert(avvik(31.84, posY(25.0, 2.5)) < feilmargin); assert(avvik(2.375, posY(25.0, 5.0)) < feilmargin); //posIntY assert(avvik(0.0, posIntY(25.0, 0)) < feilmargin); assert(avvik(31.84, posIntY(25.0, 2.5)) < feilmargin); assert(avvik(2.375, posIntY(25.0, 5.0)) < feilmargin); //flightTime assert(avvik(2.03874, flightTime(10.0)) < feilmargin); //getVelocityX assert(avvik(7.071067812, getVelocityX( asin(1) / 2, 10.0 )) < feilmargin); //getVelocityY assert(avvik(7.071067812, getVelocityY( asin(1) / 2, 10.0 )) < feilmargin); //getDistanceTraveled assert(avvik(20.3874, getDistanceTraveled( 10.0, 10.0 )) < feilmargin); //optimalAngleForMaxDistance assert(avvik(0.7853981634, optimalAngleForMaxDistance( 10.0 )) < feilmargin); //getDistanceTraveled assert(avvik(-0.3874, targetPractice( 20.0, 10.0, 10.0 )) < feilmargin); }