>> ROB BOWDEN: Hi.
Rwy'n Rob, ac yr wyf yn gobeithio eich gêm ar gyfer gêm o 15.
Erbyn hyn, mae pedair swyddogaeth eu hangen arnoch i weithredu yn y rhaglen hon - init,
tynnu, yn symud, ac enillodd.
Felly, gadewch i ni edrych ar init.
>> Yma, rydym yn gweld y peth cyntaf rydym yn mynd i wneud yw datgan newidyn
a elwir yn cownter.
Mae'n mynd i gael ei ymgychwyn i amser d d minws 1.
Cofiwch fod ch yw'r dimensiwn ein bwrdd.
Sut init yn mynd i'r gwaith yn ei fod yn mynd i ailadrodd dros y bwrdd cyfan
ac rydym yn mynd i ddechrau ar y chwith uchaf.
>> A gadewch i 'jyst dweud ein cael 4 o 4 bwrdd.
Felly mae'r top chwith rydym yn mynd i ddweud yw 15.
Ac yna rydym yn jyst yn mynd i gyfrif drwy'r byrddau, gan ddweud 15, 14, 13,
12, 11, 10, 9, 8, 7, 6, 5, 4, ac yn y blaen.
Felly, y chwith uchaf, rydym yn disgwyl i fod yn amser d d minws 1, sydd yn y 4 o 4
achos yn mynd i fod yn 16 llai 1, sydd yn gywir 15.
>> Ac yn awr dyma lle'r ydym yn mynd i ailadrodd dros y bwrdd cyfan.
Ac rydym yn mynd i osod pob swydd yn y bwrdd i werth presennol
ein cownter, ac yna cownter yn mynd i lleihau a, fel bod y nesaf
sefyllfa rydym yn cyrraedd yn mynd i gael cownter fod yn un yn llai na
y sefyllfa flaenorol.
Felly, rydym yn y lle cyntaf oedd 15 ac lleihau a cownter.
Felly, yna rydym yn mynd i neilltuo 14 i'r sefyllfa nesaf, cownter lleihau a,
ac rydym yn mynd i neilltuo 13, ac yn y blaen.
>> Yn olaf, mae angen i ni drin y gornel achos lle, os bydd y bwrdd yn cael hyd yn oed yn
dimensiwn, yna dim ond yn gwneud 15, 14, 13, 12, yr holl ffordd i lawr i 3, 2, 1, yn
mynd i adael i ni bwrdd unsolvable.
Ac mae'n rhaid i gyfnewid y 1 a 2.
Felly, os d mod 2 yn dychwelyd 0, dyna sut yr ydym yn mynd i wirio
i weld os mae hyd yn oed.
Os yw d mod 2 yn dychwelyd 0, yna yn rhes d minws 1, sef y rhes gwaelod, a
sefyllfa d minws 2, neu golofn d llai 2, rydym yn mynd i sefydlu hynny i 2, ac
colofn d minws 3 rydym yn mynd i osod i 1.
Felly, sydd newydd bacio lle 1 a 2 ar hyn o bryd.
>> Yn olaf, rydym yn mynd i osod yr union gwaelod hawl cyfartal i wag, lle y
gwag wedi cael ei ddiffinio hash ar y brig fel 0.
Felly, nid oedd hynny'n hollol angenrheidiol, gan fod hyn am ddolen yn mynd i gael
gosod y gwaelod ar y dde i 0, gan fod Bydd cownter yn naturiol yn cyrraedd 0.
Ond mae hynny'n dibynnu ar i ni wybod y wag yn hashed i ddod o hyd i 0.
Os byddaf yn mynd yn y rhaglen hon ac yn ddiweddarach newid wag ar y brig i 100, mae'n
Dylai dal i weithio.
>> Felly, mae hyn yn unig yw sicrhau bod y gwaelod ar y dde mewn gwirionedd cyfartal i'n
gwerth yn wag.
Yn olaf, mae gennym ddau newidyn byd-eang, fel fi a j yn wag yn wag, ac rydym yn gweld
rhai a datgan ar y brig.
Ac rydym yn mynd i ddefnyddio y ddau fyd-eang newidynnau i gadw golwg ar y
lleoliad y wag, fel nad ydym yn ei wneud Mae angen i edrych drwy'r holl
bwrdd i ddod o hyd i'r wag i bob un tro y byddwn yn ceisio gwneud symud.
Felly, lleoliad y wag bob amser yn mynd i ddechrau ar y dde gwaelod.
Felly, yr hawl gwaelod yn cael ei roi gan mynegeion d minws 1, d minws 1.
Felly, dyna init.
>> Nawr rydym yn symud ymlaen i dynnu.
Felly, raffl yn mynd i fod yn debyg lle rydym yn mynd i ailadrodd
dros y bwrdd cyfan.
Ac rydym dim ond eisiau i argraffu'r gwerth dyna ym mhob lleoliad y bwrdd.
Felly dyma, rydym yn argraffu'r gwerth sy'n ym mhob lleoliad y bwrdd.
Ac yn sylwi ein bod yn ei wneud -.
A dyna i 'jyst dweud printf sy'n waeth beth os yw'n un digid neu
dau ddigid, rydym yn dal eisiau iddo gymryd hyd at ddwy golofn yn y print allan,
felly os gennym ddau digid ac un rhifau digid yn yr un bwrdd, mae ein
Bydd y bwrdd yn dal i edrych yn neis ac yn sgwâr.
>> Felly, rydym yn awyddus i wneud hynny ar gyfer pob gwerth yn y bwrdd, ac eithrio ar gyfer y yn wag.
Felly, os yw'r swydd yn y bwrdd yn hafal i y wag, yna rydym yn benodol
eisiau i argraffu dim ond tanlinellu i gynrychioli'r wag, yn hytrach na
beth bynnag yw gwerth y wag mewn gwirionedd.
>> Yn olaf, rydym eisiau argraffu allan linell newydd.
Hysbysiad bod hyn yn dal y tu mewn yr allanol ar gyfer ddolen, ond y tu allan
y mewnol ar gyfer ddolen.
Ers allanol hon ar gyfer ddolen yn bwysleisio'r dros yr holl rhesi, ac felly printf mae hyn yn
mynd i ychydig argraffu llinell newydd, felly rydym yn symud ymlaen i argraffu'r rhes nesaf.
A dyna ni am gêm gyfartal.
>> Felly, nawr gadewch i symud ymlaen i symud.
Nawr, rydym yn pasio yn symud, y deilsen bod y defnyddiwr yn cael ei gofnodi yn y gêm - maent yn
mynd i mewn i'r teils y maent am ei symud - ac rydych yn fod i ddychwelyd bool, felly
naill ai yn wir neu gau, yn dibynnu ar a oedd y symud oedd mewn gwirionedd yn
ddilys - a oes modd teils fod yn symud i mewn i'r gofod yn wag.
>> Felly dyma, rydym yn datgan newidyn lleol, tile_1 a tile_j, sydd yn mynd i
yn debyg i'r blank_i a blank_j, ac eithrio ei fod yn mynd i gadw golwg ar y
lleoliad y teils.
Nawr dyma, rydym yn mynd i ddefnyddio blank_i a blank_j a dweud iawn, felly
dyma y gwag ar y bwrdd.
>> Nawr, yw'r teils uwchben y wag?
A yw'r teils i'r chwith y wag?
A yw'r teils ar y dde o'r wag?
A yw'r teils o dan y wag?
Felly, os bydd y teils yn unrhyw un o'r rhai swyddi, yna rydym yn gwybod bod y teils
gellir eu symud i mewn i'r fan a'r lle gwag a gall y wag yn cael ei symud i'r lle y
teils ar hyn o bryd.
>> Felly dyma, rydym yn dweud os y bwrdd ger y safle blank_i minws 1 blank_j.
Felly, mae hyn yn ei ddweud yw y deilsen yn uwch na'r wag ar hyn o bryd?
Ac os felly, rydym yn mynd i gofio dyna yw safbwynt y teils.
Mae'r teils yn ei le blank_i minws 1 a blank_j.
awr gyntaf, mae gennym hefyd y gwiriad hwn i'r dde yma, felly blank_i yn
fwy na 0.
>> Pam ydym ni eisiau ei wneud hynny?
Wel, os yw'r wag yn y rhes uchaf y bwrdd, yna nid ydym am i
edrych yn uwch na'r wag ar gyfer y teils ers nid oes unrhyw beth yn uwch na'r top
res y bwrdd.
Mae hyn yn sut y byddwch yn y pen draw yn cael rhywbeth fel wall neu
efallai y bydd eich rhaglen yn unig yn gweithio mewn ffyrdd annisgwyl.
Felly, mae hyn yn gwneud yn siŵr nad ydym yn ei wneud edrych mewn mannau nad ydynt yn ddilys.
>> Nawr rydym yn mynd i wneud yr un peth ar gyfer holl gyfuniadau posibl eraill.
Felly dyma, rydym yn edrych o dan y wag i weld os dyna'r teils.
Ac mae'n rhaid i ni hefyd wneud yn siŵr ein bod yn nid ar y rhes gwaelod, neu fel arall ni
Ni ddylai chwilio am y teils.
Yma, rydym yn mynd i edrych ar y chwith gwag i weld os mai dyma'r teils.
Ac ni ddylem edrych i'r chwith os ydym yn y golofn leftmost.
A dyma ni yn mynd i edrych i'r hawl y yn wag, ac ni ddylem
edrych i'r dde os ydym yn yn y golofn rightmost.
>> Felly, os nad oes un o'r pethau hynny yn wir, mae hynny'n golygu nad oedd y teils yn gyfagos
i'r wag, ac rydym yn gallu dychwelyd ffug.
Nid oedd y symudiad yn ddilys.
Ond, os bydd un o'r rhai a oedd yn wir, yna yn pwynt hwn, rydym yn gwybod bod tile_i a
tile_j yn hafal i'r lleoliad y teils.
Ac felly, gallwn ddiweddaru'r bwrdd yn swyddi tile_i a tile_j.
Rydym yn gwybod y bydd y gwerth newydd yn y wag a bod y sefyllfa blank_i
blank_j, a oedd yn y gwreiddiol wag - rydym yn gwybod y teils yn mynd i
symud yno.
>> Yn sylwi nad oes gennym i wneud mewn gwirionedd yn cyfnewid go iawn yma, gan ein bod yn gwybod y
gwerthoedd y mae angen eu mewnosod i'r swyddi hyn.
Nid oes angen dros dro a amrywiol o gwmpas.
>> Yn olaf, mae angen i ni gofio ein bod yn wedi ein newidynnau byd-eang sy'n cael eu
cadw golwg ar y sefyllfa yr wag.
Felly, rydym am i ddiweddaru'r sefyllfa gwag i fod yn lle y deilsen
yn wreiddiol.
Yn olaf, byddwn yn dychwelyd yn wir ers symud yn llwyddiannus.
Rydym yn cyfnewid yn llwyddiannus wag gyda'r teils.
>> Mae pob hawl, rydym mor ddiwethaf angen gwirio enillodd.
Felly, enillodd yr un modd yn dychwelyd bool lle yn wir yn mynd i ddangos bod y
defnyddiwr wedi ennill y gêm.
Ac ffug sy'n dangos bod y gêm yn dal i fynd.
Nid yw'r defnyddiwr wedi ennill.
Felly, mae hyn yn mynd i fod yn 'n bert lawer y gwrthwyneb i init, lle mae init,
cofiwch, rydym yn ymgychwyn y bwrdd i 15, 14, 13, 12, yn y blaen.
Tra ennill, rydym am i wirio a yw'r bwrdd yn 1, 2, 3, 4, 5, ac yn y blaen.
>> Felly, rydym yn mynd i ymgychwyn ein cownter i 1 ers dyna beth y brig
Dylai chwith y bwrdd fod.
Ac yna rydym yn mynd i ddolen dros y bwrdd cyfan.
Gadewch i ni anwybyddu cyflwr hwn am eiliad.
Ac yr amod hwn yn unig yn mynd i siec yw'r bwrdd yn y sefyllfa hon
hafal i'r cyfrif presennol?
Os felly, gynyddran y cyfrif fel bod y sefyllfa nesaf rydym yn edrych arno yw un yn uwch
na'r sefyllfa yr ydym ar hyn o bryd.
>> Felly dyna sut yr ydym yn cael y Dylai chwith uchaf fod yn 1.
Cynyddiad y cyfrif i 2.
Edrychwch ar y sefyllfa nesaf.
A yw hyn yn 2?
Os felly, cynyddiad y cyfrif i 3.
Sefyllfa nesaf, a yw hyn 3?
Os felly, gynyddran y cyfrif i 4, ac yn y blaen.
Felly, os oes unrhyw safle ar y bwrdd sydd heb fod yn gyfartal ein cyfrif,
yna rydym yn awyddus i ddychwelyd ffug ers yr yn golygu bod rhywfaint o teils sy'n
nid yn y safle cywir.
>> Felly dyma, beth y cyflwr hwn yn ei wneud?
Wel, cofiwch fod y wag yn i fod i fynd ar y dde ar y gwaelod.
Ac nid gwerth y wag yn gallai o reidrwydd yn gyfartal i werth y
wrthweithio bod yn mynd i gael ei gyrraedd ar y dde gwaelod.
Felly, rydym am yn benodol i wirio os fi hafal hafal d minws 1 a j gydradd
yn hafal i d minws 1 - sy'n dweud os ydym yn edrych ar ochr dde gwaelod
y bwrdd - yna rydym yn unig am barhau.
Rydym am i hepgor y penodol iteriad y am ddolen.
>> Ac felly, os ydym yn llwyddo i gael drwy'r nythu ar gyfer dolen, mae hynny'n golygu bod
nid oedd unrhyw teils a oedd yn y sefyllfa anghywir.
Ac rydym yn torri allan o'r cylch ac yn dod yma, lle y gallwn ddychwelyd wir.
Roedd yr holl teils yn y safleoedd cywir ac mae hynny'n golygu y defnyddiwr wedi
ennill y gêm.
A dyna ni.
Fy enw i yw Rob Bowden, ac roedd hyn yn 15.