ROB BOWDEN:你好,我是罗布,让我们跳 进入马里奥的黑客版。 我们必须这样做第一件事是 从用户获得的高度。 在这里,我们要求他们为 非负整数,小于24和 我们使用CS50调用getInt功能 抓住从用户的整数。 我们看到我们是一个do-whil​​e循环内 这将继续下去,只要循环 高度大于 23,或小于0。 所以我们会继续下去,直到用户 实际上给了我们什么,我们想要的。 一旦我们有了这个高度,我们得到 主对我们的节目的循环。 因此,让我们先来看看一个例子 从pset的规范。 我们在这个例子中看到,当我们 输入4的高度,底部排 首先打印4哈希值,两个空格, 和四个哈希。 然后一排以上的打印1 空间中的三个哈希值,两个空格来 分开的金字塔,和 然后三个哈希值。 除此之外,有两个空间,两个哈希, 两个空间,两个散列。 最后,三个空格1 哈希,两个空格1散列。 所以,你应该开始注意 这里的图案。 让我们来看看代码如何 我们将做到这一点。 我们在这里看到,我们正在迭代 在金字塔的所有行。 首先,我们要计算 的空格数。 请记住,我们要开始在 金字塔的顶部,我们的工作 一路下来,因为我们不能打印 然后,底部一排起来, 然后一行起来。 因此,在金字塔,通知顶部 该空格的数量等于 高度减去1。 我们将打印三个空格,则 1哈希,然后两个空格来 单独和另一个哈希值。 这样的空间等于 高度减去行。 如果该行是1,我们的高度为4, 这会给我们3位,因为我们想要的。 那么这个循环只是版画 该数目的空格。 如果空间是3,那么我们要 创建一个单一的空间三次。 继续,现在我们要打印的 左边的金字塔,这是散列 刚好等于行数。 回首在这里,在排 之一,我们打印一个哈希值。 在两个行我们打印两种, 三排我们打印三个。 所以我们简单地循环排次 印刷hash符号。 然后,对于金字塔中的所有行,我们 打印整整两个空格分开 这些金字塔。 最后,我们要打印的权利 金字塔,这是侧 再散列相同数量的 如左侧。 因此,这是完全相同的 for循环如上这里。 最后,我们需要在创建一个新的行 为了移动到下一行 金字塔并继续打印。 就是这样。 我的名字是罗布,这是马里奥。