Lab2.docx

public class RaceTrack

{

public static void main(String[] args)

{

//car 1

String car1Name = "Bob Barker Car";

float car1HandlingS = 0.30f;

float car1HandlingC = 0.62f;

float car1HandlingU = 0.1f;

float car1RaceProgress = 0;

float car1CurrentSpeed = 0;

float car1TopSpeed = 0.93f;

float car1Acceleration = 0.11f;

int car1Wins = 0;

char car1Symbol = '1';

String Racetrack = "----------U-C-S-------C---S----C----C--U----";

int raceLength = Racetrack.length();

boolean runningRace = true; //once someone wins we can stop this

while (runningRace)

{

System.out.println(Racetrack);

//Car 1

//display the car

String Progress = "";

for (int i=0;i<car1RaceProgress;i++)

Progress+= " ";

System.out.println(Progress+car1Symbol);

//accelerate based on where you are on the track

//Racetrack[(int)car1RaceProgress)]

switch (Racetrack.charAt((int)car1RaceProgress))

{

case '-': //strait-away

if (car1CurrentSpeed < car1TopSpeed)

car1CurrentSpeed += car1Acceleration;

if (car1CurrentSpeed > car1TopSpeed)

car1CurrentSpeed = car1TopSpeed;

break;

case 'S': //Chicane

if (car1CurrentSpeed < car1TopSpeed*car1HandlingS)

car1CurrentSpeed += car1Acceleration;

else if (car1CurrentSpeed > car1TopSpeed*car1HandlingS)

car1CurrentSpeed = car1TopSpeed*car1HandlingS;

break;

case 'C': //curve

if (car1CurrentSpeed < car1TopSpeed*car1HandlingC)

car1CurrentSpeed += car1Acceleration;

else if (car1CurrentSpeed > car1TopSpeed*car1HandlingC)

car1CurrentSpeed = car1TopSpeed*car1HandlingC;

break;

case 'U': //Hairpin

if (car1CurrentSpeed < car1TopSpeed*car1HandlingU)

car1CurrentSpeed += car1Acceleration;

else if (car1CurrentSpeed > car1TopSpeed*car1HandlingU)

car1CurrentSpeed = car1TopSpeed*car1HandlingU;

break;

}

//increase progress

car1RaceProgress+=car1CurrentSpeed;

if (car1RaceProgress >= raceLength)

{

System.out.println(car1Name+" wins");

car1Wins++;

runningRace=false;

}

} //end of while loop

}//end of main

}