1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> ROB BOWDEN: Hej, jeg er Rob, og lad os hoppe ind i hacker udgave af Mario. 3 00:00:18,290 --> 00:00:21,760 Så første ting, vi skal gøre, er får højden fra brugeren. 4 00:00:21,760 --> 00:00:26,290 Her beder vi dem for en ikke-negativt heltal mindre end 24 og 5 00:00:26,290 --> 00:00:31,710 vi bruger det CS50 GetInt funktionen at få fat i, at heltal fra brugeren. 6 00:00:31,710 --> 00:00:35,260 Vi ser, vi er inde i en gør-while-løkke der vil fortsætte looping så længe 7 00:00:35,260 --> 00:00:38,400 højde er større end 23 eller mindre end 0. 8 00:00:38,400 --> 00:00:42,850 Og så vil vi fortsætte, indtil brugeren faktisk giver os, hvad vi ønsker. 9 00:00:42,850 --> 00:00:46,960 >> Når vi har den højde, vi kommer til den vigtigste for-løkke af vores program. 10 00:00:46,960 --> 00:00:49,510 Så lad os først se på et eksempel fra PSET spec. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 Vi ser i dette eksempel, at når vi indtaste en højde på 4, den nederste række 13 00:00:56,940 --> 00:01:01,520 først udskriver fire hashes, to rum, og fire flere hashes. 14 00:01:01,520 --> 00:01:06,280 >> Så en række over, der udskriver en space tre hashes, to pladser til 15 00:01:06,280 --> 00:01:09,690 adskille pyramiderne, og derefter yderligere tre hashes. 16 00:01:09,690 --> 00:01:13,460 Og ovenstående, to rum, to hashes, to rum, to hashes. 17 00:01:13,460 --> 00:01:18,090 Og endelig tre rum en hash, to rum én hash. 18 00:01:18,090 --> 00:01:20,980 Så bør du begynde at lægge mærke til mønsteret her. 19 00:01:20,980 --> 00:01:22,545 >> Lad os se på koden for, hvordan vi kommer til at gøre det. 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 Vi ser her, at vi iteration i alle rækker af pyramiden. 22 00:01:28,840 --> 00:01:31,720 Først skal vi ønsker at beregne antallet af pladser. 23 00:01:31,720 --> 00:01:34,690 Og husk, at vi er nødt til at starte på toppen af ​​pyramiden og arbejde vores 24 00:01:34,690 --> 00:01:37,790 vej ned, da vi ikke kan udskrive bunden derefter en række op og 25 00:01:37,790 --> 00:01:39,140 derefter en række op. 26 00:01:39,140 --> 00:01:44,030 Så i toppen af ​​pyramiden, varsel at antallet af pladser er lig med 27 00:01:44,030 --> 00:01:45,720 højde minus 1. 28 00:01:45,720 --> 00:01:50,120 Vi kommer til at udskrive tre pladser, så en hash og derefter to pladser til 29 00:01:50,120 --> 00:01:53,350 adskilt og anden hash. 30 00:01:53,350 --> 00:01:57,320 >> Så rum er lig med højde minus række. 31 00:01:57,320 --> 00:02:03,180 Hvis rækken er 1, og vores højde er 4, der vil give os 3 rum, som vi ønsker. 32 00:02:03,180 --> 00:02:06,900 Så er dette for loop bare prints at antallet af pladser. 33 00:02:06,900 --> 00:02:12,630 Hvis rum er tre, så vi kommer til at skabe et fælles rum tre gange. 34 00:02:12,630 --> 00:02:18,750 >> Fortsætter, vi nu ønsker at udskrive den hashes på venstrefløjen pyramide, som er 35 00:02:18,750 --> 00:02:20,630 bare lig med rækkenummeret. 36 00:02:20,630 --> 00:02:23,250 Ser tilbage her, i rækken én, vi udskriver en hash. 37 00:02:23,250 --> 00:02:25,960 I række to printe vi to, i række tre vi udskriver tre. 38 00:02:25,960 --> 00:02:30,440 Så vi simpelthen loop række gange trykning hash symbol. 39 00:02:30,440 --> 00:02:34,830 Så for alle rækker i pyramiden, vi udskrive præcis to mellemrum til at adskille 40 00:02:34,830 --> 00:02:36,360 disse pyramider. 41 00:02:36,360 --> 00:02:39,590 >> Og endelig ønsker vi at udskrive højre side af pyramiden, som er 42 00:02:39,590 --> 00:02:42,160 igen det samme antal hashes som venstre side. 43 00:02:42,160 --> 00:02:45,680 Og så det er nøjagtig de samme for loop som ovenfor her. 44 00:02:45,680 --> 00:02:49,445 Endelig er vi nødt til at oprette en ny linje i For at gå videre til den næste række af 45 00:02:49,445 --> 00:02:51,690 pyramiden og fortsætte udskrivningen. 46 00:02:51,690 --> 00:02:53,010 Og det er det. 47 00:02:53,010 --> 00:02:54,860 Mit navn er Rob og dette var Mario. 48 00:02:54,860 --> 00:03:01,718