Tavs šīs stundas izaicinājums: Izstrādāt un pielietot atkārtoti izmantojamus koda blokus (funkcijas), lai optimizētu spēles loģiku un izvairītos no koda dublēšanās.
2.6.1. Ievēro programmas pieraksta un strukturēšanas labās prakses ieteikumus; 1.3.4. Izvēlas programmu izvēlētā izstrādājuma īstenošanai.Funkcija ir kā recepte – tu to uzraksti vienreiz, bet vari "pagatavot" (izsaukt) cik reizes vien vēlies. Tā ļauj sagrupēt kodu loģiskos blokos.
function, iedodam tai nosaukumu un figūriekavās {} ieliekam kodu, kas būs jāizpilda.saktSpeli();.pieskaititPunktus(10) un pieskaititPunktus(50) izmanto vienu un to pašu funkciju, bet ar dažādām vērtībām.Izveidot vienkāršu funkciju, kas veic konkrētu darbību spēlē (piemēram, atjaunina dzīvības HTML lapā).
script.js failā definē jaunu funkciju: function zaudetDzivibu() { ... }.zaudetDzivibu(); zaudetDzivibu();. Pārbaudi pārlūkā, vai dzīvības patiešām samazinājās par 2!Izveidot elastīgu funkciju punktu pieskaitīšanai, kas spēj pieņemt dažādus lielumus kā "iekšējos mainīgos".
function pieskaititPunktus(daudzums) { ... }.punkti = punkti + daudzums; un izvadi jauno rezultātu konsolē.pieskaititPunktus(10); (pacelta monēta) un pieskaititPunktus(100); (uzvarēts boss). Vēro, kā mainās kopējais rezultāts.Izstrādāt funkciju, kas aprēķina datus (piemēram, spēlētāja līmeni) un nosūta rezultātu atpakaļ galvenajai programmai.
function noteiktLimeni(esosiePunkti) { ... }.if (esosiePunkti > 100) { return 2; } else { return 1; }. Vārds return nozīmē, ka funkcija beidz darbu un "izspļauj" šo vērtību.let mansLimenis = noteiktLimeni(punkti);. Izvadi šo līmeni HTML lapā. Sinhronizē darbu ar GitHub.function start() {...}, bet pārlūkā nekas nenotiek. Tu aizmirsi to izsaukt! Neaizmirsti pievienot start(); faila beigās.let) funkcijas IEKŠPUSĒ, tas "nomirs" brīdī, kad funkcija beigs darbu. Ārpus funkcijas tu to neredzēsi. Tāpēc galvenos spēles datus (punktus, dzīvības) vienmēr definē faila augšā, ārpus jebkuras funkcijas!saktSpeli (bez iekavām), JavaScript tikai sapratīs, ka tāda funkcija eksistē, bet to nepalaidīs. Vienmēr vajag saktSpeli().// Globālie mainīgie (redzami visur)
let spelesPunkti = 0;
// 1. Funkcijas definēšana (ar parametru)
function iegutLaupijumu(lietasVertiba) {
spelesPunkti = spelesPunkti + lietasVertiba;
console.log("Iegūts laupījums! Tagad tev ir " + spelesPunkti + " punkti.");
// 2. Funkcija var saturēt IF blokus!
if (spelesPunkti >= 100) {
document.getElementById("status").innerText = "Jauns līmenis atbloķēts!";
}
}
// 3. Funkcijas izsaukšana dažādās situācijās
iegutLaupijumu(10); // Spēlētājs atrod mazu monētu
iegutLaupijumu(50); // Spēlētājs atrod dārgumu lādi
iegutLaupijumu(50); // Spēlētājs atrod vēl vienu lādi (kopā 110 punkti -> Jauns līmenis!)