>> ZAMYLA CHAN: Нека да има Забавлявайте се с Fifteen.
Fifteen е първата игра, която можете да получите за изпълнение и това е интерактивен.
Сега, за да не се притеснявате.
Вие не трябва да се напише цялата работа сами.
Вижте кода на разпределение, тъй като много от структурата на играта е вече
създаде за вас.
Той приема и прави разбор на командния ред аргумент от страна на потребителя и създава
борда на базата на този принос.
Тя проверява, ако играта е спечелена и изходи След като потребителят е спечелил играта.
И за да спечели играта, той получава въвеждане от потребителя и
призовава функцията Move.
>> Така че ние ще трябва да се изпълнява четири функции за играта на петнадесетте,
първоначален, рисуват, ход, и спечели.
Първо, нека да се справи с първоначален.
В първоначален, за инициализиране, ние представляваме дъската в 2D число масив.
И това е глобална променлива, наречена дъска с размери MAX и MAX,
максималните размери на дъската.
Сега, действителното измерение на борда е дадено от потребителя, представени в
цялото число г, което би могло да бъде по-малко от MAX.
Но, в C, не можете да промените размера на масиви, така че сте остана с
че максимален размер.
>> Вашата задача в първоначален, е да се пренесат стойностите на борда
с правилната стойност.
Сега, ние сме виждали 1D масиви, но Как се работи с 2D масиви?
Има индекс на реда, нула индексира както винаги, а след това и на
колоната.
И вие ще попълните Вашите решетка в низходящ стойности, точно като тази.
Grid, 0, 0, 0 подред, колона 0, е 8, решетка 0, 1 е седем.
Това е пример, в който г, малко г, е 3.
>> Сега, на борда в Fifteen трябва също съдържа празна плочка, ако някога сте
играе с физическа игра.
Но, борда е цяло число масив, така че всички стойности са целочислени.
Така че това е до вас да решите цяло число стойност да представлява празна плочка.
За да се инициализира борда си, можете да използвате бримкови структури, които да съдържат
началното състояние на дъската, където борда и J представлява елемент на
ред аз и колона к.
Те започват в низходящ ред, и Спомням си, че ако броят на плочки
Странно е, тогава вие ще трябва да сменяте мястото на 2 и 1.
Така че, ние имаме инициализира борда.
>> Сега, че ние сме инициализира ни борда, че е време да го направи.
Draw ще отпечата на текущото състояние на борда, но вие трябва да се уверите,
да отпечатате плочки в същия ред че сте ги инициализира.
И вие също трябва да форматирате номера правилно.
Защото ние може да има единични цифри и двуцифрени стойности, а след това искате да
отпечатате празно място преди всички едноцифрени числа.
Можете да използвате, че с помощта на контейнера -.
>> Но не забравяйте, нашата празно пространство.
Ние не искаме да отпечатате действителния брой , които сме избрали да представляват
че празно място в борда, но ние също не искате да отпечатате нищо.
И така, какво можете да направите, е да се определи символ или характер да представляват
празна плочка.
В предишните примери съм избрал подчертае, и след това просто отпечатате
че всеки път, когато стигнете до заготовката пространство във вашата функция реми.
>> Така ще се направи са вложени за цикли.
Нещо като това.
За всеки ред, а след това за всяка стойност в реда, ти започваш да се отпечата
стойност в това пространство.
След като сте се отпечатва всички стойности в ред, тогава ще
да отпечатате нов ред.
Не забравяйте, че за да може вашия дроу функция трябва да ехо или копирате ред
във вашата инициализира функция.
>> Сега, когато се инициализира на борда и че сте го привлече, че е време да споделите
потребителят го редактирате и да направи своите ходове.
Така във функцията Fifteen.c, на програма Приема вход от потребителя и
след това извиква функцията ход, минавайки в броя на плочките, че
потребител иска да се движи.
Сега, бъдете внимателни.
Това е действителният брой на плочката а не реалното му положение.
Така че, ще трябва да търсите за плочки позиция да знае къде се намира.
>> Сега, вие трябва да се даде възможност само на потребителя да направи ход, ако това е законно.
A ход е някоя керемида, която е съседен на празен плочката.
Това означава, че по-горе и по-долу, за да наляво и надясно.
Така че ще трябва да се знае къде празната плочката е добре.
Сега, за всеки ход, които търсите плочката на потребителите, но това е може би
не най-добре да потърсите празната плочка всеки път, защото го правиш
всеки път потребител иска да се движи.
Така че, вместо това, че е най-добре да си спомня къде празната плочка е с помощта на някои
добре на име променливи.
Така че, след като се даде възможност на потребителя да направи своята ходове, те са добре на тяхното
начин за спечелване на играта на петнадесетте.
>> За да спечели играта на петнадесетте, плочките трябва да бъде в определен ред, и
спечелената функция проверява дали играта е спечелена.
Тя връща True, ако играта се печели и плочките са в правилния ред,
и False в противен случай.
Така че, за да спечели играта на петнадесетте, керемиди Трябва да бъде възходящ ред, с
празна плочка в долния десен ъгъл.
Е, как да се провери дали потребителят е преместен на борда в правото
ориентация?
>> Е, ще обхождане на борда и проверите стойностите да се уверите, че
те са на правилното място.
За да направите това, можете да използвате вложена за линии точно като теб направиха
в равенство и в първоначален.
Има няколко начина да се провери и валидира дали на борда е
коректен и печеливша формация, че.
Ако отидете от ляво на дясно, като се започне от най-горния ред, после всеки
номер трябва да бъде по-голяма от предишната.
Бъдете внимателни за това, което ценим съм избран за вашата празна плочка все пак.
>> Или можете да използвате брояч променлива да се гарантира, че всяка стойност е на мястото си, ако
можете да излезе с някаква формула, която да представлява това.
Така че да се забавляват експериментират с математиката.
След като излезе с начин, връщане True след като потребителят е спечелил играта.
Но ако някоя стойност е неправилна, връщане False, потребителят трябва да продължи да се движи
защото те не са спечелили мача.
След като решите да реализирате тази проверка и заедно с инициализира, рисуват, и да се премести,
сте готови за игра на петнадесетте.
Поздравления и да се забавляват играят.
Моето име е Zamyla и това е CS50.