Stundas uzdevums: Analizēt spēles stāvokli un izstrādāt algoritma sazarojumus, lai programma spētu patstāvīgi pieņemt lēmumus un reaģēt uz dažādām spēlētāja situācijām.
2.6.1. Lasa un izpilda algoritmus ar sazarojumiem; 5.2.1. Kritiskā domāšana problēmu risināšanā.70 min darba sadalījums: 1. uzdevums (~20 min) - atjauno teorijas piemēru vai minimālo prototipu; 2. uzdevums (~25 min) - pielieto to galvenajā uzdevumā; 3. uzdevums (~25 min) - pārbaudi rezultātu, izlabo kļūdas un tikai beigās pieraksti vienu secinājumu. Papildus/4. līmeņa uzdevums ir paredzēts tikai tad, ja pamatdarbs ir pabeigts.
Pirms sāc: izmanto iepriekš apgūto un šīs lapas teorijas/koda piemērus. Ja vajadzīga jauna komanda vai rīks, vispirms atrodi tās paraugu teorijas sadaļā.
Dators nesaprot vārdu "varbūt". Tas atpazīst tikai divus stāvokļus: true (patiess) un false (aplams). Lai spēle pati saprastu, vai spēlētājs ir uzvarējis, mēs izmantojam If/Else (Ja/Citādi) blokus un operatorus.
| Kods | Ko tas dara? | Piemērs spēlē |
|---|---|---|
=== |
Precīzi vienāds (Svarīgi: trīs vienādības zīmes!) | dzivibas === 0 (Vai esi miris?) |
!== |
Nav vienāds | atslega !== true (Nav atslēgas?) |
> un < |
Lielāks / Mazāks | punkti > 100 |
&& |
UN (Abiem nosacījumiem jāizpildās) | punkti > 50 && laiks > 0 |
|| |
VAI (Vismaz vienam jāizpildās) | dzivibas === 0 || laiks === 0 |
Pareizais rakstības stils (Sintakse):
if (punkti >= 100) {
console.log("Uzvara!"); // Notiks tikai tad, ja nosacījums ir TRUE
} else {
console.log("Turpini cīnīties!"); // Notiks visos citos gadījumos (FALSE)
}
Šis ir īss iesildīšanās uzdevums. Nokopē sagatavi, ielīmē to pareizajā koda vietā un palaid. Šeit pietiek droši izmēģināt tēmu 3.3 Loģiskie operatori un sazarojumi (If/Else); detalizētu izpratni veidosi nākamajos uzdevumos.
Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.
if (punkti >= 100) {
console.log("Uzvara!"); // Notiks tikai tad, ja nosacījums ir TRUE
} else {
console.log("Turpini cīnīties!"); // Notiks visos citos gadījumos (FALSE)
}
script.js failā vai lapas esošajā skripta daļā.Pievieno šīs stundas paņēmienu kā nelielu, lietotājam redzamu projekta daļu.
script.js un pārliecinies, ka mainīgie let punkti = 0; let dzivibas = 3; ir definēti faila augšā.<p id="statuss"></p> index.html.parbauditStavokli() ar if/else if/else blokiem: uzvara pie 100 punktiem, beigas pie 0 dzīvībām, citādi "Turpinās".parbauditStavokli() pēc katras izmaiņas punktos vai dzīvībās.punkti = 100 konsolē - pārbaudi, ka parādās "Uzvara!".=== ir rakstīts kā =.git commit -m "Add game state check with if/else".Pārbaudi, vai algoritms darbojas paredzami vairākās situācijās.
punkti = 0; parbauditStavokli(); - pārbaudi, ka rāda "Turpinās".punkti = 100; parbauditStavokli(); - pārbaudi, ka rāda "Uzvara!".punkti = 0; dzivibas = 0; parbauditStavokli(); - pārbaudi, ka rāda beigu ziņojumu.dzivibas === 1, rāda "Pēdējā dzīvība!".dzivibas = 1; parbauditStavokli();.dzivibas <= 0, nevis tieši === 0.Ja pamatdarbs ir pabeigts, paplašini projektu ar vienu nelielu programmētu uzlabojumu.
let laiks = 60; un elementu <p id="taimeris">60</p>.notikums(), kas samazina laiku un atjauno ekrānu.parbauditStavokli() ar nosacījumu: ja laiks <= 0, rāda "Laiks beidzies!".laiks = 1 un nospied pogu - pārbaudi, ka parādās pareizais ziņojums.git commit -m "Add timer-based game over condition".if (parole = "777"), kods nevis pārbaudīs, bet gan nomainīs paroli un vienmēr atļaus ieeju. Vienmēr izmanto ===!{}: Katram if, else if un else blokam ir nepieciešamas savas figūriekavas.else if blokos: Vienmēr sāc pārbaudi no visstingrākā/lielākā nosacījuma (piem. > 1000) uz mazāko. Dators lasa kodu no augšas uz leju!let spelesPunkti = 850;
let irAtslega = true;
// 1. Vienkāršs If/Else
if (spelesPunkti >= 1000) {
console.log("Uzvara! Izcils sniegums.");
} else {
console.log("Spēle turpinās. Krāj punktus!");
}
// 2. Else If un Loģiskais operators (&&)
if (spelesPunkti >= 500 && irAtslega === true) {
document.getElementById("rezultats").innerText = "Tu atbloķēsi klases bonusa uzdevumu!";
} else if (spelesPunkti >= 500 && irAtslega === false) {
document.getElementById("rezultats").innerText = "Tev vajag atslēgu!";
} else {
document.getElementById("rezultats").innerText = "Bīstama teritorija...";
}