浏览 627 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-05-13 关键字: ruby quiz, logo
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。
-----题目分割线----- 海龟作图(Logo)是我最早学习的一种编程语言,相信许多我的同龄人都接触过这个语言,正是它让我对编程产生了浓厚兴趣,在rubyquiz上看到这篇利用ruby实现海龟画图的每周一测后,倍感亲切: 引用 想像你控制了一只小海龟在一片沙滩上行动,你可以控制它前进(FORWARD),后退(BACK),左右转弯(LEFT/RIGHT),然后用它的尾巴抬起,放下来作画(PENUP/PENDOWN) 举例来说,画一个100*100的正方形,可以这样写:
pen_down
4.times { forward 100; right 90 }
完成这次的每周一测你需要做一些准备工作: 1. 下载一个turtle.zip,这里包含了基本的框架 2. 安装tcl/tk以及相关的ruby库 在解压后的zip包里面,有个lib/turtle.rb,完成它里面的方法就实现了海龟画图的功能。 通过调用 ruby turtle_viewer.rb samples/byzantium.rb 可以看到附带的几个例子效果。 让我们来重温一下儿时熟悉的小海龟画图吧:
def byzantium(r, n)
return if n < 1
fd r; rt 135
4.times {
pd; fd 2 * r * sin(45 * DEG); pu
byzantium(r / 2, n - 1)
rt 90
}
lt 135; bk r
end
byzantium(100, 4)
-----解答分割线----- 原题和一些解法在这里:http://rubyquiz.com/quiz104.html 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |



