1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> ROB BOWDEN: Hi, Im 'Rob, a gadewch i ni neidio i mewn i'r rhifyn haciwr o Mario. 3 00:00:18,290 --> 00:00:21,760 Beth felly yn gyntaf mae angen i ni ei wneud yw cael y uchder gan y defnyddiwr. 4 00:00:21,760 --> 00:00:26,290 Yma rydym yn gofyn iddynt am cyfanrif heb fod yn negyddol llai na 24 a 5 00:00:26,290 --> 00:00:31,710 rydym yn defnyddio swyddogaeth CS50 GetInt i fanteisio ar y cyfanrif gan y defnyddiwr. 6 00:00:31,710 --> 00:00:35,260 Rydym yn gweld ein bod tu mewn dolen do-tra a fydd yn parhau dolennu cyhyd ag y 7 00:00:35,260 --> 00:00:38,400 uchder yn fwy na 23 neu lai na 0. 8 00:00:38,400 --> 00:00:42,850 Ac felly byddwn yn parhau nes bod y defnyddiwr mewn gwirionedd yn rhoi i ni yr hyn yr ydym ei eisiau. 9 00:00:42,850 --> 00:00:46,960 >> Unwaith y byddwn wedi bod uchder, rydym yn cael bennaf ar gyfer ddolen ein rhaglen. 10 00:00:46,960 --> 00:00:49,510 Felly, gadewch i ni edrych yn gyntaf ar enghraifft gan y fanyleb pset. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 Rydym yn gweld yn yr enghraifft hon, pan fyddwn yn fynd i mewn i uchder o 4, y rhes gwaelod 13 00:00:56,940 --> 00:01:01,520 gyntaf yn argraffu pedwar hashes, dau le, a phedwar yn fwy hashes. 14 00:01:01,520 --> 00:01:06,280 >> Yna, un rhes uchod y printiau un gofod tri hashes, dau le i 15 00:01:06,280 --> 00:01:09,690 wahanu'r pyramidiau, ac Yna, tri yn fwy hashes. 16 00:01:09,690 --> 00:01:13,460 Ac yn fwy na hynny, dau le, dau hashes, dau le, dau hashes. 17 00:01:13,460 --> 00:01:18,090 Ac yn olaf, tri lle un hash, dau le un hash. 18 00:01:18,090 --> 00:01:20,980 Felly, dylech ddechrau i hysbysiad y patrwm yma. 19 00:01:20,980 --> 00:01:22,545 >> Gadewch i ni edrych ar y cod ar gyfer sut y rydym yn mynd i wneud hynny. 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 Rydym yn gweld yma ein bod yn bwysleisio'r dros yr holl rhesi o'r pyramid. 22 00:01:28,840 --> 00:01:31,720 Yn gyntaf rydym am i gyfrifo y nifer o lefydd. 23 00:01:31,720 --> 00:01:34,690 A chofiwch ein bod yn rhaid i ni ddechrau ar frig y pyramid ac yn gweithio ein 24 00:01:34,690 --> 00:01:37,790 ffordd i lawr gan na allwn argraffu'r gwaelod yna un rhes i fyny ac 25 00:01:37,790 --> 00:01:39,140 Yna, un rhes i fyny. 26 00:01:39,140 --> 00:01:44,030 Felly, ar frig y pyramid, rhybudd bod nifer y lleoedd yn hafal i 27 00:01:44,030 --> 00:01:45,720 uchder minws 1. 28 00:01:45,720 --> 00:01:50,120 Rydym yn mynd i argraffu tri lle, yna un hash ac yna dau le i 29 00:01:50,120 --> 00:01:53,350 ar wahân a hash arall. 30 00:01:53,350 --> 00:01:57,320 >> Felly lleoedd yn hafal i rhes minws uchder. 31 00:01:57,320 --> 00:02:03,180 Os yw'r rhes yn 1 ac mae ein uchder yw 4, bydd hynny'n rhoi 3 lle i ni, gan ein bod eisiau. 32 00:02:03,180 --> 00:02:06,900 Yna mae hyn ar gyfer dolen yn unig printiau bod nifer o fannau. 33 00:02:06,900 --> 00:02:12,630 Os mannau yw tri, yna rydym yn mynd i greu gofod sengl dair gwaith. 34 00:02:12,630 --> 00:02:18,750 >> Parhaus, yn awr rydym yn awyddus i argraffu'r hashes y pyramid chwith, sydd yn 35 00:02:18,750 --> 00:02:20,630 dim ond hafal i nifer rhes. 36 00:02:20,630 --> 00:02:23,250 Wrth edrych yn ôl yma, yn rhes un, rydym yn argraffu un hash. 37 00:02:23,250 --> 00:02:25,960 Mewn rhes dau rydym yn argraffu dau, yn rhes tri rydym yn argraffu tri. 38 00:02:25,960 --> 00:02:30,440 Amseroedd olynol, felly rydym yn syml dolen symbol hash argraffu. 39 00:02:30,440 --> 00:02:34,830 Yna, ar gyfer pob rhes y pyramid, rydym yn argraffu yn union dau le i wahanu 40 00:02:34,830 --> 00:02:36,360 pyramidiau hynny. 41 00:02:36,360 --> 00:02:39,590 >> Ac yn olaf, rydym am i argraffu'r hawl ochr y pyramid, sy'n 42 00:02:39,590 --> 00:02:42,160 eto yr un nifer o hashes fel yr ochr chwith. 43 00:02:42,160 --> 00:02:45,680 Ac felly mae'n yr un fath yn union ar gyfer ddolen fel uchod yma. 44 00:02:45,680 --> 00:02:49,445 Yn olaf, mae angen i greu llinell newydd yn er mwyn symud ymlaen i'r rhes nesaf 45 00:02:49,445 --> 00:02:51,690 y pyramid ac yn parhau argraffu. 46 00:02:51,690 --> 00:02:53,010 A dyna ni. 47 00:02:53,010 --> 00:02:54,860 Fy enw i yw Rob ac roedd hyn yn Mario. 48 00:02:54,860 --> 00:03:01,718