>> ZAMYLA Чан: Ајде да се Забавувајте се со петнаесет години.
Петнаесет е првата игра што ќе го добиете да се спроведе и тоа е интерактивна.
Сега, не да се грижите.
Вие не треба да се напише на целата работа сами.
Погледни го дистрибуција код, бидејќи многу на играта структура е веќе
постави за вас.
Таа прифаќа и парсира командната линија аргумент од страна на корисникот и создава
одбор врз основа на таа влез.
Се проверува дали играта е победи и излезите еднаш на корисникот победи на играта.
И да победи на играта, таа добива влез од корисникот и
повици во движење функција.
>> Па ние ќе треба да се спроведува четири функции за играта на Петнаесет,
init, цртаме, потег, и победи.
Прво, да се справи со init.
Во init, за иницијализира, ние ги претставуваме одборот во 2D број низа.
И ова е глобална променлива наречена табла со димензии MAX, и MAX,
максимална димензии на одборот.
Сега, вистинската димензија на одборот е даден од страна на корисникот, претставен во
на цел број D, што може да да биде помал од МАКС.
Но, во C, не можете да ја намалите големината низи, па си заглават со
дека максимална димензија.
>> Вашата работа во init е да се доверат вредностите на одборот
со точната вредност.
Сега, видовме 1D низи, но како да 2D низи работа?
Има индекс на ред, нула индексирани како и секогаш, а потоа, исто така, на
колоната.
И ќе пополните вашиот мрежа во опаѓачки вредности, исто како и оваа.
Мрежа, 0, 0, ред 0, колона 0, е 8, мрежа 0, 1 е 7.
Ова е за пример, каде што d, малку d, е 3.
>> Сега, на одборот во Петнаесет исто така мора да содржат празно плочка, ако некогаш сте
играа со физичката игра.
Но, одборот е цел број низа, така сите вредности мора да бидат цели броеви.
Па тоа е до вас да одлучите цел број вредност да претставуваат празно плочка.
Да се ​​иницијализира вашиот форум, можете да го користите јамка структури да ги содржат
почнувајќи држава на управниот одбор, каде одбор i j претставува елемент на
ред i и колоната j.
Тие почнуваат во опаѓачки редослед, и се сеќавам, дека ако бројот на плочки
е чудно, тогаш ви се случува да мора да трампа на локацијата на 2 и 1.
Па таму, ние имаме иницијализира одбор.
>> Сега, дека ние сме се иницијализира нашите одбор, тоа е време да го подготви.
Ждрепката ќе се печати на моменталната состојба на одбор, но треба да бидете сигурни дека
да се печати плочки во истиот редослед дека сте ги иницијализира.
И исто така ќе треба да го форматирам вашите броеви правилно.
Затоа што ние би можеле да имаат едноцифрена бројка и двоцифрена, тогаш ќе сакате да
печати празно место пред било едноцифрени броеви.
Го користите дека со користење на случаеви -.
>> Но запомнете нашите празни места.
Ние не сакаме да се печати вистинскиот број дека ние сме избрани да ги претставуваат
таа празна простор во одборот, но ние исто така не сакаат да се печати ништо на сите.
Така што можете да направите е да се дефинира симбол или што го претставува
празно плочка.
Во претходните примери што сум избран за долни црти, и можеш само печати
дека секогаш кога ќе стигнат до празни простор во вашиот нерешено функција.
>> Па Ждрепката ќе се вгнездени јамки.
Нешто како ова.
За секој ред, а потоа за секоја вредност во ред, си оди за да се печати
вредност во овој простор.
Откако сте печатени сите вредности во ред, тогаш ќе
може да печати на нова линија.
Се сеќавам дека за да вашата нерешено функција мора ехо или огледало на цел
во вашиот иницијализира функција.
>> Сега дека сте иницијализира на одборот и дека сте го извлечат, време е да ги споделите со
корисникот да го уреди и да ги направат своите потези.
Значи во Fifteen.c функција, Програмата трае влез од корисникот и
тогаш повици во движење функција, минувајќи на бројот на плочка дека
корисникот сака да се движат.
Сега, да бидат внимателни.
Ова е вистинскиот број на плочка а не неговата вистинска позиција.
Значи, вие ќе треба да се бараат плочка е позиција да знае каде е.
>> Сега, вие треба само да им овозможи на корисникот да направи потег, ако тоа е легално.
Правно потег е било плочка што е во непосредна близина на празни плочка.
Тоа значи, над и под, да на лево и на десно.
Па ќе треба да се знае каде празно плочка е како добро.
Сега, за секој потег сте во потрага за корисниците плочка, но тоа е веројатно
не најдобро да барате празно плочка секој пат, бидејќи сте го прави тоа
секој пат кога корисникот сака да се движат.
Така, наместо, тоа е најдобро да се сети каде празно плочка е со користење на некои
добро име променливи.
Значи откако ќе им овозможи на корисникот да ги направат своите се движи, тие се на добар
начин да се победи на играта на петнаесет години.
>> Да победат во играта на Петнаесет, на плочки мора да биде во одредена цел, а
го освои функција проверува дали играта е победи.
Тоа Враќа true ако играта е победи и Плочите се во правилен ред,
и false.
Па да победат во играта на Петнаесет, плочки треба да се зголемува цел, со
празно плочка во долниот десен агол.
Па како не ви се провери дали корисникот се пресели на одборот во право
ориентација?
>> Добро, ќе iterate во текот на одборот и провери вредности да бидете сигурни дека
тие се во право место.
Да го направите ова, можете да го користите вгнездени за петелки исто како што направи
во ждрепката и во init.
Постојат неколку начини за да се провери ја и валидирајте ја дали членската група е
точни и победничка формирање, иако.
Ако одите од лево кон десно, почнувајќи од горниот ред надолу, а потоа на секои
број мора да биде поголема од претходниот.
Бидат внимателни околу она што вредност сум одбрале за вашиот празно плочка иако.
>> Или можете да го користите контра променлива се осигура дека секоја вредност е во место, ако
ќе излезе со некој вид на формула да ја претставува оваа.
Па да се забавуваат експериментира со математика.
Откако сте излезе со еден начин, враќањето Точно еднаш на корисникот е добитник на играта.
Но ако некој вредност е лажен, враќањето Лажни, корисникот треба да продолжи движат
бидејќи тие не се добива играта.
Откако ќе ја имплементираат оваа проверка и, заедно со иницијализира, цртаме, и се движат,
ќе завршите со играта на петнаесет години.
Честитки и забавувај се игра.
Моето име е Zamyla и ова е CS50.