ROB BOWDEN:你好,我是羅布,讓我們跳 進入馬里奧的黑客版。 我們必須這樣做第一件事是 從用戶獲得的高度。 在這裡,我們要求他們為 非負整數,小於24和 我們使用CS50調用getInt功能 抓住從用戶的整數。 我們看到我們是一個do-whil​​e循環內 這將繼續下去,只要循環 高度大於 23,或小於0。 所以我們會繼續下去,直到用戶 實際上給了我們什麼,我們想要的。 一旦我們有了這個高度,我們得到 主對我們的節目的循環。 因此,讓我們先來看看一個例子 從pset的規範。 我們在這個例子中看到,當我們 輸入4的高度,底部排 首先打印4哈希值,兩個空格, 和四個哈希。 然後一排以上的打印1 空間中的三個哈希值,兩個空格來 分開的金字塔,和 然後三個哈希值。 除此之外,有兩個空間,兩個哈希, 兩個空間,兩個散列。 最後,三個空格1 哈希,兩個空格1散列。 所以,你應該開始注意 這裡的圖案。 讓我們來看看代碼如何 我們將做到這一點。 我們在這裡看到,我們正在迭代 在金字塔的所有行。 首先,我們要計算 的空格數。 請記住,我們要開始在 金字塔的頂部,我們的工作 一路下來,因為我們不能打印 然後,底部一排起來, 然後一行起來。 因此,在金字塔,通知頂部 該空格的數量等於 高度減去1。 我們將打印三個空格,則 1哈希,然後兩個空格來 單獨和另一個哈希值。 這樣的空間等於 高度減去行。 如果該行是1,我們的高度為4, 這會給我們3位,因為我們想要的。 那麼這個循環只是版畫 該數目的空格。 如果空間是3,那麼我們要 創建一個單一的空間三次。 繼續,現在我們要打印的 左邊的金字塔,這是散列 剛好等於行數。 回首在這裡,在排 之一,我們打印一個哈希值。 在兩個行我們打印兩種, 三排我們打印三個。 所以我們簡單地循環排次 印刷hash符號。 然後,對於金字塔中的所有行,我們 打印整整兩個空格分開 這些金字塔。 最後,我們要打印的權利 金字塔,這是側 再散列相同數量的 如左側。 因此,這是完全相同的 for循環如上這裡。 最後,我們需要在創建一個新的行 為了移動到下一行 金字塔並繼續打印。 就是這樣。 我的名字是羅布,這是馬里奧。