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