1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> ROB BOWDEN: Ola, eu son Rob, e imos saltar na edición de hackers de Mario. 3 00:00:18,290 --> 00:00:21,760 Entón o primeiro que temos que facer é obter a altura do usuario. 4 00:00:21,760 --> 00:00:26,290 Aquí estamos pedindo a eles para unha enteiro non negativo menor que 24 e 5 00:00:26,290 --> 00:00:31,710 estamos a usar a función CS50 GetInt para incorporarse este enteiro do usuario. 6 00:00:31,710 --> 00:00:35,260 Vemos que estamos dentro dun loop do-while que seguirá looping mentres 7 00:00:35,260 --> 00:00:38,400 altura é maior que 23, ou menor que 0. 8 00:00:38,400 --> 00:00:42,850 E así nós imos continuar ata que o usuario realmente nos dá o que queremos. 9 00:00:42,850 --> 00:00:46,960 >> Unha vez que temos esa altura, debemos o principal lazo é do noso programa. 10 00:00:46,960 --> 00:00:49,510 Entón, imos primeiro ollar para un exemplo da especificación pset. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 Vemos neste exemplo que cando introducir unha altura de 4, a liña inferior 13 00:00:56,940 --> 00:01:01,520 primeiro imprime catro hashes, dous espazos, e catro máis hashes. 14 00:01:01,520 --> 00:01:06,280 >> A continuación, unha liña anterior que imprime un espazo tres hashes, dous espazos para 15 00:01:06,280 --> 00:01:09,690 separar as pirámides, e logo tres hashes. 16 00:01:09,690 --> 00:01:13,460 E por riba diso, dous espazos, dous hashes, dous espazos, dous hashes. 17 00:01:13,460 --> 00:01:18,090 E, finalmente, tres espazos dun Hash, dous espazos dun hash. 18 00:01:18,090 --> 00:01:20,980 Entón, ten que comezar a notar o patrón aquí. 19 00:01:20,980 --> 00:01:22,545 >> Imos ollar para o código de como imos facelo. 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 Vemos aquí que estamos interactuar en todas as liñas da pirámide. 22 00:01:28,840 --> 00:01:31,720 Primeiro queremos calcular o número de espazos. 23 00:01:31,720 --> 00:01:34,690 E lembre que temos que comezar a o cumio da pirámide e traballar nosa 24 00:01:34,690 --> 00:01:37,790 camiño, xa que non é posible imprimir o inferior, a continuación, unha liña para arriba e 25 00:01:37,790 --> 00:01:39,140 a continuación, unha liña para arriba. 26 00:01:39,140 --> 00:01:44,030 Así, na parte superior da pirámide, a notificación que o número de espazos coincide 27 00:01:44,030 --> 00:01:45,720 altura menos 1. 28 00:01:45,720 --> 00:01:50,120 Imos imprimir tres espazos, logo un de hash e logo, dous espazos para 29 00:01:50,120 --> 00:01:53,350 separado e outro hash. 30 00:01:53,350 --> 00:01:57,320 >> Así, os espazos coincide altura da liña de menos. 31 00:01:57,320 --> 00:02:03,180 Se a liña é 1 e nosa altura é 4, que vai dar tres espazos, como queremos. 32 00:02:03,180 --> 00:02:06,900 Entón este lazo for só impresións ese número de espazos. 33 00:02:06,900 --> 00:02:12,630 Espazos é tres, entón imos crear un único espazo tres veces. 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 só igual ao número da liña. 36 00:02:20,630 --> 00:02:23,250 Mirando cara atrás, aquí, na liña un, nós imprimir un hash. 37 00:02:23,250 --> 00:02:25,960 Na liña dous imprimir dous, en liña tres imprimir tres. 38 00:02:25,960 --> 00:02:30,440 Veces liña Entón, nós simplemente lazo impresión símbolo hash. 39 00:02:30,440 --> 00:02:34,830 Entón, para todas as liñas da pirámide, nós imprimir exactamente dous espazos para separar 40 00:02:34,830 --> 00:02:36,360 estas pirámides. 41 00:02:36,360 --> 00:02:39,590 >> E, finalmente, queremos imprimir á dereita lado da pirámide, o que se 42 00:02:39,590 --> 00:02:42,160 de novo o mesmo número de guisados como do lado esquerdo. 43 00:02:42,160 --> 00:02:45,680 E por iso é exactamente o mesmo loop for como antes aquí. 44 00:02:45,680 --> 00:02:49,445 Por último, cómpre crear unha nova liña na Para pasar á seguinte liña de 45 00:02:49,445 --> 00:02:51,690 a pirámide e continuar a impresión. 46 00:02:51,690 --> 00:02:53,010 E é iso. 47 00:02:53,010 --> 00:02:54,860 O meu nome é Rob e iso foi Mario. 48 00:02:54,860 --> 00:03:01,718