Trouble with obstacle avoiding robot

Hi,
Why use Ping.h? can't understand it, the basic code is so simple and for me works everytime.

Here's some code cut from one of my programs:

ong scanner(long cm)
{
	const int pingPin=7, EchoPin=8;
	long duration;

	// The SRF005/HC-SR04 is triggered by a HIGH pulse of 2 or more microseconds.
	// Give a short LOW pulse before to ensure a clean HIGH pulse:
	pinMode(pingPin, OUTPUT);
	pinMode(EchoPin, INPUT);  

	digitalWrite(pingPin, LOW);
	delayMicroseconds(2);
	digitalWrite(pingPin, HIGH);
	delayMicroseconds(2);
	digitalWrite(pingPin, LOW); 
	duration = pulseIn(EchoPin, HIGH);
	delay(100);

	// convert the time into a distance
	// inches = microsecondsToInches(duration);
	cm = microsecondsToCentimeters(duration);
	return (cm);
}
//------------------------------------------------------------------
long microsecondsToCentimeters(long microseconds)
{
	// The speed of sound is 340 m/s or 29 microseconds per centimeter.
	// The ping travels out and back, so to find the distance of the
	// object we take half of the distance travelled.
	return microseconds / 29 / 2;
}

void Radar()
{
	Halt();
	BackOff();
	Lturn();
	sound(2200,20);
	Halt();
	A=scanner(cm);
	delay(100);
	Rturn();
	Rturn(); 
	sound(2200,20);
	Halt();
	B=scanner(cm);
	delay(100);
	Lturn();
	delay(50);

	if (A>B) 
	{
		Lturn();  //Then turn left
		A=0; 
	}
	else  
	{
		Rturn();  //Then turn right
		B = 0;
	}
}

By the way the L329/L398 are poor drivers as you lose power (2v+) on the output transistors use something with FET outputs, more power... You have called the motors A & B that's fine so why not call the pins MA- MA+ makes sense!

Hope it helps, regards. (see www.melsaunders.co.uk for my bots)

Mel.