Първия код
Нека накараме робота да тръгне напред, след това да се обърне надясно и после пак напред. Това ще стане със следния код:
forward(1)
right()
forward(1)
На първия ред виждате, че пише forward, forward значи напред и с forward(1) казваме на робота да върви напред с 1 квадратче. Ако напишете forward(9) например ще му кажете да върви напред с 9 квадратчета. На следващия втори ред има right() , right значи надясно и с right() казвате на робота да се обърне надясно. И накрая на третия ред отново има forward(1) , вече обясних за него. Научете тези 3 думи, които са на английски, защото ще ви трябват. Сега копирайте кода горе (този, който е от 3 реда), отворете RoboMind и поставете кода вляво, където е мястото за код. Пуснете го като натиснете зеленото триъгълниче в долния ляв ъгъл и ако сте направили всичко правилно робота ще тръгне напред, ще завие надясно и след това отново ще тръгне напред. Все още не сме направили могъщ изкуствен интелект, който да защитава планетата от извънземни, но това е само началото и смятам да ви кажа как да научите робота да прави още по-интересни неща.
Писане на коментари в кода
Погледнете кода долу, по-точно вижте първия ред (първия ред е в зелено, защото е нов и сега ви обяснявам за него). Написал съм един коментар и пред него съм сложил #. Щом съм сложил # отпред робота ще пропусне този ред и ще премине на следващия, така че можете спокойно да слагате # и да пишете някакъв коментар в кода и в този коментар да обясните какво прави въпросния код. # е за писане на коментари.
# Сега ще направим едно кръгче с новия робот
forward(1) # forward значи напред
right() # right значи надясно
forward(1)
Запомнете, че кода, който съм написал със синьо е стария код, за който вече съм ви обяснил какво прави, а кода в зелено е нов код, за който говоря и обяснявам в момента. И като ви показвам нов код вие го копирайте, влизайте в RoboMind, трийте стария код, слагайте новия код на мястото на стария и го пускайте със зелената стрелка, за да го изпробвате.
Как да накараме робота да повтаря действията
Вижте кода долу. Написал съм repeat(4), за да повтори действията 4 пъти (repeat значи повтарям, запомнете го, защото е много важно). И другото нещо, което трябва да се направи е с къдрави скоби { } да се оградят инструкциите, които искаме да се повтарят, така че не забравяйте къдравите скоби.
# Сега ще накараме робота да повтори всичко 4 пъти
repeat(4) # repeat значи повтарям
{
forward(1)
right()
forward(1)
}
Малко по-нагоре в урока съм обяснил къде да сложите този код, така че ако сте забравили вижте малко по-нагоре и си спомнете. И не забравяйте да изтриете стария код от RoboMind преди да сложите този новия. А като сложите нов код натискайте зеления триъгълник в долния ляв ъгъл, за да видите какво ще направи робота.
Ако искате робота да изпълнява инструкциите в къдравите скоби вечно тогава просто махнете четворката, която съм сложил. Ето какво имам предвид:
# С този код робота ще повтаря инструкциите в къдравите скоби вечно
repeat()
{
forward(1)
right()
forward(1)
}
Така вече инструкциите в къдравите скоби ще се изпълняват вечно. Сега върнете четворката, която махнахте от кода защото ще ни трябва. Време е да сейвате робота си и това ще стане като натиснете File, след това Save as..., след това именувате и натискате Save. А сега продължете с урока, за да може вашия прекрасен робот да става все по-добър.
Повтаряне на действие докато има определено условие
Тази карта сигурно ви е писнала, затова ще отворим нова. Натиснете File => Open map и изберете findSpot1.map (гледайте да отворите точно тази карта, за да не ни се обърка плана). Сега мисля да научим робота да върви напред докато вляво от него има препятствие и в момента, в който вляво вече няма препятствие да спира. За целта съм подготвил следния код (в синьо е стария код, а в зелено е новия, който сега ще разучим).
repeat(4) # Да не забравим да върнем четворката, защото искаме действията да се повторят само 4 пъти, а не вечно
{
forward(1)
right()
forward(1)
}
repeatWhile(leftIsObstacle()) # Така робота ще повтаря инструкцията долу в къдравите скоби докато вляво има препятствие
{
forward(1)
}
Както виждате в новия зелен код отново съм сложил # и съм написал коментар, за да бъде кода по-лесен за разбиране. На ред 8 има repeatWhile(leftIsObstacle()) . Вече ви казах, че repeat значи повтарям. Следващата дума в repeatWhile(leftIsObstacle()) е While (while значи докато). Следват още 3 думи и те са left, is и Obstacle и те значат "вляво е препятствие". Задължително запомнете какво значат тези думи. Сега трябва да сте разбрали, че repeatWhile(leftIsObstacle()) казва на робота "повтаряй докато вляво е препятствие". След това трябва да кажем на робота какво да повтаря докато вляво има препятствие и затова съм сложил отваряща къдрава скоба, написал съм forward(1) и съм сложил затваряща къдрава скоба. Важно е да не забравите да сложите forward(1) в къдрави скоби. Вашия робот става все по-умен, усещате го нали? Затова не трябва да се отказвате, трябва да амбицирате и да направите един много добър робот, с който да се гореете и да чувате хората как казват "Вижте какъв интелигентен робот! Този, който го е направил сигурно е голям гений". Хайде сега, напрееееед! Продължавайте с урока.
Сега да накараме робота да изпълнява действия само в случай че има определено условие
Сигурно се сещате, че за да бъде всичко наред трябва да сте отворили картата findSpot1.map . Ето какъв е плана - ако робота види, че вляво от него има бяло петно тогава той ще се обърне наляво, ще отиде върху петното, ще го боядиса в черно и ще се върне назад с 3 квадратчета. Ето:
repeat(4) # Повтаря 4 пъти инструкциите, които са долу в къдравите скоби
{
forward(1)
right()
forward(1)
}
repeatWhile(leftIsObstacle()) # Така робота ще повтаря инструкцията долу в къдравите скоби докато вляво има препятствие
{
forward(1)
}
if(leftIsWhite()) # Ако вляво има бяло петно робота прави това, което е в къдравите скоби долу
{
left() # left значи наляво
forward(1)
paintBlack() # paintBlack значи "боядисай в черно" и кара робота да започне да боядисва с черно
stopPainting() # stopPainting значи "спри да боядисваш" и кара робота да спре да боядисва
backward(3) # с backward казвате на робота да тръгне назад
}
Тук съм сложил if(leftIsWhite()) . if значи ако, left значи вляво, is значи "е", White значи бял. if(leftIsWhite()) означава "Ако вляво е бяло" и с това казваме на робота, че ако вляво от него има бяло петно трябва да изпълни инструкциите, които са по-долу в къдрави скоби.
Готовите скриптове
Сейвайте робота си, (File => Save as...) защото сега ще отворим някой от готовите скриптове, които вървят с RoboMind. За да отворите готов скрипт натиснете File и след това Open. След като сте отворили скрипта ще видите, че най-отгоре в кода под формата на коментар пише на коя карта да пуснете скрипта. Например ако пише да го пуснете на картата maze1.map тогава отворете картата maze1.map като натиснете File, после Open Map и изберете подходящата карта.
Това беше от моя сайт. Още информация за правенето на роботи можете да намерите с Google.com Ако имате проблем, въпрос или искате да кажете нещо, свързано с RoboMind влезте в http://bezplatniigri.com/forum/viewforum.php?f=18