1 00:00:00,000 --> 00:00:09,386 2 00:00:09,386 --> 00:00:11,332 >> ZAMYLA Chan: Gadewch i ni gael hwyl gyda Fifteen. 3 00:00:11,332 --> 00:00:15,680 Pymtheg yw'r gêm gyntaf eich bod yn cael i weithredu ac mae'n rhyngweithiol. 4 00:00:15,680 --> 00:00:16,410 Yn awr, i beidio â phoeni. 5 00:00:16,410 --> 00:00:18,830 Nid oes rhaid i chi ysgrifennu y holl beth eich hun. 6 00:00:18,830 --> 00:00:22,320 Edrychwch ar y cod dosbarthu oherwydd bod llawer o'r strwythur gêm eisoes 7 00:00:22,320 --> 00:00:23,880 sefydlu ar gyfer chi. 8 00:00:23,880 --> 00:00:28,160 Mae'n derbyn ac yn parses llinell orchymyn dadl gan y defnyddiwr ac yn creu 9 00:00:28,160 --> 00:00:31,230 bwrdd yn seiliedig ar y mewnbwn. 10 00:00:31,230 --> 00:00:35,570 Mae'n gwirio os yw'r gêm yn cael ei ennill ac allanfeydd unwaith y bydd y defnyddiwr ennill y gêm. 11 00:00:35,570 --> 00:00:38,340 Ac i ennill y gêm, mae'n mynd yn mewnbwn gan y defnyddiwr a 12 00:00:38,340 --> 00:00:40,610 yn galw swyddogaeth Symud. 13 00:00:40,610 --> 00:00:44,600 >> Felly, rydym yn mynd i gael eu gweithredu pedwar swyddogaethau ar gyfer y gêm o Fifteen, 14 00:00:44,600 --> 00:00:48,110 init, tynnu, yn symud, ac enillodd. 15 00:00:48,110 --> 00:00:50,340 Yn gyntaf, gadewch i ni fynd i'r afael â init. 16 00:00:50,340 --> 00:00:55,150 Yn init, ar gyfer ymgychwyn, ydym yn eu cynrychioli y bwrdd mewn amrywiaeth cyfanrif 2D. 17 00:00:55,150 --> 00:01:01,070 Ac mae hyn yn newidyn byd-eang a elwir yn bwrdd gyda dimensiynau MAX, a MAX, 18 00:01:01,070 --> 00:01:03,880 uchafswm y dimensiynau y bwrdd. 19 00:01:03,880 --> 00:01:07,310 Yn awr, y dimensiwn gwirioneddol y bwrdd yn cael ei roi gan y defnyddiwr, a gynrychiolir yn 20 00:01:07,310 --> 00:01:10,620 y cyfanrif d, a allai fod yn llai na MAX. 21 00:01:10,620 --> 00:01:14,660 Ond, yn C, ni allwch newid maint araeau, felly rydych yn aros gyda 22 00:01:14,660 --> 00:01:16,730 y dimensiwn mwyaf. 23 00:01:16,730 --> 00:01:19,870 >> Eich swydd yn init yw boblogi gwerthoedd y bwrdd 24 00:01:19,870 --> 00:01:21,860 gyda'r gwerth cywir. 25 00:01:21,860 --> 00:01:26,910 Nawr, rydym wedi gweld araeau 1D, ond sut mae araeau 2D yn gweithio? 26 00:01:26,910 --> 00:01:30,985 Mae mynegai y rhes, sero mynegeio fel bob amser, ac yna hefyd 27 00:01:30,985 --> 00:01:32,100 y golofn. 28 00:01:32,100 --> 00:01:36,120 A byddwch yn llenwi eich grid mewn yn gwerthoedd i lawr, yn union fel hyn. 29 00:01:36,120 --> 00:01:43,260 Grid, 0, 0, 0 rhes, colofn 0, yw 8, grid 0, 1 yn 7. 30 00:01:43,260 --> 00:01:48,500 Mae hyn ar gyfer enghraifft lle d, ychydig o d, yw 3. 31 00:01:48,500 --> 00:01:52,690 >> Yn awr, rhaid i'r bwrdd yn pymtheg hefyd cynnwys teils wag, os ydych wedi erioed 32 00:01:52,690 --> 00:01:54,280 chwarae gyda'r gêm corfforol. 33 00:01:54,280 --> 00:01:59,210 Ond, bwrdd yn arae cyfanrif, felly rhaid i bob werthoedd fod yn cyfanrifau. 34 00:01:59,210 --> 00:02:06,950 Felly, mae i fyny i chi i benderfynu yn gyfanrif gwerth i gynrychioli teils wag. 35 00:02:06,950 --> 00:02:10,460 I ymgychwyn eich bwrdd, gallwch ddefnyddio strwythurau dolen i gynnwys y 36 00:02:10,460 --> 00:02:16,440 cychwyn cyflwr y bwrdd, lle mae bwrdd i j cynrychioli'r elfen yn 37 00:02:16,440 --> 00:02:19,380 i rhes a cholofn j. 38 00:02:19,380 --> 00:02:23,035 Maent yn dechrau er mwyn ddisgynnol ac, cofiwch, os bydd y nifer o deils 39 00:02:23,035 --> 00:02:29,590 yn od, yna rydych chi'n mynd i gael i gyfnewid y lleoliad 2 a 1. 40 00:02:29,590 --> 00:02:33,790 Felly mae, yr ydym wedi ein bwrdd ymgychwyn. 41 00:02:33,790 --> 00:02:37,440 >> Yn awr, yr ydym wedi ymgychwyn ein bwrdd, mae'n amser i dynnu. 42 00:02:37,440 --> 00:02:41,260 Bydd Draw argraffu cyflwr presennol y bwrdd, ond mae angen i chi wneud yn siŵr 43 00:02:41,260 --> 00:02:44,260 i argraffu teils yn yr un drefn eich bod wedi ymgychwyn iddynt. 44 00:02:44,260 --> 00:02:47,300 Ac mae angen i chi hefyd i fformat eich rhifau yn gywir. 45 00:02:47,300 --> 00:02:51,700 Oherwydd gallai fod yn rhaid digidau sengl a digidau dwbl, yna rydych am ei 46 00:02:51,700 --> 00:02:54,540 argraffu le gwag cyn unrhyw rifau un digid. 47 00:02:54,540 --> 00:03:00,150 Byddwch yn defnyddio hynny drwy ddefnyddio y dalfan -. 48 00:03:00,150 --> 00:03:02,550 >> Ond cofiwch ein gofod yn wag. 49 00:03:02,550 --> 00:03:05,970 Nid ydym am i argraffu'r nifer gwirioneddol ein bod wedi dewis i gynrychioli 50 00:03:05,970 --> 00:03:10,410 bod lle gwag yn y bwrdd, ond rydym hefyd yn nad ydych am i argraffu dim byd o gwbl. 51 00:03:10,410 --> 00:03:15,310 Felly, beth allwch ei wneud yw diffinio symbol neu gymeriad i gynrychioli'r 52 00:03:15,310 --> 00:03:17,050 teils yn wag. 53 00:03:17,050 --> 00:03:21,030 Mewn enghreifftiau blaenorol, rwyf wedi dewis i tanlinellu, ac yna 'ch jyst argraffu 54 00:03:21,030 --> 00:03:26,970 bod pryd bynnag y byddwch yn cyrraedd y wag le yn eich swyddogaeth gystadleuaeth. 55 00:03:26,970 --> 00:03:29,850 >> Felly bydd yn tynnu wedi nythu ar gyfer dolenni. 56 00:03:29,850 --> 00:03:31,150 Rhywbeth fel hyn. 57 00:03:31,150 --> 00:03:35,660 Ar gyfer pob rhes, ac yna ar gyfer pob gwerth mewn y rhes, rydych yn mynd i argraffu'r 58 00:03:35,660 --> 00:03:36,940 gwerth yn y gofod. 59 00:03:36,940 --> 00:03:39,470 Unwaith y byddwch wedi ei argraffu holl werthoedd yn y rhes, yna rydych 60 00:03:39,470 --> 00:03:41,180 Gall argraffu llinell newydd. 61 00:03:41,180 --> 00:03:47,730 Cofiwch bod y gorchymyn ar gyfer eich tynnu Mae'n rhaid i swyddogaeth adleisio'r neu adlewyrchu y gorchymyn 62 00:03:47,730 --> 00:03:48,980 yn eich swyddogaeth ymgychwyn. 63 00:03:48,980 --> 00:03:51,290 64 00:03:51,290 --> 00:03:55,160 >> Wrthych yn awr fod ymgychwyn y bwrdd a eich bod wedi tynnu hynny, mae'n amser i roi 65 00:03:55,160 --> 00:03:58,500 y defnyddiwr ei olygu ac yn gwneud eu symudiadau. 66 00:03:58,500 --> 00:04:03,840 Felly, yn y swyddogaeth Fifteen.c, y rhaglen yn cymryd mewnbwn gan y defnyddiwr a 67 00:04:03,840 --> 00:04:07,690 Yna, yn galw y swyddogaeth symud, gan fynd heibio yn nifer y teils fod y 68 00:04:07,690 --> 00:04:09,270 defnyddiwr eisiau symud. 69 00:04:09,270 --> 00:04:10,380 Yn awr, byddwch yn ofalus. 70 00:04:10,380 --> 00:04:14,200 Mae hyn yn y nifer gwirioneddol y teils ac nid yw ei sefyllfa wirioneddol. 71 00:04:14,200 --> 00:04:19,010 Felly, bydd angen i chi chwilio am y teils yn sefyllfa i wybod lle y mae. 72 00:04:19,010 --> 00:04:23,440 >> Nawr, dylech dim ond caniatáu i'r defnyddiwr i wneud symud os yw'n gyfreithiol. 73 00:04:23,440 --> 00:04:27,910 Mae symud cyfreithiol unrhyw teils sy'n wrth ymyl y teils yn wag. 74 00:04:27,910 --> 00:04:32,020 Mae hynny'n golygu, uwchben ac o dan, i y chwith ac i'r dde. 75 00:04:32,020 --> 00:04:34,680 Felly bydd angen i chi wybod ble y teils gwag yn ogystal. 76 00:04:34,680 --> 00:04:39,720 Yn awr, am bob symud eich bod yn chwilio am y teils defnyddwyr, ond mae'n debyg 77 00:04:39,720 --> 00:04:43,030 Nid gorau i chwilio am y teils gwag bob tro oherwydd eich bod yn ei wneud yn 78 00:04:43,030 --> 00:04:45,270 bob tro y defnyddiwr eisiau symud. 79 00:04:45,270 --> 00:04:50,300 Felly, yn lle hynny, mae'n well cofio lle y teils gwag yn defnyddio rhai 80 00:04:50,300 --> 00:04:52,650 newidynnau a enwir yn dda. 81 00:04:52,650 --> 00:04:55,970 Felly, unwaith y byddwch yn caniatáu i'r defnyddiwr i wneud eu symud, maent yn dda ar eu 82 00:04:55,970 --> 00:04:59,700 ffordd i ennill y gêm o Fifteen. 83 00:04:59,700 --> 00:05:03,940 >> Er mwyn ennill y gêm o Bymtheg, y teils rhaid iddo fod mewn trefn benodol, ac 84 00:05:03,940 --> 00:05:06,970 gwiriadau y swyddogaeth a enillwyd a y gêm yn cael ei ennill. 85 00:05:06,970 --> 00:05:10,290 Mae'n dychwelyd Gwir os y gêm yn cael ei ennill a y teils yn y drefn gywir, 86 00:05:10,290 --> 00:05:12,210 a Gau fel arall. 87 00:05:12,210 --> 00:05:15,830 Felly, er mwyn ennill y gêm o Fifteen, teils rhaid cynyddu trefn, gyda'r 88 00:05:15,830 --> 00:05:19,230 teils gwag ar y gornel gwaelod ar y dde. 89 00:05:19,230 --> 00:05:23,630 Felly, sut ydych chi wirio p'un ai y defnyddiwr wedi symud y bwrdd i mewn i'r dde 90 00:05:23,630 --> 00:05:25,010 cyfeiriadedd? 91 00:05:25,010 --> 00:05:29,200 >> Wel, byddwch yn ailadrodd dros y bwrdd a edrych ar y gwerthoedd i wneud yn siwr bod 92 00:05:29,200 --> 00:05:30,550 eu bod yn y lle iawn. 93 00:05:30,550 --> 00:05:33,910 I wneud hyn, gallwch ddefnyddio nythu ar gyfer dolenni yn union fel y gwnaethoch chi 94 00:05:33,910 --> 00:05:36,520 yn tynnu ac yn init. 95 00:05:36,520 --> 00:05:40,430 Mae cwpl o ffyrdd o wirio a dilysu a yw'r bwrdd yn 96 00:05:40,430 --> 00:05:42,860 gywir a ennill ffurfio, er. 97 00:05:42,860 --> 00:05:47,330 Os byddwch yn mynd o'r chwith i'r dde, gan ddechrau oddi wrth y rhes uchaf i lawr, ac yna bob 98 00:05:47,330 --> 00:05:50,590 Mae'n rhaid i nifer fod yn fwy na yr un blaenorol. 99 00:05:50,590 --> 00:05:54,530 Byddwch yn ofalus am yr hyn rydych chi'n ei werthfawrogi i wedi ddewiswyd ar gyfer eich teils yn wag er. 100 00:05:54,530 --> 00:05:59,250 >> Neu gallech ddefnyddio newidyn yn groes i sicrhau bod pob gwerth yn ei le, os 101 00:05:59,250 --> 00:06:03,660 byddwch yn dod o hyd i rhyw fath o fformiwla i gynrychioli'r hyn. 102 00:06:03,660 --> 00:06:06,250 Felly, cael hwyl yn arbrofi gyda'r mathemateg. 103 00:06:06,250 --> 00:06:10,930 Unwaith y byddwch wedi dod o hyd i ffordd, dychwelyd Gwir unwaith y bydd y defnyddiwr wedi ennill y gêm. 104 00:06:10,930 --> 00:06:15,950 Ond os unrhyw werth yn anghywir, yn dychwelyd Anghywir, y defnyddiwr wedi i barhau i symud 105 00:06:15,950 --> 00:06:18,440 oherwydd nad ydynt wedi ennill y gêm. 106 00:06:18,440 --> 00:06:23,030 Unwaith y byddwch yn gweithredu gwiriad hwn ac, ynghyd gyda ymgychwyn, tynnu, a symud, 107 00:06:23,030 --> 00:06:25,110 eich bod wedi gorffen y gêm o Fifteen. 108 00:06:25,110 --> 00:06:27,620 Llongyfarchiadau a chael hwyl yn chwarae. 109 00:06:27,620 --> 00:06:30,600 Fy enw i yw Zamyla ac mae hyn yn CS50. 110 00:06:30,600 --> 00:06:37,632