1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> ROB BOWDEN: Hej, jag är Rob, och låt oss hoppa in i hacker upplagan av Mario. 3 00:00:18,290 --> 00:00:21,760 Så första vi behöver göra är få höjden från användaren. 4 00:00:21,760 --> 00:00:26,290 Här vi ber dem om en icke-negativt heltal mindre än 24 och 5 00:00:26,290 --> 00:00:31,710 vi använder CS50 getInt funktionen att ta det heltal från användaren. 6 00:00:31,710 --> 00:00:35,260 Vi ser att vi är inne i en gör-while-slinga som kommer att fortsätta looping så länge 7 00:00:35,260 --> 00:00:38,400 höjd är större än 23 eller mindre än 0. 8 00:00:38,400 --> 00:00:42,850 Och så ska vi fortsätta tills användaren faktiskt ger oss vad vi vill ha. 9 00:00:42,850 --> 00:00:46,960 >> När vi har den höjden, vi får till det viktigaste för slinga av vårt program. 10 00:00:46,960 --> 00:00:49,510 Så låt oss först titta på ett exempel från pset spec. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 Vi ser i detta exempel att när vi anger en höjd av 4, den nedre raden 13 00:00:56,940 --> 00:01:01,520 först skriver fyra hashar, två utrymmen, och fyra fler hashar. 14 00:01:01,520 --> 00:01:06,280 >> Sedan en rad ovanför som skriver ut en utrymme tre hash, två platser till 15 00:01:06,280 --> 00:01:09,690 separera pyramiderna, och sedan tre mer hashar. 16 00:01:09,690 --> 00:01:13,460 Och över det, två utrymmen, två hashar, två platser, två hashar. 17 00:01:13,460 --> 00:01:18,090 Och slutligen, tre platser man hash, två utrymmen en hash. 18 00:01:18,090 --> 00:01:20,980 Så du bör börja märka mönstret här. 19 00:01:20,980 --> 00:01:22,545 >> Låt oss titta på koden för hur vi kommer att göra det. 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 Vi ser här att vi iteration över alla rader av pyramiden. 22 00:01:28,840 --> 00:01:31,720 Först vill vi beräkna antalet platser. 23 00:01:31,720 --> 00:01:34,690 Och kom ihåg att vi måste börja med toppen av pyramiden och arbeta oss 24 00:01:34,690 --> 00:01:37,790 vägen ner eftersom vi inte kan skriva ut botten sedan en rad upp och 25 00:01:37,790 --> 00:01:39,140 sedan en rad upp. 26 00:01:39,140 --> 00:01:44,030 Så vid toppen av pyramiden, tillkännagivande att antalet utrymmen är lika med 27 00:01:44,030 --> 00:01:45,720 höjd minus 1. 28 00:01:45,720 --> 00:01:50,120 Vi kommer att skriva ut tre platser sedan en hash och sedan två platser till 29 00:01:50,120 --> 00:01:53,350 separat och annan hash. 30 00:01:53,350 --> 00:01:57,320 >> Så utrymmen är lika med höjd minus rad. 31 00:01:57,320 --> 00:02:03,180 Om raden är en och vår höjden är 4, som ska ge oss tre platser, som vi vill ha. 32 00:02:03,180 --> 00:02:06,900 Då är detta för sling bara utskrifter det antal platser. 33 00:02:06,900 --> 00:02:12,630 Om utrymmen är tre, då vi kommer att skapa en enda plats tre gånger. 34 00:02:12,630 --> 00:02:18,750 >> Fortsätter, nu vill vi skriva ut hashar av vänster pyramid, som är 35 00:02:18,750 --> 00:02:20,630 precis lika med radnumret. 36 00:02:20,630 --> 00:02:23,250 Ser tillbaka hit, i rad en, vi skriver ut en hash. 37 00:02:23,250 --> 00:02:25,960 I rad två skriver ut vi två, i Rad tre vi ut tre. 38 00:02:25,960 --> 00:02:30,440 Så vi helt enkelt slinga rad gånger utskrift hash symbol. 39 00:02:30,440 --> 00:02:34,830 Sedan för alla rader av pyramiden, vi skriva ut exakt två mellanslag för att åtskilja 40 00:02:34,830 --> 00:02:36,360 dessa pyramider. 41 00:02:36,360 --> 00:02:39,590 >> Och slutligen, vi vill skriva ut rätt sida av pyramiden, som är 42 00:02:39,590 --> 00:02:42,160 igen samma antal hashar som vänster sida. 43 00:02:42,160 --> 00:02:45,680 Och så det är exakt samma för slinga som ovan här. 44 00:02:45,680 --> 00:02:49,445 Slutligen måste vi skapa en ny rad i För att gå vidare till nästa rad 45 00:02:49,445 --> 00:02:51,690 pyramiden och fortsätta skriva ut. 46 00:02:51,690 --> 00:02:53,010 Och det är det. 47 00:02:53,010 --> 00:02:54,860 Mitt namn är Rob och detta var Mario. 48 00:02:54,860 --> 00:03:01,718