1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> Rob BOWDEN: Hi, Ako Rob, at ng tumalon hayaan sa Hacker edisyon ng Mario. 3 00:00:18,290 --> 00:00:21,760 Kaya unang bagay na kailangan naming gawin ay makuha ang taas mula sa user. 4 00:00:21,760 --> 00:00:26,290 Narito hinihiling namin sa kanila para sa isang hindi-negatibong integer mas mababa sa 24 at 5 00:00:26,290 --> 00:00:31,710 ginagamit namin ang CS50 GetInt function na upang grab na integer mula sa user. 6 00:00:31,710 --> 00:00:35,260 Nakakakita kami ng hindi sa loob ng isang do-loop habang namin na ay patuloy looping hangga't 7 00:00:35,260 --> 00:00:38,400 taas ay mas malaki sa 23 o mas mababa kaysa sa 0. 8 00:00:38,400 --> 00:00:42,850 At kaya ipagpapatuloy namin ang hanggang user talagang nagbibigay sa amin kung ano ang gusto namin. 9 00:00:42,850 --> 00:00:46,960 >> Sa sandaling mayroon kaming na taas, makuha namin upang ang pangunahing para sa loop ng aming programa. 10 00:00:46,960 --> 00:00:49,510 Kaya sabihin unang pagtingin sa isang halimbawa mula sa pset spec. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 Nakakakita kami ng sa halimbawang ito na kung kailan namin ipasok ang isang taas ng 4, hilera sa ibaba 13 00:00:56,940 --> 00:01:01,520 unang mga Kopya apat hashes, dalawang mga puwang, at apat na higit pang hashes. 14 00:01:01,520 --> 00:01:06,280 >> Pagkatapos ng isang hilera sa itaas na mga Kopya isa espasyo tatlong hashes, dalawang mga puwang sa 15 00:01:06,280 --> 00:01:09,690 paghiwalayin ang mga pyramids, at pagkatapos ng tatlong higit pang hashes. 16 00:01:09,690 --> 00:01:13,460 At sa itaas na, dalawang mga puwang, dalawang hashes, dalawang mga puwang, dalawang hashes. 17 00:01:13,460 --> 00:01:18,090 At sa wakas, tatlong mga puwang isa hash, dalawang mga puwang isa hash. 18 00:01:18,090 --> 00:01:20,980 Kaya dapat mong simulan upang mapansin ang pattern dito. 19 00:01:20,980 --> 00:01:22,545 >> Tingnan natin ang code para sa kung paano Hayaan kami ay pagpunta upang gawin iyon. 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 Nakakakita kami dito na aming iterating sa lahat ng mga hilera ng mga pyramid. 22 00:01:28,840 --> 00:01:31,720 Una gusto naming kalkulahin ang bilang ng mga puwang. 23 00:01:31,720 --> 00:01:34,690 At tandaan na mayroon kami upang simulan sa sa tuktok ng pyramid at gumagana ang aming mga 24 00:01:34,690 --> 00:01:37,790 paraan pababa dahil hindi namin maaaring i-print ang ibaba pagkatapos ay isang hilera pataas at 25 00:01:37,790 --> 00:01:39,140 pagkatapos ay isang hilera up. 26 00:01:39,140 --> 00:01:44,030 Kaya sa tuktok ng pyramid, na notice na ang bilang ng mga puwang ay katumbas ng 27 00:01:44,030 --> 00:01:45,720 taas minus 1. 28 00:01:45,720 --> 00:01:50,120 Kami ay pagpunta sa i-print ang tatlong mga puwang pagkatapos isa hash at pagkatapos ay dalawang mga puwang sa 29 00:01:50,120 --> 00:01:53,350 hiwalay at isa pang hash. 30 00:01:53,350 --> 00:01:57,320 >> Kaya mga puwang ay katumbas ng taas minus hilera. 31 00:01:57,320 --> 00:02:03,180 Kung ang mga hilera ay 1 at ang aming taas ay 4, na kailangan bigyan kami ng 3 na mga puwang, tulad ng gusto namin. 32 00:02:03,180 --> 00:02:06,900 Pagkatapos na ito para sa loop lamang ng mga kopya na bilang ng mga puwang. 33 00:02:06,900 --> 00:02:12,630 Kung ang mga puwang ay tatlong, pagkatapos kami ay pagpunta sa lumikha ng isang solong puwang ng tatlong beses. 34 00:02:12,630 --> 00:02:18,750 >> Ang pagpapatuloy, ngayon gusto naming i-print ang hashes ng kaliwang pyramid, na siyang 35 00:02:18,750 --> 00:02:20,630 pantay lang sa bilang ng hilera. 36 00:02:20,630 --> 00:02:23,250 Naghahanap bumalik dito, sa hilera isa, i-print namin ang isa hash. 37 00:02:23,250 --> 00:02:25,960 Sa hilera ng dalawang-print kami ng dalawang, sa hilera tatlong-print namin ang tatlong. 38 00:02:25,960 --> 00:02:30,440 Beses hilera Kaya loop namin lamang pag-print simbolo ng hash. 39 00:02:30,440 --> 00:02:34,830 Pagkatapos ay para sa lahat ng mga hilera ng mga pyramid, namin i-print ang eksaktong dalawang mga puwang upang paghiwalayin 40 00:02:34,830 --> 00:02:36,360 mga pyramids. 41 00:02:36,360 --> 00:02:39,590 >> At sa wakas, gusto naming i-print ang karapatan gilid ng pyramid, na siyang 42 00:02:39,590 --> 00:02:42,160 muli ang parehong bilang ng mga hashes bilang sa kaliwang bahagi. 43 00:02:42,160 --> 00:02:45,680 At kaya ang parehong eksaktong para sa loop na tulad ng nasa itaas dito. 44 00:02:45,680 --> 00:02:49,445 Panghuli, kailangan namin upang lumikha ng isang bagong linya sa Upang lumipat sa susunod na hilera ng 45 00:02:49,445 --> 00:02:51,690 ang mga pyramid at magpatuloy sa pag-print. 46 00:02:51,690 --> 00:02:53,010 At na ito. 47 00:02:53,010 --> 00:02:54,860 Ang pangalan ko ay Rob at ito ay Mario. 48 00:02:54,860 --> 00:03:01,718