Пример #1
0
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;
}
Пример #2
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);
}