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 Ми бачимо, що ми всередині зроби час циклу що продовжуватиме цикл тих пір, поки 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 Перший друкує чотири хеши, два прогалини, і ще чотири хеши. 14 00:01:01,520 --> 00:01:06,280 >> Тоді один ряд вище, який друкує один космічні три хеши, два простору до 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 І, нарешті, три простору один хеш, два простору однієї хеш. 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 Ми збираємося надрукувати три місця, то один хеш, а потім два простори в 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 Якщо простору в три, то ми збираємося створити єдиний простір в три рази. 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 Таким чином, ми просто цикл раз ряд друк символ хеш. 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 І таким чином, це та ж сама точна цикл, як зазначено вище тут. 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