program test {
	
	#include 
	#include 
	#include 
	#include 
	sensor touch1 on 1
	touch1 is switch as boolean
	macro POWER1 {
		power [ A  ] 8
		power [ C  ] 8
	}
	macro SOUND10 {
		bb_PlayNote( 698, 20, 20 )
		bb_Backward(A, C, 20)
	}
	macro SOUND5 {
		bb_PlayNote( 698, 20, 20 )
		bb_Backward(A, C, 10)
	}
	macro TOUCHANDBACK1 {
		if touch1 is closed {
			SOUND15
		}
		else
		{
			bb_Forward(A, C, 10)
		} 
	}
	macro SOUND15 {
		bb_PlayNote( 698, 20, 20 )
		bb_Backward(A, C, 40)
	}
	
	main {
		ext InterfaceType "kFreestyle"
		rcx_ClearTimers
		bbs_GlobalReset([A B C])
		try {
			POWER1
		} retry on fail
		try {
			bb_Forward(A, C, 90)
		} retry on fail
		try {
			bb_TurnRight(A, C, 40)
		} retry on fail
		try {
			bb_Forward(A, C, 20)
		} retry on fail
		try {
			if touch1 is closed {
				SOUND10
			}
			else
			{
				bb_Forward(A, C, 10)
				if touch1 is closed {
					SOUND10
				}
				else
				{
					bb_Forward(A, C, 10)
					if touch1 is closed {
						SOUND10
					}
					else
					{
						bb_Forward(A, C, 10)
					} 
				} 
			} 
		} retry on fail
		try {
			bb_TurnRight(A, C, 50)
		} retry on fail
		try {
			bb_Forward(A, C, 28)
		} retry on fail
		try {
			bb_TurnLeft(A, C, 25)
		} retry on fail
		try {
			bb_Forward(A, C, 100)
		} retry on fail
		try {
			if touch1 is closed {
				SOUND10
			}
			else
			{
				bb_Forward(A, C, 10)
				if touch1 is closed {
					SOUND10
				}
				else
				{
					bb_Forward(A, C, 10)
					if touch1 is closed {
						SOUND10
					}
					else
					{
						bb_Forward(A, C, 10)
					} 
				} 
			} 
		} retry on fail
		try {
			bb_TurnRight(A, C, 50)
		} retry on fail
		try {
			bb_Forward(A, C, 25)
		} retry on fail
		try {
			bb_TurnLeft(A, C, 30)
		} retry on fail
		try {
			bb_Forward(A, C, 70)
		} retry on fail
		try {
			if touch1 is closed {
				SOUND5
			}
			else
			{
				bb_Forward(A, C, 10)
				if touch1 is closed {
					SOUND5
				}
				else
				{
					bb_Forward(A, C, 10)
					if touch1 is closed {
						SOUND5
					}
					else
					{
						bb_Forward(A, C, 10)
					} 
				} 
			} 
		} retry on fail
		try {
			bb_Backward(A, C, 10)
		} retry on fail
		try {
			bb_TurnLeft(A, C, 50)
		} retry on fail
		try {
			bb_Forward(A, C, 40)
		} retry on fail
		try {
			bb_TurnRight(A, C, 35)
		} retry on fail
		try {
			bb_Forward(A, C, 60)
		} retry on fail
		try {
			bb_TurnRight(A, C, 40)
		} retry on fail
		try {
			bb_Forward(A, C, 50)
		} retry on fail
		try {
			bb_TurnLeft(A, C, 30)
		} retry on fail
		try {
			bb_Forward(A, C, 400)
		} retry on fail
		try {
			repeat 3 {
				TOUCHANDBACK1
			}
		} retry on fail
		try {
			bb_Backward(A, C, 30)
		} retry on fail
		try {
			bb_TurnLeft(A, C, 70)
		} retry on fail
		try {
			bb_Forward(A, C, 150)
		} retry on fail
		try {
			bb_TurnRight(A, C, 60)
		} retry on fail
		try {
			bb_Forward(A, C, 200)
		} retry on fail
		try {
			repeat 2 {
				TOUCHANDBACK1
			}
		} retry on fail
		try {
			bb_Backward(A, C, 40)
		} retry on fail
		try {
			bb_TurnRight(A, C, 50)
		} retry on fail
		try {
			bb_Forward(A, C, 80)
		} retry on fail
		try {
			bb_TurnLeft(A, C, 40)
		} retry on fail
		try {
			bb_Forward(A, C, 100)
		} retry on fail
		try {
			repeat 2 {
				TOUCHANDBACK1
			}
		} retry on fail
		try {
			bb_Backward(A, C, 30)
		} retry on fail
		try {
			bb_TurnLeft(A, C, 50)
		} retry on fail
		try {
			bb_Forward(A, C, 150)
		} retry on fail
		try {
			bb_TurnRight(A, C, 60)
		} retry on fail
		try {
			bb_Forward(A, C, 120)
		} retry on fail
		try {
			repeat 3 {
				TOUCHANDBACK1
			}
		} retry on fail
		try {
			repeat 10 {
				bb_RandomMove(A, C, 300 )
			}
		} retry on fail
	}
	
	
	fragment ( 1505,417 ) {
		if touch1 is closed {
			sound 1
			bb_Backward(A, C, 10)
		}
		else
		{
			bb_Forward(A, C, 10)
		} 
	}
	fragment ( 206,179 ) {
		bb_TurnLeft(A, C, 40)
	}
	fragment ( 239,5149 ) {
		bb_TurnRight(A, C, 70)
		bb_TurnLeft(A, C, 50)
	}
	fragment ( 331,4869 ) {
		forever {
		}
	}
}