[CHWARAE CERDDORIAETH] ROB BOWDEN: Mae'n LandLine fi, Rob. Gadewch i ni gerdded drwy'r sut i weithredu Mario. Felly, y peth cyntaf mae angen i ni ei wneud yw annog y defnyddiwr ar gyfer y mewnbwn. Mae angen i ni ofyn iddynt sut yn union y Dylai tal y pyramid fod. Felly dyma, rydym yn gweld ein bod yn ei wneud uchder = GetInt. Mae A chofiwch bod y swyddogaeth GetInt yn cael ei weithredu yn y CS50 llyfrgell, felly i fyny top, mae angen i ni cofiwch # yn cynnwys cs50.h. Felly, pam mae gennym y lapio mewn dolen do-tra? Wel, mae angen i ni hefyd gofio bod cyfraniad y defnyddiwr wedi i fod yn ddilys. Beth yw mewnbwn annilys? Wel fanyleb pset dweud yn benodol bod uchder llai na 0 neu fwy na 23 yn annilys. Felly yma, rydym yn gweld ein bod yn diffinio cysonyn o'r enw MAX_HEIGHT gyda'r gwerth o 23. Bydd y ddolen do-tra yn parhau tra uchder yn llai na 0 neu MAX_HEIGHT yn llai na uchder, sy'n golygu bod 23 yn llai na'r uchder. Felly os uchder yw 24 neu fwy, rydym yn mynd i barhau dolennu. Cofiwch fod yn ei wneud-er bod dolenni yn eithaf ddefnyddiol pryd bynnag y byddwn am gael mewnbwn defnyddwyr ac yna ddilysu, gan yn anochel bydd angen i ni ofyn i'r defnyddiwr yn leiaf unwaith ar gyfer y gwerth y maent ei eisiau. Felly, ar ôl i ni gael eu mewnbwn, rydym yn bellach yn gallu adeiladu y pyramid. Un o driciau ar y broblem hon a osodwyd yn bod yn rhaid inni ddechrau ar frig y pyramid. Ni allwch printf waelod y pyramid ac yna adeiladu eich ffordd i fyny. Felly, gadewch i ni edrych ar yr enghraifft gan y fanyleb pset. Rydym yn gweld yma, pan fyddwn yn mynd i mewn i uchder o 8, waelod y pyramid printiau naw hashes. Un i fyny lefel o'r brintiau un lle ac wyth hashes. Un i fyny lefel o hynny yw dau le a saith hashes, yr holl ffordd nes i ni cyrraedd y ben y pyramid, sy'n wyth lefel i fyny, sy'n argraffu saith mannau a dau hashes. Felly cofiwch fod yn rhaid i gwneud lefel uchaf hwn yn gyntaf. Yma rydym yn bwysleisio'r o'r lefel uchaf, rhes 8, gan barhau hyd nes y rhes yn cyrraedd 0. Felly, faint o leoedd oedd ei angen arnom i argraffu yn y rhes uchaf? Rydym hargraffu saith lle a dau hashes. Felly, mae nifer y llefydd yr ydym ei eisiau yw y rhes a oedd ar minws 1. Os yw'r rhes uchaf yw 8, 8 minws 1 yn rhoi saith lle i ni. Yna, mae gennym dolen a fydd yn argraffu allan bob un lle ar y tro. Felly, pan fydd mannau yw 7, dolen hwn saith gwaith, argraffu saith o lefydd unigol. Felly, yn awr mae angen i ni argraffu hashes hyn ar ddiwedd y pyramid. Felly dyma, mae angen i ni gyfrifo nifer y hashes. Rydym yn gweld ein bod yn ei wneud uchder rhes minws a 2. Felly sut y gwnaethom yn cael hynny? Cofiwch fod y frig y pyramid yn rhes 8, ac mae'r uchder yw 8. Ac rydym yn dal i hargraffu dau hashes. Felly, ar y lleiaf, 8 minws 8 plws 2 yn rhoi yr ateb cywir i ni. Ac yna ystyried y gwaelod y pyramid, rhes 1. Bydd rhes minws Uchder rhoi i ni 7, a Yna, ynghyd â 2 yn rhoi naw hashes i ni, sef yr union y nifer o hashes ein bod yn argraffu. Felly, mae hyn yw'r fformiwla yr ydym am ei defnyddio i gyfrifo nifer hashes ym mhob rhes. Gan ddefnyddio y rhif hwnnw, byddwn wedyn gael un arall ar gyfer dolen, yn debyg iawn i'r ar gyfer ddolen a ddefnyddiwyd gennym ar gyfer y mannau agored, bod ailadrodd nifer o weithiau hashes argraffu hash unigol bob tro. Ar y rhes uchaf, bydd hynny'n argraffu dau hashes. Ar y rhes gwaelod, bydd hynny'n argraffu naw hashes. A bydd pob rhes arall argraffu pob nifer y hashes yn y canol. Ac yna ar y diwedd un, mae angen i ni argraffwch ein llinell newydd i fynd i'r nesaf rwyfo yn y pyramid. Yn olaf, mae angen i argraffu'r llinell newydd ar ddiwedd y rhes er mwyn parhau i'r nesaf res y pyramid. Ac ar ddiwedd ein rhaglen, mae gennym y ffurflen 0. Yn unol â'r fanyleb pset, y ffurflen 0 nid yw'n gwbl angenrheidiol. Ond mae'n ddim yn arwyddo y prif yn cael ei wneud. Fy enw i yw Rob, ac roedd hyn yn Mario. [CHWARAE CERDDORIAETH]