羽清对Turtle很感兴趣,果然孩子还是喜欢图形化的东西,而她最喜欢画的就是房子,于是开始琢磨如何用Turtle画出一个房子,在借鉴了《Help Your Kid with Computer Coding》里的程序后,她画出了第一个房子,里面的数字参数都是她自己尝试出来的,正好也用上了她刚刚在学的坐标和角度的概念。
1.from turtle import *
2.def turtle_controller(do, val = 0): #val = 0是设置参数默认初始值,这样后面调用就可以省略这个参数了
3. do = do.upper() #这个upper函数很有用,无论是大写还是小写都可以统一处理了
4. if do == 'F':
5. forward(val)
6. elif do == 'B':
7. backward(val)
8. elif do == 'R':
9. right(val)
10. elif do == 'L':
11. left(val)
12. elif do == 'U':
13. penup()
14. elif do == 'D':
15. pendown()
16. elif do == 'N':
17. reset()
18. else:
19. print('Unreconized command')
20.reset()
21.turtle_controller('F', 100)
22.turtle_controller('L', 90)
23.turtle_controller('F', 100)
24.turtle_controller('L', 90)
25.turtle_controller('F', 100)
26.turtle_controller('L', 90)
27.turtle_controller('F', 100)
28.turtle_controller('U')
29.turtle_controller('F', 50)
30.turtle_controller('R', 90)
31.turtle_controller('D')
32.turtle_controller('F', 100)
33.turtle_controller('L', 90)
34.turtle_controller('F', 150)
35.turtle_controller('L', 90)
36.turtle_controller('F', 100)
37.turtle_controller('L', 90)
38.turtle_controller('F', 150)
39.turtle_controller('R', 90)
40.turtle_controller('U')
41.turtle_controller('F', 125)
42.turtle_controller('L', 90)
43.turtle_controller('D')
44.turtle_controller('F', 175)
45.turtle_controller('L', 90)
46.turtle_controller('F', 250)
47.turtle_controller('L', 90)
48.turtle_controller('F', 350)
49.turtle_controller('L', 90)
50.turtle_controller('F', 250)
51.turtle_controller('L', 90)
52.turtle_controller('F', 350)
53.turtle_controller('L', 45)
54.turtle_controller('F', 177)
55.turtle_controller('L', 90)
56.turtle_controller('F', 177)
虽然方法比较笨,但羽清画出完美的房子的时候还是非常有成就感的。另外还有一个小插曲,她在写了50行的代码画出房子之后没有存盘,结果不小心程序都丢了,于是我教育她有改动就要存盘,但她说google docs都是自动保存的。。。好吧,repl.it还有改进的空间啊。