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