444,100 Members | 2,979 Online Need help? Post your question and get tips & solutions from a community of 444,100 IT Pros & Developers. It's quick & easy.

# Python Robot Implementation

 P: 1 Hi, I'm working on an assignment for school which i am a bit stuck on. The assignment is to make robot which i have been given the library for move around different boards and collecting "coins" and avoiding "blocks" and not falling of the edge. The full assignment is outlined at http://www.cs.sfu.ca/CC/120/ggbaker/assign-1067/assign4 and the robot library is at http://www.cs.sfu.ca/CC/120/ggbaker/.../assign4-robot, i have written some of the code from my algorithm and pseudocode that i came up with but it does not work for all the boards that are available. here is a copy of my code. Expand|Select|Wrap|Line Numbers from robotlib import *   r=Robot(testboard=8)   def start(W,N):     """     Moves Robot to (0,0)     """     a,b=r.sensor(W)     c,d=r.sensor(N)     while str(a)=="BLOCK":         if int(d)!=1:             r.move(N)         a,b=r.sensor(W)         c,d=r.sensor(N)     for i in range(int(b)-1):         r.move(W)       c,d=r.sensor(N)     if str(c)!="BLOCK":         for i in range(int(d)-1):             r.move(N)     while str(c)=="BLOCK":         r.move(E)         for i in range(int(d)-1):             r.move(N)         c,d=r.sensor(N)       def check1(direction):     """     Checks to see if there is a wall in the row. If yes move down and skip     row there is nothing to gather or go around.     """       a,b=r.sensor(direction)     e,h=r.sensor(S)     if str(a)=="WALL" and int(h)!=1 :         r.move(S)         g,h=r.sensor(S)   def check2(direction):     """     Checks to see if block is in the way. If yes find way to go around.     """       a,b=r.sensor(direction)     if str(a)=="BLOCK":         for i in range(int(b)-1):             r.move(direction)         block1(direction)     def check3(direction):     """     Checks to see if coin is in row. If yes go forward and gather all the     coins then move back to first colum.     """       a,b=r.sensor(direction)     while str(a)=="COIN":         r.move(direction)         a,b=r.sensor(direction)         c,d=r.sensor(W)     x,y=r.currentPosition()     g,h=r.sensor(W)     if str(g)!="BLOCK":         for i in range(int(x)):             r.move(W)     else:         block2(direction)   def block1(direction):     a,b=r.sensor(N)     c,d=r.sensor(S)     if int(b)>1:         r.move(N)         r.move(direction)         e,f=r.sensor(E)         if str(e)=="WALL":             g,h=r.sensor(S)             while int(h)==1 and str(g)=="BLOCK":                 r.move(E)                 g,h=r.sensor(E)         r.move(S) def block2(direction):     c,d=r.sensor(W)     e,f=r.sensor(S)     if str(c)=="BLOCK" and int(d)<2:         r.move(S)     """         x,y=r.currentPosition() a,b=r.sensor(W) c,d=r.sensor(N) if str(a)=="WALL":     for i in range(int(x)):         r.move(W) if str(c)=="WALL":     for i in range(int(y)):         r.move(N) """ start(W,N) num=r.coinsLeft() while int(num)!=0:     check1(E)     check2(E)     check3(E)     num=r.coinsLeft()       Nov 30 '06 #1 