diff --git a/python/port/mod/turtle/modturtle.cpp b/python/port/mod/turtle/modturtle.cpp index ed6b50599..992b90281 100644 --- a/python/port/mod/turtle/modturtle.cpp +++ b/python/port/mod/turtle/modturtle.cpp @@ -44,8 +44,16 @@ mp_obj_t modturtle_left(mp_obj_t angle) { return mp_const_none; } -mp_obj_t modturtle_circle(mp_obj_t radius, mp_obj_t angle) { - sTurtle.circle(mp_obj_get_int(radius), mp_obj_get_float(angle)); +mp_obj_t modturtle_circle(size_t n_args, const mp_obj_t *args) { + mp_int_t radius = mp_obj_get_int(args[0]); + + if (n_args == 1) { + sTurtle.circle(radius); + } + else { + mp_float_t angle = mp_obj_get_float(args[1]); + sTurtle.circle(radius, angle); + } return mp_const_none; } diff --git a/python/port/mod/turtle/modturtle.h b/python/port/mod/turtle/modturtle.h index b5f28bc01..93fe483b9 100644 --- a/python/port/mod/turtle/modturtle.h +++ b/python/port/mod/turtle/modturtle.h @@ -9,7 +9,7 @@ mp_obj_t modturtle_forward(mp_obj_t px); mp_obj_t modturtle_backward(mp_obj_t px); mp_obj_t modturtle_right(mp_obj_t deg); mp_obj_t modturtle_left(mp_obj_t deg); -mp_obj_t modturtle_circle(mp_obj_t radius, mp_obj_t angle); +mp_obj_t modturtle_circle(size_t n_args, const mp_obj_t *args); mp_obj_t modturtle_goto(size_t n_args, const mp_obj_t *args); mp_obj_t modturtle_setheading(mp_obj_t deg); mp_obj_t modturtle_speed(mp_obj_t speed); diff --git a/python/port/mod/turtle/modturtle_table.c b/python/port/mod/turtle/modturtle_table.c index 65c8fc2eb..6f6369a54 100644 --- a/python/port/mod/turtle/modturtle_table.c +++ b/python/port/mod/turtle/modturtle_table.c @@ -6,7 +6,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_forward_obj, modturtle_forward); STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_backward_obj, modturtle_backward); STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_right_obj, modturtle_right); STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_left_obj, modturtle_left); -STATIC MP_DEFINE_CONST_FUN_OBJ_2(modturtle_circle_obj, modturtle_circle); +STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(modturtle_circle_obj, 1, 2, modturtle_circle); STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(modturtle_goto_obj, 1, 2, modturtle_goto); STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_setheading_obj, modturtle_setheading); STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_speed_obj, modturtle_speed); diff --git a/python/port/mod/turtle/turtle.h b/python/port/mod/turtle/turtle.h index 5430594fc..0cf437d2a 100644 --- a/python/port/mod/turtle/turtle.h +++ b/python/port/mod/turtle/turtle.h @@ -44,7 +44,7 @@ public: void backward(mp_float_t length) { forward(-length); } void right(mp_float_t angle) { left(-angle); } void left(mp_float_t angle); - void circle(mp_int_t radius, mp_float_t angle); + void circle(mp_int_t radius, mp_float_t angle = 360); bool goTo(mp_float_t x, mp_float_t y); mp_float_t heading() const;