1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> ROB BOWDEN:你好,我是罗布,让我们跳 进入马里奥的黑客版。 3 00:00:18,290 --> 00:00:21,760 我们必须这样做第一件事是 从用户获得的高度。 4 00:00:21,760 --> 00:00:26,290 在这里,我们要求他们为 非负整数,小于24和 5 00:00:26,290 --> 00:00:31,710 我们使用CS50调用getInt功能 抓住从用户的整数。 6 00:00:31,710 --> 00:00:35,260 我们看到我们是一个do-whil​​e循环内 这将继续下去,只要循环 7 00:00:35,260 --> 00:00:38,400 高度大于 23,或小于0。 8 00:00:38,400 --> 00:00:42,850 所以我们会继续下去,直到用户 实际上给了我们什么,我们想要的。 9 00:00:42,850 --> 00:00:46,960 >> 一旦我们有了这个高度,我们得到 主对我们的节目的循环。 10 00:00:46,960 --> 00:00:49,510 因此,让我们先来看看一个例子 从pset的规范。 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 我们在这个例子中看到,当我们 输入4的高度,底部排 13 00:00:56,940 --> 00:01:01,520 首先打印4哈希值,两个空格, 和四个哈希。 14 00:01:01,520 --> 00:01:06,280 >> 然后一排以上的打印1 空间中的三个哈希值,两个空格来 15 00:01:06,280 --> 00:01:09,690 分开的金字塔,和 然后三个哈希值。 16 00:01:09,690 --> 00:01:13,460 除此之外,有两个空间,两个哈希, 两个空间,两个散列。 17 00:01:13,460 --> 00:01:18,090 最后,三个空格1 哈希,两个空格1散列。 18 00:01:18,090 --> 00:01:20,980 所以,你应该开始注意 这里的图案。 19 00:01:20,980 --> 00:01:22,545 >> 让我们来看看代码如何 我们将做到这一点。 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 我们在这里看到,我们正在迭代 在金字塔的所有行。 22 00:01:28,840 --> 00:01:31,720 首先,我们要计算 的空格数。 23 00:01:31,720 --> 00:01:34,690 请记住,我们要开始在 金字塔的顶部,我们的工作 24 00:01:34,690 --> 00:01:37,790 一路下来,因为我们不能打印 然后,底部一排起来, 25 00:01:37,790 --> 00:01:39,140 然后一行起来。 26 00:01:39,140 --> 00:01:44,030 因此,在金字塔,通知顶部 该空格的数量等于 27 00:01:44,030 --> 00:01:45,720 高度减去1。 28 00:01:45,720 --> 00:01:50,120 我们将打印三个空格,则 1哈希,然后两个空格来 29 00:01:50,120 --> 00:01:53,350 单独和另一个哈希值。 30 00:01:53,350 --> 00:01:57,320 >> 这样的空间等于 高度减去行。 31 00:01:57,320 --> 00:02:03,180 如果该行是1,我们的高度为4, 这会给我们3位,因为我们想要的。 32 00:02:03,180 --> 00:02:06,900 那么这个循环只是版画 该数目的空格。 33 00:02:06,900 --> 00:02:12,630 如果空间是3,那么我们要 创建一个单一的空间三次。 34 00:02:12,630 --> 00:02:18,750 >> 继续,现在我们要打印的 左边的金字塔,这是散列 35 00:02:18,750 --> 00:02:20,630 刚好等于行数。 36 00:02:20,630 --> 00:02:23,250 回首在这里,在排 之一,我们打印一个哈希值。 37 00:02:23,250 --> 00:02:25,960 在两个行我们打印两种, 三排我们打印三个。 38 00:02:25,960 --> 00:02:30,440 所以我们简单地循环排次 印刷hash符号。 39 00:02:30,440 --> 00:02:34,830 然后,对于金字塔中的所有行,我们 打印整整两个空格分开 40 00:02:34,830 --> 00:02:36,360 这些金字塔。 41 00:02:36,360 --> 00:02:39,590 >> 最后,我们要打印的权利 金字塔,这是侧 42 00:02:39,590 --> 00:02:42,160 再散列相同数量的 如左侧。 43 00:02:42,160 --> 00:02:45,680 因此,这是完全相同的 for循环如上这里。 44 00:02:45,680 --> 00:02:49,445 最后,我们需要在创建一个新的行 为了移动到下一行 45 00:02:49,445 --> 00:02:51,690 金字塔并继续打印。 46 00:02:51,690 --> 00:02:53,010 就是这样。 47 00:02:53,010 --> 00:02:54,860 我的名字是罗布,这是马里奥。 48 00:02:54,860 --> 00:03:01,718