Begrepp

Step

För att få apan att gå ett bestämt avstånd, så behöver vi skriva "step X", X står för det antal steg som vi vill att apan går, till exempel "step 10".
"step" är en funktion: ett antal kommandon som ska utföra en specifik handling. "step 20" är en sats som är sammansatt av funktionens namn (step) och ett argument. Argumentet till "step" är det tal som representerar antalet steg som vi vill att apan ska gå. I "step 20", är argumentet 20.
I det här fallet, har programmeraren som gjort CodeMonkey sparat oss lite arbete genom att redan ha definierat instruktionerna som gör att "step"-funktionen fungerar. När man programmerar är det vanligt att man använder funktioner som andra har gjort.
Klicka här för att läsa mer om att definiera funktioner.
Klicka på "step"-knappen för att skriva ordet "step" i din kod.

Stepgif

Turn

"turn" ska följas av en riktning (vänster/höger) eller ett gradantal (45, 90, 180).
Exempel: "turn right", "turn 90".
"turn" är en funktion: ett antal kommandon som ska utföra en specifik handling. "turn left" eller "turn 45" är satser som är sammansatta av funktionens namn (turn) och ett argument. Argumentet till turn är antingen en riktning ("right" eller "left") eller ett tal som representerar gradantal (45, 90, 180). Till exempel är argumentet "left" (vänster) i "turn left".
I det här fallet, har programmeraren som gjort CodeMonkey sparat oss lite arbete genom att redan ha definierat instruktionerna som gör att "turn"-funktionen fungerar. När man programmerar är det vanligt att man använder funktioner som andra har gjort.
Klicka här för att läsa mer om att definiera funktioner.
Klicka på "turn"-knappen för att skriva ordet "turn" i din kod.

Turnrightgif

Left / Right

"left" och "right" används efter funktionen "turn" för att göra så att apan rör sig i önskad riktning.
Strikt beskrivet, är "left" och "right" konstanter som representerar värdena 90 respektive -90. Därför är, "turn left" ekvivalent med "turn 90", och "turn right" är ekvivalent med "turn -90".
Klicka på "left"- eller "right"-knappen för att skriva ordet "turn" i din kod.

TurnTo

"turnTo" är ett annat sätt att vända sig på, istället för att använda riktning eller grader, kan vi be apan att vända sig mot ett specifikt objekt, till exempel: "turnTo banana".
När vi använder "turnTo" identifierar datorn att det finns ett annat objekt i närheten, bredvid vår apa, och genom att använda namnet på objektet, vet datorn åt vilket håll apan ska vända sig.
Objekt är allt på skärmen som vi kan interagera med, som buske (bush), bro (bridge), banan (banana) och sköldpadda (turtle).
"turnTo" är en funktion: ett antal kommandon som ska utföra en specifik handling. "turnTo banana" är en sats som är sammansatt av funktionens namn (turnTo) och ett argument. Argumentet till turnTo är det objekt som vi vill att apan ska vända sig mot. I "turnTo banana", är argumentet "banana".
I det här fallet, har programmeraren som gjort CodeMonkey sparat oss lite arbete genom att redan ha definierat instruktionerna som gör att "turnTo"-funktionen fungerar. När man programmerar är det vanligt att man använder funktioner som andra har gjort.
Klicka här för att läsa mer om att definiera funktioner.
Klicka på "turnTo"-knappen för att skriva ordet "turnTo" i din kod.

Turntogif

Times Loop

En enkel loop är en sekvens av instruktioner som repeteras ett bestämt antal gånger. Här är ett exempel:
Loopexample
I det här exemplet kommer apan att upprepa "step 5, turn left" tre gånger. Kommandona som vi skriver i loopen ska skrivas under den med ett tabsteg in från kanten (på skärmen visas det som ....). Du kan göra det genom att trycka på "tab"-knappen på tangentbordet.
Att programmera är inte bara att skriva korrekta satser i rätt ordning; det handlar också om att kunna skriva kod som är tydlig, kort och hållbar. Så istället för att skriva så här:
step 10
turn left
step 10
turn left
step 10
turn left
step 10
turn left

Kan vi skriva så här:
4.times->
    step 10
    turn left

Båda koderna kommer att utföra samma sak; skillnaden är att den andra koden är skriven som en loop. Innebörden är att "step 10, turn left" repeteras fyra gånger, och sedan är loopen klar. Så fort en loop är klar hoppar datorn vidare till nästa sats.
Klicka på "times"-knappen för att konstruera times-loop i din kod: "3.times - >"

Timesgif

Variables

Variable

Tilldelning av variabler. En variabel är som en lagerplats: vi lagrar data där och vi hämtar ut den enbart när vi ska använda den. En tilldelning av en variabel består av en identifierare som tilldelas ett värde med hjälp av likhetstecknet "=".
X är identifieraren; det kan vara en bokstav eller ett ord. Identifieraren är variabelns namn. När vi vill använda variabelns värde skriver vi namnet, till exempel, "step X". I det här exemplet vill vi att apan ska gå ett avstånd som är lika mycket som värdet av variabeln, i det här fallet 10.
Den här uppdelningen av namn och värde tillåter oss att använda namnet oberoende av vilken information den representerar. Vi kan använda X när vi skriver programmet, utan att veta vilket värde den kommer att ha när kommandot genomförs.
I CodeMonkey används variabler för att anropa funktioner med ett konstant värde. En funktion är ett antal kommandon som ska utföra en specifik handling. Varje funktion har ett namn och ett argument. Vi kan använda variabler som argument till "step" eller "turn", och till och med för antalet gånger som en loop ska köras.
Ett annat exempel på hur vi kan använda variabler som argument är genom att använda två satser. "x = distanceTo banana", och "step x". I det här exemplet kommer datorn att mäta avståndet mellan apan och bananen och lagra det i variabeln x. I den andra satsen kommer identifieraren x att byta värde till det uppmätta värdet och fungera som argument till "step".
Klicka här för att läsa mer om distanceTo.

Variablesgif

Say

Kommandot "say" kommer att göra så att en pratbubbla dyker upp bredvid apan med texten som vi har skrivit, till exempel:
Say1
kommer att göra så att apan säger "Boo!".
Vi använder citattecken ("") runt fraser som vi vill att apan ska säga för att datorn ska förstå att texten vi skrivit inte är ett namn på variabler eller funktioner.
Försök att använda "say" när det finns en råtta i närheten.
Klicka på "say"-knappen för att skriva ordet "say" i koden.

Saygif

distanceTo

"distanceTo" används oftast tillsammans med en annan funktion som till exempel "step" eller "say", och ett objekt. Att använda "distanceTo" är som att ställa frågan: "Vad är avståndet till bananen?" Svaret är ett tal, uträknat av datorn, som representerar avståndet.
Exempel:
Distanceto1
När det används, mäter datorn avståndet mellan apan och objektet (banana), sedan använder datorn resultatet till att fungera som argument till "step". Det kommer att spara oss tid och kommer också att vara till hjälp om vi senare inte vet objektets placering.
Ett annat sätt att använda "distanceTo" är med en variabel:
x = distanceTo banana
step x

I det här exemplet mäter datorn avståndet mellan apan och bananen och kommer sedan att tilldela identifieraren X med det uppmätta talet, som kommer att fungera som argument till "Step".
"distanceTo" är en funktion: ett antal kommandon som ska utföra en specifik handling. "distanceTo banana" är ett statement som är sammansatt av funktionens namn (distanceTo) och ett argument. Argumentet till distanceTo är det objekt som vi vill mäta avståndet till , som banan, eller buske (bush). Till exempel, i "step distanceTo banana", är argumentet till distanceTo "banana", och det resulterade talet är argumentet till step.
I det här fallet, har programmeraren som gjort CodeMonkey sparat oss lite arbete genom att redan ha definierat instruktionerna som gör att "turnTo"-funktionen fungerar. När man programmerar är det vanligt att man använder funktioner som andra har gjort.
Klicka här för att läsa mer om att definiera funktioner.
Klicka på "distanceTo"-knappen för att skriva ordet "distanceTo" i din kod.

Xdistancetogif

For loop

En for-loop används när vi har en samling objekt, och vi vill repetera en handling som relaterar till var och en av dem specifikt. For-loopen kommer att fortsätta ända tills alla handlingar är utförda på alla objekt i samlingen (array).
Forloopgif
For-loopen relaterar till två objekt: loop-variabel och array. Loop-variabeln är ett namn som vi tilldelar; det kan vara vilket namn som helst, som i variable assignments. Det är vanligt att namnge dem efter första bokstaven i arrayen. En array är en samling objekt som hör ihop. Till exempel kan vi ha en array som består av sex bananer. Varje banan får sitt eget namn, som bananas[0] och alla bananer får ett namn tillsammans, som är namnet på arrayen, som bananas.
När datorn exekverar en for-loop, ersätter den variabelnamnet med det första objektet i arrayen. När det är gjort med det första objektet, går den vidare till det andra och så vidare. Loopen kommer inte att stanna förrän alla handlingar är utförda på alla objekt i arrayen.
Till exempel har vi den här for-loopen:
for b in bananas
....turnTo b
....step distanceTo b

Första gången som loopen körs, kommer datorn att tolka det så här:
....turnTo banana[0]
....step distanceTo banana[0]

Nästa gång kommer den att börja med nästa banan:
....turnTo banana[1]
....step distanceTo banana[1]

och så vidare tills alla bananer är fångade.

Skillnaden mot times.loop
En times.loop upprepar satsen ett angivet antal gånger, på samma sätt varje gång.
For-loopen jämför antalet objekt i arrayen och kommer att stanna enbart när alla handlingar är utförda på alla objekt i arrayen.

Hur läser datorn en for-loop
for (här får datorn veta att det kommer en for-loop)
b (loop-variabeln)
in (del av for-loopen)
bananas (namnet på arrayen)
....turnTo b (b refererar till ett objekt i arrayen)
....step distanceTo b (b refererar till ett objekt i arrayen)
Istället för att skriva hela namnet på arrayen efter varje funktion, måste vi använda namnet på loop-variabeln.

Nested loops
Double forloop
Vi kan också använda en for-loop inuti en for-loop. Exemplet ovan är hämtat från uppgift #60.
En nested loop (nästlad loop) är en loop i en loop. När vi använder en nested for-loop, exekveras satsen inuti loopen upprepade gånger. För varje element i den yttre loopen, exekveras den inre loopen från början till slut, och sedan upprepas hela processen med nästa element i den yttre loopen, och så vidare.
Klicka på "for"-knappen för att skriva följande text i din kod. Observera kommentarsraden:
Forcode

Grab()/Drop()

"grab()" och "drop()" är funktioner utan argument som används från och med kapitel 3 för att hjälpa råttan att samla tändstickor.
En funktion är ett antal kommandon som ska utföra en specifik handling.
En funktion utan ett argument utför en handling, men kräver inte att vi skickar någon input, vilket betyder att vi inte behöver anropa funktionen tillsammans med ett objekt eller tal. Istället skriver vi tomma parenteser.
I det här fallet, har programmeraren som gjort CodeMonkey sparat oss lite arbete genom att redan ha definierat instruktionerna som gör att "grab"- och "drop"-funktionerna fungerar. När man programmerar är det vanligt att man använder funktioner som andra har gjort.
Klicka här för att läsa mer om att definiera funktioner.
Klicka på dra- eller släpp-knapparna för att skriva orden"grab()" eller "drop()" i din kod.

Grabdropgif

Comment


Comment

Detta är ett kommentarsfält, som i koden börjar med symbolen #. Datorn läser inte detta som en instruktion. Istället använder programmerarna kommentarsfältet för att förstå varandra, när de skriver och läser koden. I CodeMonkey används kommentarsfälten för att ge tips, instruktioner och vägledning.

Function

En funktion är ett antal kommandon som ska utföra en specifik handling. Datorn kommer bara att exekvera funktionen när vi anropar den, det vill säga använder den i vår kod.
Funktioner som behöver ett argument skriver vi så här:
function_name = (argument) ->
Nedanför skriver vi satsen som vi vill att datorn ska utföra om och när vi anropar den här funktionen.
Det här är ett exempel hur man definierar funktionen "goto", den här funktionen kommer att få apan att röra sig mot ett objekt:
Gotofunction
Namnet på en funktion används för identifikation. Programmerare ger funktionen ett namn som representerar vad den gör, vilket gör koden lättläst.
När vi anropar en funktion i vår kod, behöver vi para ihop namnet på funktionen med namnet på objektet som vi vill att handlingarna ska utföras med, till exempel: "goto banana" kommer att göra så att apan går mot bananen. När vi en gång har anropat funktionen med argumentet "banana", ersätter datorn argumentet "t" med "banana".
Functiongif
När vi har definierat en ny funktion i CodeMonkey, kommer en ny tom knapp att dyka upp med namnet på den nya funktionen.
Klicka på den nya funktionsknappen för att skriva följande text i din kod. Observera kommentarsraden:
function_name = (argument) ->
....# Din kod är här

Until loop

En until loop innehåller ett kodblock som vill fortsätta att köras tills (until) ett specifikt villkor är uppfyllt, det här villkoret kallas för ett loop-villkor. Datorn kollar upp villkoret i början, och om svaret är falskt, kommer loopen att fortsätta. Den kommer inte att stanna förrän svaret är sant.
Om vi inte är uppmärksamma, kan vi få en "until-loop" vars villkor aldrig uppfylls. Då kommer loopen att fortsätta för alltid och kan till och med orsaka att programmet kraschar.
Untilgif
I CodeMonkey använder vi två loop-villkor: "near" och "cat.sleeping"
Här är ett exempel på en loop med ett "near"-villkor:
Untilnear
Klicka här för att läsa med om "near"-villkoret.

Här är ett exempel på en until-loop med ett "cat.sleeping"-villkor:
Untilcat
Klicka här för att läsa med om cat.sleeping-villkoret.

Vad är skillnaden mellan en for-loop och en until-loop?
En for-loop utför en uppsättning handlingar på alla objekt i en samling och sedan stannar den.
En until-loop kommer att fortsätta tills ett särskilt villkor är uppfyllt, och om vi inte är försiktiga, kan den pågå för alltid.

Klicka på "until"-knappen för att skriva följande text in din kod. Observera kommentarsraden:
until condition
....# Din kod är här

Near

"Near" är en typisk funktion som används som villkor till en "until-loop". Värdet som returneras av funktionen "near" kommer att avgöra när until-loopen kommer att stanna.
Untilnear
"near" är en funktion: ett antal kommandon som ska utföra en specifik handling. "until near match" är en sats som är sammansatt av "until", namnet på en funktion (near) och ett argument. Argumentet till "near" är objektet som vi vill att apan eller råttan ska vara nära. Till exempel, i "until near match", är argumentet match.
I det här fallet, har programmeraren som gjort CodeMonkey sparat oss lite arbete genom att redan ha definierat instruktionerna som gör att "near"-funktionen fungerar. När man programmerar är det vanligt att man använder funktioner som andra har gjort.
Klicka här för att läsa mer om att definiera funktioner.
Klicka på "near"-knappen för att skriva ordet "near" i din kod.

Untilgif

Sleeping/wait()

I kapitel 3 introducerar vi katten. Katten kommer att attackera råttan om han ser den, så vi behöver vänta tills katten har somnat. Det gör vi genom att skriva "cat.sleeping()". Vi behöver använda "cat" och en punkt (.) så att datorn vet att vi väntar på att katten ska somna.
Untilcatgif
"sleeping" är en funktion utan argument, som vi kan använda som loop-villkor.
En funktion är ett antal kommandon som utför en specifik handling.
En funktion utan ett argument utför en handling, men kräver inte att vi skickar någon input, vilket betyder att vi inte behöver anropa funktionen tillsammans med ett objekt eller tal. Istället skriver vi tomma parenteser.
I det här fallet, har programmeraren som gjort CodeMonkey sparat oss lite arbete genom att redan ha definierat instruktionerna som gör att "near"-funktionen fungerar. När man programmerar är det vanligt att man använder funktioner som andra har gjort.
Klicka här för att läsa med om att definiera funktioner.

"wait()" är också en funktion utan ett argument. Den gör så att apan väntar en sekund och sedan fortsätter med nästa instruktion. I en loop kommer nästa instruktion att vara att kolla av om loop-villkoret är sant. Beroende på om loop-villkoret är uppfyllt eller inte, kommer datorn att lämna loopen eller vänta en gång till, och så vidare. Exempel:
Untilcat

© Codemonkey Studios 2019. All rights reserved.
Spela nu!