1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> ROB BOWDEN: Hei, jeg er Rob, og la oss hoppe inn i hacker-utgaven av Mario. 3 00:00:18,290 --> 00:00:21,760 Så det første vi må gjøre er få høyden fra brukeren. 4 00:00:21,760 --> 00:00:26,290 Her ber vi dem for en ikke-negative heltall mindre enn 24 og 5 00:00:26,290 --> 00:00:31,710 vi bruker den CS50 GetInt funksjon å hente den heltall fra brukeren. 6 00:00:31,710 --> 00:00:35,260 Vi ser vi er inne i en do-while-loop som vil fortsette sløyfe så lenge 7 00:00:35,260 --> 00:00:38,400 høyde er større enn 23 eller mindre enn 0. 8 00:00:38,400 --> 00:00:42,850 Og så vil vi fortsette inntil brukeren faktisk gir oss det vi ønsker. 9 00:00:42,850 --> 00:00:46,960 >> Når vi har den høyden, får vi til det viktigste for løkke av vårt program. 10 00:00:46,960 --> 00:00:49,510 Så la oss først se på et eksempel fra PSett spec. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 Vi ser i dette eksemplet at når vi angi en høyde på fire, den nederste raden 13 00:00:56,940 --> 00:01:01,520 først skriver ut fire hashes, to områder, og fire mer hashes. 14 00:01:01,520 --> 00:01:06,280 >> Så en rad over som skriver ut en plass tre hashes, to plasser til 15 00:01:06,280 --> 00:01:09,690 skille pyramidene, og deretter tre mer hashes. 16 00:01:09,690 --> 00:01:13,460 Og over det, to plasser, to hashes, to plasser, to hashes. 17 00:01:13,460 --> 00:01:18,090 Og til slutt, tre plasser en hasj, to plasser en hash. 18 00:01:18,090 --> 00:01:20,980 Så du bør begynne å legge merke til mønsteret her. 19 00:01:20,980 --> 00:01:22,545 >> La oss se på koden for hvordan vi kommer til å gjø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 gjentar fremfor alle radene i pyramiden. 22 00:01:28,840 --> 00:01:31,720 Først ønsker vi å beregne antall mellomrom. 23 00:01:31,720 --> 00:01:34,690 Og husk at vi må starte på toppen av pyramiden og jobber oss 24 00:01:34,690 --> 00:01:37,790 veien ned siden vi ikke kan skrive ut bunnen deretter én rad opp og 25 00:01:37,790 --> 00:01:39,140 deretter én rad opp. 26 00:01:39,140 --> 00:01:44,030 Så på toppen av pyramiden, varsel at antall plasser er lik 27 00:01:44,030 --> 00:01:45,720 høyde minus en. 28 00:01:45,720 --> 00:01:50,120 Vi kommer til å skrive ut tre plasser deretter en hash og deretter to plasser til 29 00:01:50,120 --> 00:01:53,350 separat og en annen hash. 30 00:01:53,350 --> 00:01:57,320 >> Så mellomrom er lik høyde minus rad. 31 00:01:57,320 --> 00:02:03,180 Hvis raden er en og vår høyde er 4, som vil gi oss tre områder, som vi ønsker. 32 00:02:03,180 --> 00:02:06,900 Da er dette for løkke bare utskrifter at antall plasser. 33 00:02:06,900 --> 00:02:12,630 Hvis plasser er tre, så vi kommer til å skape en eneste plass tre ganger. 34 00:02:12,630 --> 00:02:18,750 >> Fortsetter, nå vi ønsker å skrive ut hashverdiene venstre pyramide, som er 35 00:02:18,750 --> 00:02:20,630 bare lik radnummer. 36 00:02:20,630 --> 00:02:23,250 Ser tilbake her, i rad ett, vi skriver ut en hash. 37 00:02:23,250 --> 00:02:25,960 I rad to skriver vi to, i rad tre vi ut tre. 38 00:02:25,960 --> 00:02:30,440 Så vi bare sløyfe rad ganger utskrift hash symbol. 39 00:02:30,440 --> 00:02:34,830 Så for alle radene i pyramiden, vi skrive ut nøyaktig to mellomrom for å skille 40 00:02:34,830 --> 00:02:36,360 disse pyramidene. 41 00:02:36,360 --> 00:02:39,590 >> Og til slutt, vi ønsker å skrive ut riktig side av pyramiden, som ligger 42 00:02:39,590 --> 00:02:42,160 igjen samme antall hashes som venstre side. 43 00:02:42,160 --> 00:02:45,680 Og så er det de samme for loop som ovenfor her. 44 00:02:45,680 --> 00:02:49,445 Til slutt, må vi lage en ny linje i For å gå videre til neste rad med 45 00:02:49,445 --> 00:02:51,690 pyramiden og fortsette utskriften. 46 00:02:51,690 --> 00:02:53,010 Og det er det. 47 00:02:53,010 --> 00:02:54,860 Mitt navn er Rob, og dette var Mario. 48 00:02:54,860 --> 00:03:01,718