ZAMYLA CHAN: Mae'n-fi, Zamyla. Heddiw, rydym yn mynd i weithredu Mario, lle rydym yn tynnu Mario pyramid llawn iddo neidio dros. Gadewch i dorri i lawr y is-dasgau ar gyfer y broblem hon. Yn gyntaf, rydym yn awyddus i annog y defnyddiwr i uchder y pyramid. Ac yna rydym am wneud yn siŵr bod y mewnbwn yn ddilys. Ac yna rydym yn mynd i am dynnu y pyramid. Felly gadewch i ni siarad am anogaeth a dilysu mewnbwn defnyddwyr. Gallai fod edrych yn debyg hwn, dolen do-tra bod annog y defnyddiwr i cyfanrif ac wedyn dim ond ailddarllediadau os mai cyfanrif yn annilys. Felly beth ddylai amod hwn fod? Ar gyfer hyn, gadewch i ni fynd yn ôl i'r fanyleb. Wel, mae'r spec yn dweud wrthym fod unrhyw dilys uchder yn mynd i fod rhwng 0 a 23, gynhwysol. Felly, yna mae hynny'n golygu bod unrhyw annilys uchder yn mynd i fod yn llai na 0 neu fwy na 23. Felly nawr bod gennym wybodaeth hon, gadewch i ni ddylunio ein cyflwr. Ond mae angen i ni fod yn ofalus, oherwydd erbyn hyn mae gennym dau Booleans yr ydym am eu gwerthuso. Yma Rwyf wedi amod eich gyda bwrdd gwirionedd. Mae hyn yn ein galluogi i gymryd dwy Booleans, Boolean un a dau. A gallwn werthuso naill ai bool1 a bool2 neu bool1 neu bool2. Felly beth yw'r gwahaniaeth rhwng ac a neu? Wel, bool1 a bool2 bydd gwerthuso i wir os a dim ond os yw'r ddau Booleans yn wir, tra bod y neu weithrediad yn wir os naill ai un o'r y Booleans neu'r ddau yn wir. Felly, gyda hyn mewn golwg, weld a allwch chi chyfrif i maes yr hyn y mae'r cyflwr priodol ar gyfer eich dolen do-tra gyfer n annilys yn mynd i fod. Gyda hynny, rydym wedi ysgogi a ddilyswyd y defnyddiwr ar gyfer uchder y pyramid eu bod am. Felly, erbyn hyn, mae i fyny i ni i dynnu y pyramid. Mae'r pyramid llawn ar gyfer hyn Bydd problem yn edrych ychydig bach fel hyn, lle mae gennym pyramid chwith, rhywfaint o fwlch, ac yna pyramid i'r dde. Felly gadewch i ni dorri i lawr ychydig. Os byddaf yn mynd i fy golygydd testun, yma rwyf i wedi tynnu ni pyramid halinio-chwith. Ond ni fydd yn ei wneud. Yr hyn yr ydym eisiau ei wneud yw ein bod am i creu pyramid dde-alinio gyntaf. Felly, i wneud hyn, i ddim ond gwthio fy hashes draw i ochr, Im 'jyst yn mynd i roi rhai cymeriadau yn y canol, dim ond dotiau hyn. Yna mi i'n mynd i roi dau ar y llinell nesaf, ac un ar y rheilffordd honno. Ac felly dyma mae gen i dde-alinio pyramid. Ar ôl hynny, dw i'n mynd i ewch yn ôl i'r rhes uchaf a'i roi yn y bwlch, a oedd yn yw, fesul y spec, dau le. Yna mi i'n mynd i lenwi'r ochr arall y pyramid. Rydw i'n mynd i fynd i'r ail reng, ysgrifennwch dau le ar gyfer y bwlch ac yna dau hashes. Yn ôl at y drydedd res, dau le dros y bwlch a thri hashes. Ac ar y diwedd, dau le dros y bwlch a phedwar hashes. Felly dyna beth yn llawn Bydd pyramid edrych. Wrth gwrs, nid ydym am dotiau hyn yn y ffordd. Felly, rydym yn mynd i gymryd lle hyn dotiau drwy roi rhai llefydd yn. Un, dau, tri ar y llinell gyntaf. Un, dau ar yr ail. Ac un ar y drydedd linell. Felly mae hyn yn beth y byddem yn ei wneud os ydym eisiau i ddim ond gwneud pyramid llawn, yn dweud, yn ein golygydd testun. Felly, gadewch i ni gymryd hyn, deall y patrymau, ac yn ei addasu drosodd i ryw pseudocode. Ar gyfer pob rhes o'r pyramid, rydym am i argraffu'r pyramid chwith ac yna y bwlch ac yna y pyramid cywir. Ar gyfer y pyramid chwith, rydym yn argraffu y swm gofynnol o fannau, wedi'i ddilyn gan y hashes. Yna rydym yn argraffu'r bwlch, a oedd yn yn unig yw dau le bob tro. Ac yn y pyramid cywir, rydym yn argraffu y nifer angenrheidiol o hashes. Ar gyfer yr ail reng, rydym yn cynnal yr un fath yn union broses. Rydym yn argraffu y gofod ar gyfer y chwith pyramid, y swm gofynnol o hashes, mae'r bwlch, dau le, a yna bydd y hashes gyfer y pyramid cywir. Gadewch i ni fynd i'r afael â'r patrwm gyfer y pyramid chwith. Os oedd gen i, ar gyfer dibenion yr enghraifft hon, mae uchder o wyth y gofynnodd y defnyddiwr, yna fy rhes gyntaf Byddai'n rhaid i un hash a saith o leoedd. Byddai fy ail reng gael dau hashes, chwech o leoedd. Trydydd res, tri hashes, pum lle. Mae'n debyg y gallwch wneud hyn eich hun ar gyfer uchder o wyth a phenderfynu ar gyfer pob rhes faint o hashes a faint o leoedd sydd ei angen arnoch. Ond yr hyn yr ydym am ei wneud yw yr ydym am ei dynnu. Felly, yr wyf yn gofyn i chi am unrhyw res nfed, faint o hashes a faint o leoedd sydd ei angen arnom? Yn awr, wrth i chi benderfynu ar y patrwm ar gyfer faint o hashes a faint o leoedd sydd ei angen arnoch ar gyfer unrhyw res nfed am uchder a roddir, cofiwch fod yn ofalus o sut yr ydych chi'n mynegeio. Beth allaf i ei olygu wrth hyn yw bod yn bob dydd bywyd y rhan fwyaf ohonom yn dechrau cyfrif fesul un. Felly, byddai y rhes gyntaf yn rhif un. A byddai'r ail reng yn rhes Rhif dau, yn y blaen ac yn y blaen. Ond mewn cyfrifiadureg a CS50, yr ydym yn sero-mynegeio. Felly rydym mewn gwirionedd yn dechrau cyfrif ar sero. Felly byddai y rhes gyntaf fod yn rhif rhes sero. A'r ail res fyddai rhes rhif un. Felly, os oedd gennyf uchder o wyth ar gyfer fy pyramid, yna bydd y gwerth diwethaf n Byddai mewn gwirionedd fod yn saith ac nid wyth. Felly byddwch yn ofalus am hyn. A bod yn ymwybodol pan fyddwch yn penderfynu eich patrwm a yw eich sero-mynegeio neu un-fynegeio IAWN. Felly nawr bod gennym y patrwm ar gyfer y pyramid chwith, mae angen i ni benderfynu patrwm dros y bwlch. Yn ffodus, mae hyn yn hawdd iawn. 'I' jyst bob amser yn ddau le. Felly, yn awr rydym yn mynd ymlaen i'r patrwm cywir. Bydd y rhes gyntaf gael un hash. Yr ail reng, dau. Trydydd res, tri. Y blaen ac yn y blaen. Felly eto, penderfynu ar gyfer unrhyw haniaethol n ac unrhyw uchder faint o hashes a faint o leoedd Dylai pob rhes gael. IAWN. Felly, rydym yn gwybod bod ar gyfer pob rhes ni Mae angen cynnal rhyw broses. Sut rydym yn gwneud hynny? Wel, rydym yn defnyddio'r gyfer lluniad ddolen, cynnwys o initialization, cyflwr, a'r wybodaeth ddiweddaraf. Ar gyfer y gall dolenni gael eu defnyddio i ailadrodd prosesau. Felly dweud fy mod am iddo ddweud helo, byd 50 o weithiau, yna fy gyfer dolen Byddai yn edrych rhywbeth fel hyn, lle mae Rwy'n ymgychwyn fy amrywiol i sero. Yr amod yw bod fi yn llai na 50. Ac yna y diweddariad yw ei fod yn cynyddrannau gan un bob tro. Felly beth fyddai hyn yn ei wneud fyddai argraffu helo, 50 gwaith y byd yn olynol. Yn awr, yn dweud fy mod i eisiau ailadrodd dros y uchder y pyramid. Yna yn lle codio galed rhywfaint o werth yn y cyflwr, Fi jyst yn defnyddio'r uchder amrywiol. Felly, beth fydd hyn yn ei wneud yw ailadrodd dros y uchder pob rhes. A gallaf wneud rhywbeth y tu mewn o gorff y ddolen. Beth ydym ni am ei wneud y tu mewn i'r corff y ddolen? Wel, wrth i ni nodwyd o'r blaen, rydym am argraffu'r mannau a'r hashes gyfer y pyramid chwith ac yna argraffu dau le ac yna argraffwch y hashes. Felly rydym eisoes wedi cyfrifedig hynny allan. Felly, gallwn ddechrau llenwi'r yn ein rhaglen llawer mwy. Yma gen i allanol ar gyfer dolen sy'n ailadrodd dros bob rhes yn y pyramid. Ac y tu mewn corff hwnnw Rydw i'n mynd i argraffu mannau dro ar ôl tro, hashes dro ar ôl tro, ac yna y bwlch, ac yna hashes gyfer y pyramid cywir, ac yna, yn olaf, mae newydd llinell i ddechrau ar y rhes nesaf. Gyda hynny, rydym wedi prompted y defnyddiwr ar gyfer mewnbwn. Rydym wedi gwneud yn siwr ei fod yn ddilys. Ac yna rydym wedi tynnu y pyramid. Felly gall Mario yn llwyddiannus dringo'r pyramid. Fy enw i yw Zamyla. Ac mae hyn yn CS50.