S e a r c h d e f f i n d _ c u p c a k e ( c u p c a k e _ x , c u p c a k e _ y ) p u t _ r o b o t _ a t _ s t a r t i n g _ p o i n t s e a r c h ( c u p c a k e _ x , c u p c a k e _ y ) s e a r c h ( c u p c a k e _ x , c u p c a k e _ y ) y a y _ f o u n d ? ( f o u n d ) e n d d e f s e a r c h ( c u p c a k e _ x , c u p c a k e _ y ) w a l k _ f o r w a r d _ s t e p s ( 6 ) c h e c k _ i f _ f o u n d _ c u p c a k e ? ( c u p c a k e _ x , c u p c a k e _ y ) t u r n _ r i g h t e n d d e f y a y _ f o u n d ? ( f o u n d ) i f ( f o u n d _ c u p c a k e ) p u t s " F o u n d c u p c a t e a t p o s i t i o n # { @ r o b o t _ x } , # { @ r o b o t _ y } ! " e l s e p u t s ' I g i v e u p . ' e n d e n d d e f t u r n _ r i g h t u n l e s s ( @ f o u n d _ c u p c a k e ) @ r o b o t _ d i r e c t i o n = 9 0 e n d e n d d e f c h e c k _ i f _ f o u n d _ c u p c a k e ? ( c u p c a k e _ x , c u p c a k e _ y ) i f ( @ r o b o t _ x = = c u p c a k e _ x & & @ r o b o t _ y = = c u p c a k e _ y ) p u t s ' Y o u f o u n d t h e c u p c a k e ! ' @ f o u n d _ c u p c a k e = t r u e e n d e n d d e f w a l k _ f o r w a r d _ s t e p s ( n u m b e r _ o f _ s t e p s ) n u m b e r _ o f _ s t e p s . t i m e s d o @ r o b o t _ x + = 1 @ r o b o t _ y + = 1 e n d e n d d e f p u t _ r o b o t _ a t _ s t a r t i n g _ p o i n t @ r o b o t _ x = 0 @ r o b o t _ y = 0 @ r o b o t _ d i r e c t i o n = 0 @ f o u n d _ c u p c a k e = f a l s e e n d e n d