int main(void) { const unsigned short MainCycle = 60; Init(MainCycle); int i; Wait(1000); for(i=0; i<N; i++) { go(length); if(is_black_right()){ left_turn(2); } else if(is_black_left()){ right_turn(2); } if(is_black()) { break; } } stop(); tyarumera(); return 0; }
bool Vertex_visibility_graph_2<Traits>::diagonal_in_interior( const Polygon& polygon, Polygon_const_iterator p, Polygon_const_iterator q) { Turn_reverser<Point_2, Left_turn_2> right_turn(left_turn_2); Polygon_const_iterator before_p; if (p == polygon.begin()) before_p = polygon.end(); else before_p = p; before_p--; Polygon_const_iterator after_p = p; after_p++; if (after_p == polygon.end()) after_p = polygon.begin(); if (right_turn(*before_p, *p, *after_p)) { if (right_turn(*before_p, *p, *q) && right_turn(*q, *p, *after_p)) return false; } else // left turn or straight at vertex { /* // p should not be able to see q through its own edge if (are_strictly_ordered_along_line(*p, *after_p, *q)) return false; */ if (right_turn(*before_p, *p, *q) || right_turn(*q, *p, *after_p)) return false; } return true; }
void hull_add_point(point_vector* vp, point* p) { if (vp->size > 1) { while (!right_turn(&(vp->array[vp->size - 2]), &(vp->array[vp->size - 1]), p)) { vp->size--; if (vp->size == 1) break; } } point_vector_push_back(vp, p); }
void main(void) { vInitialize(); myInit(); while(!pushsw_get()) { if(cnt1<100) led_out(0x1); else if(cnt1<200) led_out(0x2); else cnt1 = 0; } cnt1 = 0; while(startbar_get()) { if(cnt1<50) led_out(0x1); else if(cnt1<100) led_out(0x2); else cnt1 = 0; } led_out(0); start(); pattern = 10; while(1) { switch(pattern) { case 10: //直线 if(check_crossline()){ pattern = 30;break; } if(check_blackArea()){ pattern = 40;break; } straight_run(); //直线前行,弯道检测,盲区检测 break; case 20: //弯道 switch(turn_direction) { case LEFT: handle(-1*midDegree_st4); left_turn(); break; case RIGHT: handle(midDegree_st4); right_turn(); break; default:break; } break; case 30: //直角 rightAngle(); break; case 40: //盲区 switch(blackArea_direction) { case LEFT: left_blackArea(); break; case RIGHT: right_blackArea(); break; default:break; } break; default:break; }//end switch }//end while }