陳ZAMYLA：這是一個，我，Zamyla。
今天，我們要實現 馬里奧，我們得出馬里奧
他一個完整的金字塔跳過。
讓我們打破 子任務針對此問題。
>> 首先，我們要提示用戶 對於金字塔的高度。
然後，我們要確保 即該輸入是有效的。
然後，我們將 要繪製金字塔。
>> 所以，讓我們來談談提示 和驗證用戶輸入。
它可能看起來像 這一點，do-whil​​e循環的
提示用戶輸入一個 整數，然後只重複
如果該整數是無效的。
所以，應該這個條件是什麼？
>> 對於這一點，讓我們回到 到本說明書中。
那麼，規範告訴我們，任何有效 高度將是0和23之間，
包括的。
於是這意味著任何無效 高度將是小於0
或超過23。
>> 所以，現在，我們有這個信息， 讓我們來設計我們的條件。
但是，我們必須小心， 因為現在我們有
我們要評估2布爾值。
>> 在這裡，我向您提供 用真值表。
這使我們可以採取兩種 布爾值，布爾一和二。
而且我們可以評估要么BOOL1 和BOOL2或BOOL1或BOOL2。
>> 所以，有什麼區別 之間以及和或？
那麼，BOOL1和BOOL2會 計算結果為真當且僅
如果兩個布爾是真實的， 而或操作
為真，如果任意一方 在布爾或無一不是如此。
因此，考慮到這一點， 看看你能不能找出
什麼適當的條件 你對一個無效ñdo-whil​​e循環
將是。
>> 就這樣，我們已經提示和確認 用戶對於金字塔的高度
他們想要的。
所以，現在，它是由我們 繪製金字塔。
完整的金字塔本 問題看起來有點
這樣，我們有一個左金字塔， 一些間隙，然後右金字塔。
因此，讓我們打破這一點。
>> 如果我去我的文本編輯器，在這裡，我 繪製我們左對齊金字塔。
但是，這是不行的。
我們想要做的是我們要 首先創建一個右對齊的金字塔。
因此，要做到這一點，只是推 我沿著一邊哈希，
我只是把一些字符 在兩者之間，只是這些點。
然後，我打算把兩個在 下一行，和一個在該行。
所以，在這裡我有一個 右對齊金字塔。
>> 在那之後，我要去 回到最上面一行
並把在間隙，這 是，每規範，兩個空格。
然後我會填寫 金字塔的另一側。
我會去第二排，寫 兩個空格的差距，那麼雙
哈希值。
回到第三行，兩個空間 對於缺口和三個哈希值。
並在年底，兩個空間 對於缺口和四個哈希值。
所以，這就是一個完整的 金字塔的樣子。
>> 當然，我們不希望 這些點中的方式。
所以我們要替換這些 通過把一些空格點。
一個，兩個，三個在第一行。
一，二上的第二個。
和一個在第三線路。
因此，這是我們會怎樣做，如果我們 希望只是做一個完整的金字塔，
也就是說，在我們的文本編輯器。
>> 因此，讓我們藉此， 理解模式，
並在將其轉換為一些偽。
對於金字塔的每一行，我們希望 打印的左金字塔然後
的差距，再右邊的金字塔。
左金字塔，我們打印 的空間所需量，
其次是哈希值。
然後，我們打印差距，這 是每一次只有兩個空格。
而在右邊的金字塔，我們打印 必要數量的散列。
>> 對於第二行，我們進行了 完全相同的過程。
我們打印的空間左 金字塔，所需量
散列，間隙，兩個空間，和 那麼散列為正確的金字塔。
>> 讓我們來解決模式 用於左金字塔。
如果我有，為目的 本實施例的，高度
八所要求的 用戶，那麼我的第一排
將有一個哈希和7個空格。
我的第二排將有 兩個哈希，六個空格。
第三排，三哈希，五個空格。
你也許可以做到這一點 對於自己的八個高度
並確定為每一行多少 哈希多少空間需要。
但是，我們想要做的是什麼 我們希望它抽象。
所以我問你任何的第n行，多少 哈希和我們有多少空間需要？
>> 現在，當你確定 模式來多少哈希
多少空間你需要 任何第n行對於一個給定的高度，
切記要小心 如何你索引。
我的意思是，在日常生活 生活中我們最開始由一個計數。
所以，第一行是一個數字。
和第二行是行 第二，等等，等等。
>> 但是，在計算機科學和 CS50，我們是零索引。
所以我們實際上從零開始計數。
因此第一行會 是行數為零。
和第二行 會排第一。
所以，如果我有八的高度 我的金字塔，那麼n的最後一個值
實際上是七不八強。
>> 所以，要注意此點。
而要知道，當你確定 你的模式是否你的零索引
或一索引
>> 好。
所以，現在，我們有 對於左金字塔圖案，
我們需要確定 圖案的間隙。
幸運的是，這是很容易的。
這只是總是兩個空格。
>> 所以，現在我們進行正確的模式。
第一排將有一個哈希值。
第二行，二。
第三排，三。
等等等等。
如此反复，確定任何抽象 n和任何高度多少哈希
又有多少空間 每一行應該有。
>> 好。
因此，我們知道，對於每一行，我們 需要進行一些處理。
我們怎麼辦呢？
好了，我們用的循環結構， 由一個初始化，
一個條件，並進行更新。
For循環可使用 重複的過程。
>> 所以說，我希望它打招呼， 世界上50倍，那麼我的for循環
會是這個樣子，哪裡 我初始化我變到零。
條件是i小於50。
然後將更新的是，它 通過每次遞增1。
那麼，這會做將是 在連續打印你好，世界的50倍。
>> 現在，說我想要迭代 在金字塔的高度。
然後，而不是硬編碼 在條件一定的價值，
我只是用可變高度。
那麼，這將做的是迭代 以上的高度的每一行。
我可以在裡面做一些事情 該循環的機構。
>> 什麼是我們想要做的 在循環體內？
嗯，正如我們之前所說，我們希望 打印空間和散列
左金字塔，然後打印 兩個空格，然後打印哈希值。
因此，我們已經想通了這一點。
因此，我們可以開始填寫 在我們的節目多很多。
>> 在這裡，我有一個外部的循環 迭代在金字塔的每一行。
而且身體裡面我要去 重複打印的空間，
反复散列，然後該間隙， 然後散列合適的金字塔，
然後，最後，一個新的 行開始的下一行。
>> 就這樣，我們已經提示 用戶的輸入。
我們確信，它是有效的。
然後，我們得出的金字塔。
所以馬里奧可以成功 爬上金字塔。
>> 我的名字是Zamyla。
這是CS50。