1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> ROB BOWDEN: Oi, eu sou Rob, e vamos pular na edição de hackers de Mario. 3 00:00:18,290 --> 00:00:21,760 Então a primeira coisa que precisamos fazer é obter a altura do utilizador. 4 00:00:21,760 --> 00:00:26,290 Aqui nós estamos pedindo a eles para uma inteiro não negativo menor que 24 e 5 00:00:26,290 --> 00:00:31,710 estamos usando a função CS50 GetInt para pegar esse inteiro do usuário. 6 00:00:31,710 --> 00:00:35,260 Vemos que estamos dentro de um loop do-while que continuará looping enquanto 7 00:00:35,260 --> 00:00:38,400 altura é maior do que 23, ou menor do que 0. 8 00:00:38,400 --> 00:00:42,850 E assim nós vamos continuar até que o usuário realmente nos dá o que queremos. 9 00:00:42,850 --> 00:00:46,960 >> Uma vez que temos essa altura, temos de o principal laço for do nosso programa. 10 00:00:46,960 --> 00:00:49,510 Então, vamos primeiro olhar para um exemplo da especificação pset. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 Vemos neste exemplo que, quando introduzir uma altura de 4, a linha inferior 13 00:00:56,940 --> 00:01:01,520 primeiro imprime quatro hashes, dois espaços, e mais quatro hashes. 14 00:01:01,520 --> 00:01:06,280 >> Em seguida, uma linha acima que imprime um espaço três hashes, dois espaços para 15 00:01:06,280 --> 00:01:09,690 separar as pirâmides, e em seguida, mais três hashes. 16 00:01:09,690 --> 00:01:13,460 E acima disso, dois espaços, dois hashes, dois espaços, dois hashes. 17 00:01:13,460 --> 00:01:18,090 E, finalmente, três espaços de um Hash, dois espaços de um hash. 18 00:01:18,090 --> 00:01:20,980 Então, você deve começar a notar o padrão aqui. 19 00:01:20,980 --> 00:01:22,545 >> Vamos olhar para o código de como vamos fazer isso. 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 Vemos aqui que nós estamos interagindo em todas as linhas da pirâmide. 22 00:01:28,840 --> 00:01:31,720 Primeiro queremos calcular o número de espaços. 23 00:01:31,720 --> 00:01:34,690 E lembre-se que nós temos que começar a o topo da pirâmide e trabalhar nossa 24 00:01:34,690 --> 00:01:37,790 caminho, uma vez que não é possível imprimir o inferior, em seguida, uma linha para cima e 25 00:01:37,790 --> 00:01:39,140 em seguida, uma linha para cima. 26 00:01:39,140 --> 00:01:44,030 Assim, no topo da pirâmide, a notificação que o número de espaços é igual 27 00:01:44,030 --> 00:01:45,720 altura menos 1. 28 00:01:45,720 --> 00:01:50,120 Vamos imprimir três espaços, em seguida, um de hash e, em seguida, dois espaços para 29 00:01:50,120 --> 00:01:53,350 separado e outro hash. 30 00:01:53,350 --> 00:01:57,320 >> Assim, os espaços é igual altura da linha de menos. 31 00:01:57,320 --> 00:02:03,180 Se a linha é 1 e nossa altura é 4, que vai nos dar três espaços, como nós queremos. 32 00:02:03,180 --> 00:02:06,900 Então este laço for apenas impressões esse número de espaços. 33 00:02:06,900 --> 00:02:12,630 Se espaços é três, então vamos criar um único espaço três vezes. 34 00:02:12,630 --> 00:02:18,750 >> Continuando, agora queremos imprimir o hashes da pirâmide esquerdo, que é 35 00:02:18,750 --> 00:02:20,630 apenas igual ao número da linha. 36 00:02:20,630 --> 00:02:23,250 Olhando para trás, aqui, na linha um, nós imprimimos um hash. 37 00:02:23,250 --> 00:02:25,960 Na linha dois imprimimos dois, em linha três imprimimos três. 38 00:02:25,960 --> 00:02:30,440 Vezes linha Então, nós simplesmente laço impressão símbolo hash. 39 00:02:30,440 --> 00:02:34,830 Então, para todas as linhas da pirâmide, nós imprimir exatamente dois espaços para separar 40 00:02:34,830 --> 00:02:36,360 essas pirâmides. 41 00:02:36,360 --> 00:02:39,590 >> E, finalmente, queremos imprimir à direita lado da pirâmide, o que é 42 00:02:39,590 --> 00:02:42,160 novamente o mesmo número de guisados como do lado esquerdo. 43 00:02:42,160 --> 00:02:45,680 E por isso é exatamente o mesmo loop for como acima aqui. 44 00:02:45,680 --> 00:02:49,445 Finalmente, precisamos criar uma nova linha na Para passar para a próxima linha de 45 00:02:49,445 --> 00:02:51,690 a pirâmide e continuar a impressão. 46 00:02:51,690 --> 00:02:53,010 E é isso. 47 00:02:53,010 --> 00:02:54,860 Meu nome é Rob e isso foi Mario. 48 00:02:54,860 --> 00:03:01,718