1 00:00:00,000 --> 00:00:13,070 2 00:00:13,070 --> 00:00:13,715 >> ROB BOWDEN: Hi. 3 00:00:13,715 --> 00:00:17,800 Mwen se Rob, e mwen espere ou jwèt pou jwèt nan 15. 4 00:00:17,800 --> 00:00:22,040 Koulye a, genyen kat fonksyon ou bezwen aplike nan pwogram sa a - ini, 5 00:00:22,040 --> 00:00:24,650 trase, deplase, epi te genyen. 6 00:00:24,650 --> 00:00:27,230 Se konsa,, se pou yo gade nan ini. 7 00:00:27,230 --> 00:00:32,930 >> Isit la, nou wè nan premye bagay nou ap pral fè se deklare yon varyab 8 00:00:32,930 --> 00:00:34,600 rele vann san preskripsyon. 9 00:00:34,600 --> 00:00:37,620 Li pral fè initialisé nan fwa d d mwens 1. 10 00:00:37,620 --> 00:00:40,200 Sonje ke d se dimansyon nan nan tablo nou an. 11 00:00:40,200 --> 00:00:43,840 Ki jan ini se ale nan travay se li k ap pase repňte sou tablo a tout antye 12 00:00:43,840 --> 00:00:46,050 e nou pral kòmanse sou bò gòch nan tèt. 13 00:00:46,050 --> 00:00:48,570 >> Li kite yo jis di nou gen yon tablo 4 pa 4. 14 00:00:48,570 --> 00:00:51,220 Se konsa, tèt la kite nou ap pral di se 15. 15 00:00:51,220 --> 00:00:53,960 Lè sa a, nou ap jis ale nan konte pase nan ren ankadreman yo, li di 15, 14, 13, 16 00:00:53,960 --> 00:00:58,510 12, 11, 10, 9, 8, 7, , 6, 5, 4, ak sou sa. 17 00:00:58,510 --> 00:01:03,780 Se konsa, bò gòch nan tèt, nou espere yo dwe fwa d d mwens 1, ki nan 4 a pa 4 18 00:01:03,780 --> 00:01:08,290 ka a pwal 16 mwens 1, ki se kòrèkteman 15. 19 00:01:08,290 --> 00:01:10,885 >> Epi, koulye a isit la nan kote nou ap ale nan repňte sou tablo a tout antye. 20 00:01:10,885 --> 00:01:14,720 Apre sa, nou pral mete chak pozisyon nan tablo a nan valè aktyèl la nan 21 00:01:14,720 --> 00:01:19,090 vann san preskripsyon nou yo, epi Lè sa a, vann san preskripsyon ki pral dekrwasans, se konsa ke pwochen an 22 00:01:19,090 --> 00:01:22,300 pozisyon nou rive nan ki pral gen vann san preskripsyon fè yon sèl pi piti pase 23 00:01:22,300 --> 00:01:23,690 pozisyon nan anvan yo. 24 00:01:23,690 --> 00:01:26,970 Se konsa, nou okòmansman te gen 15 ak dekrwasans vann san preskripsyon. 25 00:01:26,970 --> 00:01:30,065 Se konsa, Lè sa a, nou pral bay 14 a nan pwochen pozisyon, dekrwasans vann san preskripsyon, 26 00:01:30,065 --> 00:01:33,710 epi nou ap ale nan plase 13, ak sou sa. 27 00:01:33,710 --> 00:01:37,620 >> Finalman, nou bezwen okipe ke kwen ka kote, si tablo a te gen yon menm 28 00:01:37,620 --> 00:01:44,450 dimansyon, lè sa a jis ap fè 15, 14, 13, 12, tout wout la desann a 3, 2, 1, se 29 00:01:44,450 --> 00:01:46,780 ale nan kite nou ak yon komite ensolubl. 30 00:01:46,780 --> 00:01:49,390 Epi nou gen swap 1 an ak 2 a. 31 00:01:49,390 --> 00:01:52,930 Se konsa, si d mod 2 egal 0, sa a, se ki jan nou ap ale nan tcheke 32 00:01:52,930 --> 00:01:54,410 yo wè si li nan menm. 33 00:01:54,410 --> 00:01:59,810 Si d mod 2 egal 0, Lè sa a, nan ranje d mwens 1, ki se ranje anba a, ak 34 00:01:59,810 --> 00:02:05,430 2 pozisyon d mwens, oswa kolòn d mwens 2, nou pral mete ke a 2, ak 35 00:02:05,430 --> 00:02:07,860 kolòn d mwens 3 nou ap ale nan mete nan 1. 36 00:02:07,860 --> 00:02:12,170 Se konsa, sa se sèlman ranvèse kote 1 an ak 2 kounye a yo ye. 37 00:02:12,170 --> 00:02:16,270 >> Finalman, nou ap ale nan mete anpil nan anba dwa egal a vid, kote 38 00:02:16,270 --> 00:02:20,700 vid ki te hash yo defini nan tèt la kòm 0. 39 00:02:20,700 --> 00:02:26,785 Se konsa, sa ki te pa entèdi sa nesesè, depi sa a pou bouk ki pral gen 40 00:02:26,785 --> 00:02:30,610 mete bò dwat la anba a 0, depi vann san preskripsyon pral natirèlman rive nan 0. 41 00:02:30,610 --> 00:02:34,610 Men, ki depann sou nou konnen ke vid te ache yo jwenn yon 0. 42 00:02:34,610 --> 00:02:38,280 Si m 'antre nan pwogram sa a epi pita chanje vid nan tèt la nan 100, li 43 00:02:38,280 --> 00:02:39,770 dwe ap travay toujou. 44 00:02:39,770 --> 00:02:43,180 >> Se konsa, sa a se jis fè si ke nan dwa anba a se aktyèlman egal a nou 45 00:02:43,180 --> 00:02:44,870 vid valè. 46 00:02:44,870 --> 00:02:50,270 Finalman, nou gen de varyab mondyal, Se konsa, vid mwen ak vid j, epi nou wè 47 00:02:50,270 --> 00:02:53,360 sa yo te deklare nan tèt la. 48 00:02:53,360 --> 00:02:56,270 Apre sa, nou pral sèvi ak moun ki de mondyal varyab nan kenbe tras nan la 49 00:02:56,270 --> 00:02:59,040 pozisyon nan vid la, se konsa ke nou pa fè sa bezwen gade nan tout nan 50 00:02:59,040 --> 00:03:03,890 Komisyon Konsèy jwenn vid nan chak yon sèl fwa nou eseye fè yon mouvman. 51 00:03:03,890 --> 00:03:08,450 Se konsa, pozisyon nan vid la toujou se ale nan kòmanse nan bò dwat la anba. 52 00:03:08,450 --> 00:03:13,270 Se konsa, bò dwat la anba yo bay nan endis d mwens 1, d mwens 1. 53 00:03:13,270 --> 00:03:14,880 Se konsa, sa a, se ini. 54 00:03:14,880 --> 00:03:17,040 >> Koulye a, nou deplase sou trase. 55 00:03:17,040 --> 00:03:19,370 Se konsa, trase a pwal menm jan an kote nou ap ale nan repňte 56 00:03:19,370 --> 00:03:20,970 sou tablo a tout antye. 57 00:03:20,970 --> 00:03:25,400 E nou jis vle ekri ak lèt ​​detache valè a sa a, se nan chak pozisyon nan tablo a. 58 00:03:25,400 --> 00:03:29,580 Se konsa, isit la, nou ap enprime valè a ki nan nan chak pozisyon nan tablo a. 59 00:03:29,580 --> 00:03:32,280 Apre sa, remake ke n ap fè -. 60 00:03:32,280 --> 00:03:37,410 Epi sa a, jis di printf ki kèlkeswa si li nan yon chif youn oswa 61 00:03:37,410 --> 00:03:42,010 de chif nimewo, nou toujou vle li nan Leve kanpe, pran de kolòn nan ekri ak lèt ​​detache a soti, 62 00:03:42,010 --> 00:03:46,290 se konsa ke si nou gen de chif ak yon nimewo chif nan tablo a menm, nou 63 00:03:46,290 --> 00:03:49,450 tablo ap toujou gade bèl ak kare. 64 00:03:49,450 --> 00:03:54,190 >> Se konsa, nou vle fè sa pou chak valè nan tablo a yo, eksepte pou vid la. 65 00:03:54,190 --> 00:03:58,260 Se konsa, si pozisyon an nan tablo a egal vid, lè sa a nou espesyalman nan 66 00:03:58,260 --> 00:04:01,730 vle enprime soti jis yon souliye ki reprezante vid la, olye pou yo 67 00:04:01,730 --> 00:04:05,150 tou sa valè a an nan vid aktyèlman se. 68 00:04:05,150 --> 00:04:08,500 >> Finalman, nou vle ekri an lèt detache soti yon liy nouvo. 69 00:04:08,500 --> 00:04:11,970 Remake sa a se toujou anndan deyò a pou bouk, men deyò 70 00:04:11,970 --> 00:04:13,200 enteryè a pou bouk. 71 00:04:13,200 --> 00:04:17,930 Depi deyò sa a pou bouk ki iteration sou tout ranje, epi konsa printf sa a se 72 00:04:17,930 --> 00:04:22,130 ale nan jis ekri ak lèt ​​detache yon liy nouvo, se konsa nou deplase sou enprime soti pwochen ranje a. 73 00:04:22,130 --> 00:04:23,910 Epi sa a, li pou trase. 74 00:04:23,910 --> 00:04:27,770 >> Se konsa, kounye a kite a deplase sou pou avanse pou pi. 75 00:04:27,770 --> 00:04:32,590 Koulye a, nou pase deplase, mozayik a ki la se itilizatè te antre nan nan jwèt la - yo 76 00:04:32,590 --> 00:04:36,360 antre nan mozayik la yo vle pou avanse pou pi - ak w ap sipoze retounen yon bouleen, se konsa 77 00:04:36,360 --> 00:04:39,300 swa vre oubyen fo, tou depann de si wi ou non ke deplase te aktyèlman 78 00:04:39,300 --> 00:04:43,360 ki valab - si wi ou non ke mozayik kapab deplase nan espas ki la vid. 79 00:04:43,360 --> 00:04:48,340 >> Se konsa, isit la, nou deklare yon varyab lokal yo, tile_1 ak tile_j, ki fè yo ale nan 80 00:04:48,340 --> 00:04:52,150 dwe menm jan ak blank_i ak blank_j, eksepte li a ale nan kenbe tras nan la 81 00:04:52,150 --> 00:04:54,910 pozisyon nan mozayik la. 82 00:04:54,910 --> 00:05:00,370 Koulye a isit la, nou ap ale nan sèvi ak blank_i ak blank_j lè y'a fè tout dwa, se konsa 83 00:05:00,370 --> 00:05:01,930 isit la nan vid la sou tablo a. 84 00:05:01,930 --> 00:05:04,420 >> Koulye a, se mozayik nan pi wo a vid la? 85 00:05:04,420 --> 00:05:06,210 Èske mozayik nan nan kite nan lavil la? 86 00:05:06,210 --> 00:05:07,420 Èske mozayik nan a dwat a vid la? 87 00:05:07,420 --> 00:05:08,970 Èske mozayik ki anba la a vid la? 88 00:05:08,970 --> 00:05:13,330 Se konsa, si mozayik a se nan nenpòt nan moun sa pozisyon, Lè sa a, nou konnen ke mozayik la 89 00:05:13,330 --> 00:05:16,390 ka brannen l 'nan plas la vid ak ka vid la dwe demenaje ale rete nan kote a 90 00:05:16,390 --> 00:05:18,240 mozayik kounye a se. 91 00:05:18,240 --> 00:05:26,400 >> Se konsa, isit la, nou di si tablo nan pozisyon blank_i mwens 1 blank_j. 92 00:05:26,400 --> 00:05:31,120 Se konsa, sa a se li di se mozayik la pi wo a vid la ye kounye a? 93 00:05:31,120 --> 00:05:34,350 Men, si se konsa, nou pral sonje ki se pozisyon nan mozayik la. 94 00:05:34,350 --> 00:05:37,870 Mozayik a se nan yon pozisyon blank_i mwens 1 ak blank_j. 95 00:05:37,870 --> 00:05:40,660 kounye a an premye, nou menm tou nou gen chèk sa-a dwa isit la, se konsa blank_i se 96 00:05:40,660 --> 00:05:41,760 pi gran pase 0. 97 00:05:41,760 --> 00:05:43,410 >> Poukisa nou vle fè sa? 98 00:05:43,410 --> 00:05:47,290 Bon, si vid a se nan tèt ranje a nan tablo a, lè sa a nou pa vle 99 00:05:47,290 --> 00:05:51,240 gade pi wo a vid la pou mozayik nan depi pa gen anyen pi wo a tèt la 100 00:05:51,240 --> 00:05:52,430 ranje nan tablo a. 101 00:05:52,430 --> 00:05:55,950 Sa a se fason ou ta ka fini ap resevwa yon bagay tankou yon fay segmentation oswa 102 00:05:55,950 --> 00:05:59,030 pwogram ou an ta ka jis travay nan fason inatandi. 103 00:05:59,030 --> 00:06:04,310 Se konsa, sa a se fè si ke nou pa fè sa gade nan tout tanp zidòl ki pa ki valid. 104 00:06:04,310 --> 00:06:08,470 >> Koulye a, nou ap ale nan fè menm bagay la pou tout lòt konbinezon posib. 105 00:06:08,470 --> 00:06:13,250 Se konsa, isit la, nou ap chèche pi ba a vid la yo wè si sa a, se mozayik la. 106 00:06:13,250 --> 00:06:16,950 Epi nou gen asire tou ke nou ap pa sou ranje anba a, oswa lòt bagay nou 107 00:06:16,950 --> 00:06:18,910 pa ta dwe gade pou mozayik la. 108 00:06:18,910 --> 00:06:25,040 Isit la, nou ap ale nan gade sou bò goch la nan vid la yo wè si li nan mozayik la. 109 00:06:25,040 --> 00:06:27,860 Apre sa, nou pa ta dwe gade sou bò goch la si nou ap nan kolòn nan leftmost. 110 00:06:27,860 --> 00:06:30,100 Ak isit la nou pral gade nan la dwat Bondye ki gen vid la, epi nou pa ta dwe 111 00:06:30,100 --> 00:06:33,340 gade a dwat a si nou ap nan kolòn nan rightmost. 112 00:06:33,340 --> 00:06:37,820 >> Se konsa, si Pa gen yonn nan bagay sa yo yo te vre, sa vle di mozayik a pa t 'adjasan 113 00:06:37,820 --> 00:06:39,640 vid la ak nou ka retounen fo. 114 00:06:39,640 --> 00:06:41,230 Deplase a pa t 'ki valid. 115 00:06:41,230 --> 00:06:47,010 Men, si youn nan moun ki te vre, Lè sa a, nan pwen sa a, nou konnen ke tile_i ak 116 00:06:47,010 --> 00:06:50,540 tile_j ki egal a la pozisyon nan mozayik la. 117 00:06:50,540 --> 00:06:55,210 Se konsa, nou ka mete tablo a nan pozisyon tile_i ak tile_j. 118 00:06:55,210 --> 00:06:59,820 Nou konnen valè a nouvo yo pral vid la e ke blank_i nan pozisyon 119 00:06:59,820 --> 00:07:02,950 blank_j, ki te orijinal la vid - nou konnen mozayik nan se ale nan 120 00:07:02,950 --> 00:07:04,030 avanse pou pi a. 121 00:07:04,030 --> 00:07:07,610 >> Avi nou pa gen aktyèlman fè yon reyèl swap isit la, depi nou konnen an 122 00:07:07,610 --> 00:07:09,850 valè ki bezwen yo pral figire nan pozisyon sa yo. 123 00:07:09,850 --> 00:07:13,780 Nou pa bezwen yon ti tan varyab alantou. 124 00:07:13,780 --> 00:07:16,920 >> Finalman, nou bezwen sonje ke nou gen varyab mondyal nou an ke yo 125 00:07:16,920 --> 00:07:18,980 kenbe tras nan pozisyon an nan vid la. 126 00:07:18,980 --> 00:07:22,780 Se konsa, nou vle mete pozisyon nan vid la yo dwe kote mozayik nan 127 00:07:22,780 --> 00:07:24,190 orijinal te ye a. 128 00:07:24,190 --> 00:07:27,680 Finalman, nou tounen vre depi deplase nan te gen siksè. 129 00:07:27,680 --> 00:07:31,110 Nou avèk siksè swap la vid ak mozayik la. 130 00:07:31,110 --> 00:07:34,890 >> Tout dwa, se konsa pase nou bezwen tcheke te genyen. 131 00:07:34,890 --> 00:07:39,900 Se konsa, te genyen Menm jan an tou retounen yon bouleen kote vre ki pral endike ke nan 132 00:07:39,900 --> 00:07:41,460 te itilizatè te genyen jwèt la. 133 00:07:41,460 --> 00:07:43,780 Ak fo se ki endike ke jwèt la se toujou prale. 134 00:07:43,780 --> 00:07:46,340 Itilizatè a pa te genyen. 135 00:07:46,340 --> 00:07:52,100 Se konsa, sa a se pral fè bèl anpil opoze a nan ini, kote ini, 136 00:07:52,100 --> 00:07:56,920 sonje, nou inisyalize tablo a a 15, 14, 13, 12, sou sa. 137 00:07:56,920 --> 00:08:03,000 Lè nou konsidere ke te genyen, nou vle tcheke si la Komisyon Konsèy se 1, 2, 3, 4, 5, ak sou sa. 138 00:08:03,000 --> 00:08:06,600 >> Se konsa, nou ap ale nan inisyalize nou vann san preskripsyon nan 1 depi se sa ki tèt la 139 00:08:06,600 --> 00:08:08,400 bò gòch nan tablo a ta dwe. 140 00:08:08,400 --> 00:08:10,860 Lè sa a, nou pral bouk sou tablo a tout antye. 141 00:08:10,860 --> 00:08:13,690 Se pou yo inyore kondisyon sa a pou yon dezyèm fwa. 142 00:08:13,690 --> 00:08:18,410 Apre sa, kondisyon sa a se jis ale nan chèk se tablo a nan pozisyon sa a 143 00:08:18,410 --> 00:08:20,790 egal a konte yo ye kounye a? 144 00:08:20,790 --> 00:08:27,040 Si se konsa, enkreman konte a pou ke nan pwochen pozisyon nou gade nan se youn ki pi wo 145 00:08:27,040 --> 00:08:29,690 pase pozisyon nan nou nan kounye a. 146 00:08:29,690 --> 00:08:32,700 >> Se konsa, sa a, se ki jan nou jwenn nan gòch anwo yo ta dwe 1. 147 00:08:32,700 --> 00:08:33,950 Enkreman konte a 2. 148 00:08:33,950 --> 00:08:35,010 Gade nan pozisyon nan pwochen an. 149 00:08:35,010 --> 00:08:35,690 Èske sa se 2? 150 00:08:35,690 --> 00:08:37,659 Si se konsa, enkreman konte a 3. 151 00:08:37,659 --> 00:08:39,179 Next pozisyon, sa a se 3? 152 00:08:39,179 --> 00:08:42,440 Si se konsa, enkreman konte a a 4, yo ak sou sa. 153 00:08:42,440 --> 00:08:49,190 Se konsa, si gen okenn pozisyon sou la tablo ki pa egal a konte nou an, 154 00:08:49,190 --> 00:08:52,640 Lè sa a, nou vle retounen fo depi lè sa vle di gen nan kèk mozayik se sa ki 155 00:08:52,640 --> 00:08:55,490 pa nan pozisyon ki kòrèk la. 156 00:08:55,490 --> 00:08:58,810 >> Se konsa, isit la, sa ki kondisyon sa a ap fè? 157 00:08:58,810 --> 00:09:02,170 Oke, sonje ke vid la se sipoze ale sou bò dwat la anba. 158 00:09:02,170 --> 00:09:06,180 Ak valè vid la ta ka pa nesesèman egal a valè a nan la 159 00:09:06,180 --> 00:09:11,080 vann san preskripsyon ki se yo pral rive nan nan bò dwat la anba. 160 00:09:11,080 --> 00:09:15,760 Se konsa, nou espesyalman vle tcheke si mwen egal egal d mwens 1 ak j egal 161 00:09:15,760 --> 00:09:19,470 egal d mwens 1 - ki se li di si nou ap chèche a bò dwat la anba 162 00:09:19,470 --> 00:09:22,050 Komisyon Konsèy la - Lè sa a, nou jis vle kontinye. 163 00:09:22,050 --> 00:09:26,200 Nou vle sote sa a an patikilye iterasyon nan pou bouk la. 164 00:09:26,200 --> 00:09:31,250 >> Se konsa, si nou jere jwenn nan sa a pare solèy pou bouk, ki vle di ke 165 00:09:31,250 --> 00:09:34,690 pa te gen okenn mozayik sa ki te nan pozisyon nan kòrèk. 166 00:09:34,690 --> 00:09:38,900 Lèfini, nou kraze soti nan bouk la epi pou yo rive isit la, kote nou ka retounen vre. 167 00:09:38,900 --> 00:09:41,800 Tout mozayik yo te nan pozisyon yo kòrèk ak sa vle di itilizatè a gen 168 00:09:41,800 --> 00:09:43,230 te genyen jwèt la. 169 00:09:43,230 --> 00:09:44,460 Epi sa a, li. 170 00:09:44,460 --> 00:09:46,550 Non mwen se Rob Bowden, ak sa a te 15. 171 00:09:46,550 --> 00:09:52,726