greyareasize = reduce(lambda x,y:tuple([abs(x[i])+abs(y[i]) for i in range(len(x))]) , greyarea)
greyarea_box = box(pos=(0,-AREA_Y/2+250,0), size=greyareasize, color=(0.3, 0.6, 0.3))
greyareasize = reduce(lambda x,y:tuple([abs(x[i])+abs(y[i]) for i in range(len(x))]) , greyarea)
greyarea_box = box(pos=(0,-AREA_Y/2+250,0), size=greyareasize, color=(0.3, 0.6, 0.3))
def square(sz):
sq = curve()
sq.pos = [(-sz, -sz, 0.3),
def square(sz):
sq = curve()
sq.pos = [(-sz, -sz, 0.3),
def set_robot():
global robot, last_pos, robot_trail, robot_trail_list
global save_pos, robot_x, robot_y, robot_a
def set_robot():
global robot, last_pos, robot_trail, robot_trail_list
global save_pos, robot_x, robot_y, robot_a
- axis = (math.cos(robot_a*math.pi/180),
- math.sin(robot_a*math.pi/180),
+ if color == YELLOW:
+ tmp_x = robot_x - AREA_X/2
+ tmp_y = robot_y - AREA_Y/2
+ tmp_a = robot_a
+ else:
+ tmp_x = -robot_x + AREA_X/2
+ tmp_y = -robot_y + AREA_Y/2
+ tmp_a = robot_a
+
+ robot.pos = (tmp_x, tmp_y, ROBOT_HEIGHT/2)
+ axis = (math.cos(tmp_a*math.pi/180),
+ math.sin(tmp_a*math.pi/180),
- lspickle.pos = (robot_x - AREA_X/2 + (robot_lspickle*70) * math.cos((robot_a-90)*math.pi/180),
- robot_y - AREA_Y/2 + (robot_lspickle*70) * math.sin((robot_a-90)*math.pi/180),
+ lspickle.pos = (tmp_x + (robot_lspickle*60) * math.cos((tmp_a+90)*math.pi/180),
+ tmp_y + (robot_lspickle*60) * math.sin((tmp_a+90)*math.pi/180),
- rspickle.pos = (robot_x - AREA_X/2 + (robot_rspickle*70) * math.cos((robot_a+90)*math.pi/180),
- robot_y - AREA_Y/2 + (robot_rspickle*70) * math.sin((robot_a+90)*math.pi/180),
+ rspickle.pos = (tmp_x + (robot_rspickle*60) * math.cos((tmp_a-90)*math.pi/180),
+ tmp_y + (robot_rspickle*60) * math.sin((tmp_a-90)*math.pi/180),
-init_corn_table(random.randint(0,8), random.randint(0,3))
+#init_corn_table(random.randint(0,8), random.randint(0,3))
+init_corn_table(0, 0)
fr = open("/tmp/.robot_sim2dis", "r")
fw = open("/tmp/.robot_dis2sim", "w", 0)
while True:
fr = open("/tmp/.robot_sim2dis", "r")
fw = open("/tmp/.robot_dis2sim", "w", 0)
while True:
- m = re.match("pos=%s,%s,%s"%(INT,INT,INT), l)
- if m:
- robot_x = int(m.groups()[0])
- robot_y = int(m.groups()[1])
- robot_a = int(m.groups()[2])
- set_robot()
- m = re.match("ballboard=%s"%(INT), l)
- if m:
- print int(m.groups()[0])
- m = re.match("cobboard=%s"%(INT), l)
- if m:
- mode = int(m.groups()[0])
- if (mode & 0x01) == 0:
- robot_lspickle = 0
- elif (mode & 0x02) == 0:
- robot_lspickle = 1
- else:
- robot_lspickle = 2
- if (mode & 0x04) == 0:
- robot_rspickle = 0
- elif (mode & 0x08) == 0:
- robot_rspickle = 1
- else:
- robot_rspickle = 2
+
+ # parse position
+ if not m:
+ m = re.match("pos=%s,%s,%s"%(INT,INT,INT), l)
+ if m:
+ robot_x = int(m.groups()[0])
+ robot_y = int(m.groups()[1])
+ robot_a = int(m.groups()[2])
+ set_robot()
+
+ # parse ballboard
+ if not m:
+ m = re.match("ballboard=%s"%(INT), l)
+ if m:
+ print int(m.groups()[0])
+
+ # parse cobboard
+ if not m:
+ m = re.match("cobboard=%s"%(INT), l)
+ if m:
+ mode = int(m.groups()[0])
+ if (mode & 0x01) == 0:
+ robot_lspickle = 0
+ elif (mode & 0x02) == 0:
+ robot_lspickle = 1
+ else:
+ robot_lspickle = 2
+ if (mode & 0x04) == 0:
+ robot_rspickle = 0
+ elif (mode & 0x08) == 0:
+ robot_rspickle = 1
+ else:
+ robot_rspickle = 2