> Tutorial
Vi har redan använt flera standardfunktioner (setWeapon, moveToward osv.). Det är också möjligt att skapa sina egna funktioner, med följande syntax:
functionsumma( x, y ){ x + y }Nyckelordet return, som är valfritt, används för att få funktionen att returnera ett värde. I föregående exempel tar funktionen parametrarna x och y och returnerar deras summa: x + y.
canFinish(enemy)Vår tidigare kod för "finish"-villkoret mot fienden är ganska stor och inte särskilt återanvändbar, så vi lägger den i en funktion.
Vi ska skapa en personlig funktion canFinish(fiende), som tar en fiende och returnerar en boolean som anger om vi kan avsluta honom eller inte.
Vi kopierar finisher-koden in i en funktion som skrivs så här:
nota: kom ihåg att specificera vilket vapen det handlar om för att beräkningen ska fungera. Funktionen returnerar också true om du har tillräckligt med turpoäng för att skjuta tillräckligt många skott på fienden för att han ska dö, och false om han tvärtom överlever (då kan du kanske göra något annat).
Nu kan vi använda vår funktion canFinish i vår huvudkod för att skriva den mycket enklare:
Visste du? Att flytta samma kod flera gånger in i en funktion kallas en Faktorisering.
getClosestCellToUseWeapon(enemy)Du har kanske sett att för att använda vapnet Machine Gun eller senare Laser, måste du vara i linje med fienden.
Du kommer alltså att behöva gå till en cell varifrån du kan använda ditt vapen, istället för att bara gå mot fienden som med Pistolet.
För detta finns standardfunktionen getCellsToUseWeapon, som returnerar alla möjliga celler för att använda ett vapen mot ett mål. Vi måste alltså välja en: den närmaste!
Vi ska alltså skapa en funktion getClosestCellToUseWeapon och använda en for in-loop för att beräkna den cell vars avstånd till oss är kortast:
Vi använder den för att ersätta förflyttningen moveToward:
Om du känner dig bekväm kan du koda funktioner:
estimateDamage(weapon, enemy): beräknar den skada som vapnet weapon kommer att tillfoga enemy.getBestWeapon(enemy): söker bland dina vapen efter det som gör mest skada på enemy.Du kan också:
För att bättre se terrängen och cellerna, tveka inte att använda taktiskt läge genom att trycka på T i strid.
I följande kapitel kommer vi att ta upp svårare aspekter, så ta dig tid att leka med dina funktioner och de begrepp vi har sett tidigare, som redan är tillräckliga för att stiga i rankningen!
Vilken funktion som returnerar kvadraten av ett tal är korrekt?
function kvadrat(x) { return x * x } function kvadrat(x) { x * x } function kvadrat() { return x * x } fonction kvadrat(x) { return x * x }
Vilken funktion beräknar maximum av en lista?
function maximum(lista) { var max = -99999 for (var e in lista) { if (e > max) { max = e } } return max } function maximum(lista) { var max = 99999 for (var e in lista) { if (e < max) { max = e } } return max } function maximum(lista) { var max = 99999 for (var e in lista) { if (e > max) { max = e } } return max } function maximum(lista) { var max = -99999 for (var e in lista) { if (e < max) { max = e } } return max }
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.