首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对程序设计的新认识--关于HTDP开场白练习的问题

对程序设计的新认识--关于HTDP开场白练习的问题
EN

Stack Overflow用户
提问于 2018-11-05 03:01:18
回答 1查看 297关注 0票数 4

这可能是个愚蠢的问题,但我对编程完全陌生。我是在“如何设计程序”(第二版)的开场白底部,有4个变化,你会被挑战,以“火箭着陆”计划在DrRacket。

我被困在第四部分,特别是黑体字部分:

如果火箭降落在比场景底部高出10像素的平坦岩石床上,你会如何改变程序呢?不要忘了改变场景

代码语言:javascript
复制
; constants
(define WIDTH 200)
(define HEIGHT 400)
(define SCENE-CENTER (/ WIDTH 2))
(define MTSCN (empty-scene WIDTH HEIGHT "blue"))
(define ROCKET (overlay (circle 10 "solid" "green")
                    (rectangle 40 4 "solid" "green")))
(define ROCKET-CENTER-TO-TOP
  (- (- HEIGHT 10) (/ (image-height ROCKET)2)))

;functions
(define (picture-of-rocket.v2 h)
  (cond
    [(<= h ROCKET-CENTER-TO-TOP)
     (place-image ROCKET SCENE-CENTER h MTSCN)]
    [(> h ROCKET-CENTER-TO-TOP)
     (place-image ROCKET SCENE-CENTER ROCKET-CENTER-TO-TOP MTSCN)]))

(animate picture-of-rocket.v2)

我的火箭(ufo)是做第一部分,停止10个像素从底部,但我不知道我怎么能画一个岩石床在底部,我已经学会了到目前为止。我(覆盖)在底部有10个像素的矩形吗?或者,作者的意思是将场景背景改为灰色?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-05 05:28:09

问得好!我认为,在这种情况下,没有正确的答案。事实上,我认为这就是这个练习的目的:给你一个问题来解决这个问题需要一点(很小的)创造力,而不是精确地说明你应该做什么。HtDP认识到编程需要结构化的、原则性的过程和开放的批判性思维的混合,并且它的一些问题是由设计开放式的。这与其说是为了测试你的创造性技能,倒不如说是为了确保你仍然可以在训练车轮脱落的情况下应用你所学到的东西。

你的第一个直觉--在底部加一个矩形--是一个很好的直觉。再一次,没有正确的答案,所以,如果它有效,目前,这是没关系的。这样做的目的是让你玩已经给你的工具箱。至于“改变风景”意味着什么,我把它解释为字面上要求你按照你认为合适的方式来装饰这个场景。

如果这种开放感有点迷茫,那就别担心--这在很大程度上是关键所在。如果你再往下看一点,序言的最后一节就会解释为什么这种开放式实验不足以成为一名熟练的程序员。当您通过HtDP并超越序言时,您将看到一种更有原则的程序设计方法,而不是简单地摆弄东西。不过,就目前而言,重要的一点是,你正在思考自己在做什么,这是一个好迹象。

(顺便说一句,这是我在很长一段时间里看到的与HtDP相关的最好的堆栈溢出问题之一,因此感谢您的支持。大多数都不过是学生们要求人们为他们做家庭作业的要求。)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53147767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档