这可能是一个愚蠢的问题,但是我是编程的新手。我正处于“如何设计程序”(第二版)的序幕的最后,对DrRacket中的“火箭着陆”程序有4项挑战,您将面临挑战。
我被困在第四部分,特别是粗体部分:
您将如何更改程序,以使火箭降落在比场景底部高10像素的平坦岩石床上? 也不要忘记改变风景。
<div id="editor" data-bind="editor: EditorVM"></div>
我的火箭(ufo)正在做第一部分,从底部停止10像素,但是我不确定如何使用到目前为止学到的命令在底部绘制岩床。是否在底部(覆盖)一个10像素的矩形?还是作者只是想将场景背景更改为灰色?
答案 0 :(得分:3)
好问题!我认为,在这种情况下,没有正确的答案。确实,我认为这是练习的真正目的:给您一个要解决的问题,需要一点(很小)的创造力,而又没有确切说明您应该做什么。 HtDP认识到编程需要结构化,原则化的过程和不限成员名额的批判性思维的结合,并且其某些问题是由设计决定的。这并不是测试您的创造力,而是确保您仍然可以在关闭训练轮的情况下应用所学到的知识。
您的第一个直觉-在底部添加一个矩形-是一个很好的选择。再说一次,没有正确的答案,因此,如果目前可行,那就可以了。目的是让您使用提供给您的工具箱。至于“改变风景”的含义,我认为这实际上是要求您按照自己的意愿装饰场景。
如果这种开放性让您感到迷茫,请不要担心-这就是重点。如果您再读一点,the final section of the prologue就会确切地解释为什么这种开放式实验不足以成为熟练的程序员。在您完成HtDP并超越序言的过程中,您将获得一种更加原则化的程序设计方法,而不是简单地摆弄事情。不过,目前要注意的重要一点是,您正在考虑自己在做什么,这是一个好兆头。
(顺便说一句,这是我很长时间以来与HtDP相关的所有问题中最好的Stack Overflow问题之一,因此谢谢你。大多数只是学生提出的薄弱要求人们为他们做功课。)