>> РОБ БОВДЕН: Здраво.
Ја сам Роб, и надам се ваше игра за игру 15.
Сада, постоје четири функције које треба да спроведу у овом програму - инит,
цртати, преместите, и победио.
Дакле, хајде да погледамо инит.
>> Ево, видимо прву ствар смо ми урадити је прогласи променљиву
зове бројач.
То ће бити иницијализована да д пута Д минус 1.
Запамтите да је д димензија нашег одбора.
Како прва ће радити јесте да ће да вршите итерацију за цео боард
и ми ћемо почети у горњем левом.
>> И рецимо да ми имају 4 од 4 таблу.
Дакле, горе лево смо да кажем јесте 15.
И онда ми само да рачунају кроз даске, рекавши 15, 14, 13,
12, 11, 10, 9, 8, 7, 6, 5, 4, и тако даље.
Дакле, горњи леви, очекујемо да буде д пута Д минус 1, који је у 4 од 4
Случај ће бити 16 минус 1, што је исправно 15..
>> А сада ево где ћемо поновити за цео боард.
И ми ћемо поставити сваки положај у одбор на тренутну вредност
наш бројач, а затим бројач иде на декрементирати, тако да следећа
позиција стигнемо ће имати цоунтер бити један мањи од
претходни положај.
Тако да смо у почетку имали 15 и декрементирати бројач.
Дакле, онда ћемо доделити 14 до следећи положај, умањење бројач,
и ми ћемо додељен 13, и тако даље.
>> Коначно, морамо да рукује тај кутак случај где, ако одбор има чак
димензија, онда само раде 15, 14, 13, 12, све до 3, 2, 1, је
ће нас оставити са нерешиви одбор.
И морамо да мењате 1. и 2..
Дакле, ако г Мод 2 једнако 0, то је како ћемо проверити
да видим да ли је то још.
Ако је д мод 2 једнако 0, онда у реду Д минус 1, што је доњи ред, и
положај Д минус 2, или колона Д минус 2, ми ћемо поставити то на 2, и
колона Д минус 3 смо ће поставити на 1.
Дакле, то је само уназад где 1 и 2 су тренутно.
>> Коначно, ми ћемо поставити веома доле десно једнако празно, где
празно је тараба дефинисана на врху као 0.
Дакле, то није био стриктно неопходно, јер ово за петље ће имати
поставите доњи право на 0, јер бројач ће природно достићи 0..
Али да се ослања на нас, знајући да празно је хеширају да нађе 0.
Ако ја одем у овај програм и касније променити празно на врху до 100, то
треба и даље радити.
>> Дакле, ово је само да се уверите доле десно је заправо једнак наш
празно вредност.
Коначно, имамо два глобалне варијабле, тако празно и и ј празно, и ми видимо
они проглашен на врху.
И ми ћемо користити оне две глобалне променљиве да пратите
положај празно, тако да ми не треба да изгледа кроз цео
одбор да пронађе празан сваки време покушавамо да направи потез.
Тако положај празан увек ће почети у доњем десном углу.
Дакле, доњи десни даје Индекси Д минус 1, Д минус 1.
Дакле, то је прва.
>> Сада ћемо прећи на нерешено.
Дакле, жреб ће бити сличан где ћемо поновити
преко целог табли.
А ми само желимо да одштампате вредност да је у свакој позицији одбора.
Дакле овде, ми штампањем вредност која је у свакој позицији одбора.
И приметите да радимо -.
И то је управо говори да принтф без обзира да ли је то једна цифра или
две цифре броја, ми и даље желимо да га заузимају две колоне у одштампате,
тако да ако имамо две цифре и једну Бројеви цифра у истом броду, наш
одбор ће и даље изгледа лепо и трг.
>> Дакле, ми желимо да урадимо за сваку вредност у одбору, осим празан.
Дакле, ако је позиција у табли једнак празно, онда ћемо конкретно
Желим да одштампате само једну црту да представља празан, уместо
без обзира вредност празно заправо је.
>> На крају, желимо да одштампате из нове линије.
Обратите пажњу да је ово још увек унутра спољни за петљу, али изван
унутрашњи за петљу.
Пошто ова спољашња за петљу је итератинг над свим редовима, па ово је принтф
ће само одштампате нову линију, тако да смо пређите на одштампати следећи ред.
И то је то за жреб.
>> Дакле, сада идемо даље да се креће.
Сада, пролазимо потез, на плочицу да корисник је ушао у игру - они
унесите плочица желе да се крећу - и ти би требало да се врати боол, тако
истинито или лажно, у зависности од да ли је то потез је заправо
важи - да ли то може бити плочица преселио у празан простор.
>> Дакле овде, ми изјављујемо локалну променљиву, тиле_1 и тиле_ј, који ће
бити сличан бланк_и и бланк_ј, осим да ће то пратити
положај плочица.
Сада овде, ми ћемо користити бланк_и и бланк_ј и рећи све право, тако
овде је празан на табли.
>> Сада, је плочица изнад празан?
Је плочица са леве празан?
Је плочица са десне празан?
Да ли је плочица испод празан?
Дакле, ако плочица је у било којој од оних позиције, онда знамо да плочица
може да се помера у празном делу и празно може бити премештена на место где
плочица тренутно је.
>> Дакле овде, ми кажемо ако одбор на позицији бланк_и минус 1 бланк_ј.
Дакле ово говори је плочица изнад тренутног празан?
А ако је тако, идемо да се сетим то је положај плочица.
Плочица је у позицији бланк_и минус 1 и бланк_ј.
Сада прво, имамо и овај чек овде, тако је бланк_и
већи од 0.
>> Зашто желимо да урадимо?
Па, ако је празан у горњем реду одбора, онда ми не желимо да
изгледају горе празно за плочице од не постоји ништа изнад врха
ред одбора.
Овако можете завршити добијање нешто као сегментације квара или
ваш програм може само радити на неочекиване начине.
Дакле, ово је да се уверите да ми не погледати на местима која нису важећа.
>> Сада ћемо да урадимо исту ствар за све друге могуће комбинације.
Дакле овде, ми тражимо испод празно да видим да ли је то плочица.
И ми такође морамо да будемо сигурни да смо не на доњем реду, или ћемо
не би требало да изгледа за плочице.
Овде ћемо да погледамо лево од празно да видим да ли је плочица.
И ми не би требало да изгледа на лево ако смо у колони са леве стране.
И овде ћемо да погледамо на Право на празно, а ми не треба
погледати на десно ако смо у крајњем десном колони.
>> Дакле, ако се ниједна од тих ствари су истините, то значи плочица није била поред
на празно и можемо вратити фалсе.
Потез није био валидан.
Али, ако је један од оних била истина, онда на ова тачка, ми знамо да је и тиле_и
тиле_ј су једнаки положај плочица.
И тако, можемо ажурирати одбор на позиције тиле_и и тиле_ј.
Знамо нова вредност ће бити празно и да је положај бланк_и
бланк_ј, која је била оригинална празно - ми знамо плочица ће
померите тамо.
>> Обратите пажњу да не стварно треба да урадите прави своп овде, јер ми знамо
Вредности које треба да се убаци у тим позицијама.
Ми не треба привремени променљива око.
>> Коначно, треба да се сетимо да смо имамо глобалне варијабле које су
праћење положаја од празно.
Зато желимо да ажурирате положај празно да буде тамо где плочица
првобитно је било.
Коначно, ми смо се вратили прави од потез био успешан.
Успешно смо заменили празно са плочица.
>> У реду, тако да смо прошле Потребно је да проверите победио.
Дакле, освојио слично враћа боол где истина ће указују на то да
корисник је победио.
И лажно се указује на то да Игра је још увек дешава.
Корисник није освојио.
Дакле, ово ће бити прилично супротно од инит, где прва,
запамтите, ми смо иницијализирате одбор до 15, 14, 13, 12, итд.
Док победили, ми желимо да проверите да ли плоча је 1, 2, 3, 4, 5, и тако даље.
>> Дакле, идемо да покрене наш супротстави до 1 од то топ
лево одбора треба да буде.
А онда ћемо петљи преко целог табли.
Хајде да игноришу овај услов за секунду.
И овај услов је само да Провера је одбор на тој позицији
једнака садашњих тачке?
Ако је тако, повећавати рачунати тако да следећи положај гледамо је један виши
од положаја смо у праву сада.
>> Па тако смо добили горњи леви треба да буде 1.
Прираст рачунати на 2.
Погледајте на следећој позицији.
Да ли је ово 2?
Ако је тако, повећавати бројање до 3.
Следећа позиција, ово је 3?
Ако је тако, повећавати бројање до 4, и тако даље.
Дакле, ако постоји било какав став о одбор да не равно наше бројање,
онда желе да се врате, јер лажна да значи да постоји нека плочица која је
не у правилном положају.
>> Дакле овде, шта је ово стање ради?
Па, сетите се да је празан требало да иду у доњем десном углу.
И вредност празног а можда и није нужно једнака вредност
одговарају да ће бити постигнут у доњем десном углу.
Дакле, ми смо конкретно желите да проверите да ли сам једнако једнако Д минус 1 и ј екуалс
једнако Д минус 1 - који се каже да смо траже у доњем десном
одбор - онда смо управо жели да настави.
Желимо да прескочите овај итерација у петљи за.
>> И тако, ако успемо да се кроз ово угнеждена за петљу, то значи да
није било плочица који је био у Неправилан положај.
И ми смо се пробије из петље и долазе овде, где можемо да се врате тачно.
Све плочице су у правилним позицијама а то значи да корисник има
победио.
И то је то.
Моје име је Роб Боуден, а то је било 15..