3.3. tēma: Loģiskie operatori un sazarojumi (If/Else)

Tavs šīs stundas izaicinājums: 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ā.

Teorija: Kā dators pieņem lēmumus?

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)
}

1. uzdevums: Slepenais kods (If) (20 min)

Izveidot pamatloģiku, kas pārbauda spēlētāja ievadīto paroli un atver "durvis", ja tā ir pareiza.

Izpildes soļi:

  1. HTML failā izveido pogu: <button onclick="parbauditKodu()">Ievadīt paroli</button>.
  2. Savā script.js failā izveido funkciju function parbauditKodu() { ... }.
  3. Funkcijas iekšienē pieprasi lietotājam paroli: let parole = prompt("Ievadi slepeno kodu:");.
  4. Uzraksti if bloku: pārbaudi, vai parole === "777".
  5. Ja nosacījums izpildās, izvadi konsolē paziņojumu: "Durvis atvērtas! Esi sveicināts bāzē.".
  6. Saglabā un pārbaudi lapā, nospiežot pogu un ievadot pareizo kodu. Pēc tam ievadi nepareizu kodu un novēro, ka nenotiek nekas.

2. uzdevums: "Bosa cīņa" (If / Else) (20 min)

Papildināt algoritmu ar alternatīvo rīcību, lai spēle dotu atgriezenisko saiti arī tad, ja spēlētājs zaudē.

Izpildes soļi:

  1. HTML failā pievieno jaunu pogu: <button onclick="uzbruktBosam()">Uzbrukt Bosam!</button>.
  2. JS failā izveido jaunu funkciju un definē bosa dzīvības: let bosaHP = 50;.
  3. Pajautā spēlētājam viņa uzbrukuma spēku: let speks = Number(prompt("Cik stipri sitīsi? (Ievadi skaitli)"));.
  4. Uzraksti if pārbaudi: vai tavs spēks ir lielāks vai vienāds ar bosa HP (speks >= bosaHP)?
  5. if figūriekavām izvadi: "BOSS IR SAKAUTS! Uzvara!".
  6. Tieši pēc if bloka beigām pievieno else { ... } bloku. Tajā izvadi: "Tavs trieciens bija par vāju. Boss tevi iznīcināja. Game Over."
  7. Pārbaudi abas situācijas, ievadot gan lielus, gan mazus skaitļus.

3. uzdevums: Varoņu rangu sistēma (Else If) (20 min)

Izmantot daudzpakāpju pārbaudi, lai spēle spētu klasificēt spēlētāja rezultātu vairākos līmeņos.

Izpildes soļi:

  1. Izveido HTML pogu "Uzzināt savu rangu".
  2. JS failā izveido atbilstošu funkciju, kas ar prompt pajautā spēlētāja iegūtos punktus (pārvērt par skaitli!).
  3. Sāc ar augstāko līmeni: if (punkti > 1000) { alert("Tu esi Leģenda!"); }.
  4. Turpini ar vidējo līmeni: pievieno else if (punkti > 500) { alert("Tu esi Pieredzējis cīnītājs."); }.
  5. Noslēdz ar bāzes līmeni: pievieno else { alert("Tev vēl daudz jāmācās, Iesācēj."); }.
  6. Svarīgi: Pārbaudi savu programmu, ierakstot 1200, tad 600, tad 100. Vai visi trīs paziņojumi strādā pareizi?

4. uzdevums: Izaicinājums ar AND (&&) operatoru (Papildus)

Apvienot divus nosacījumus, lai uzdevums būtu izpildīts tikai tad, ja abas prasības ir izpildītas.

Izpildes soļi:

  1. Pēdējā funkcijā "Uzzināt savu rangu" pievieno jaunu mainīgo: let irVIP = prompt("Vai tev ir VIP pase? (ja/ne)");
  2. Modificē pašu pirmo pārbaudi (Leģendas rangu), izmantojot && operatoru.
  3. Pārveido to šādi: if (punkti > 1000 && irVIP === "ja").
  4. Tagad, lai kļūtu par Leģendu, spēlētājam vajag gan vairāk par 1000 punktiem, gan jāieraksta vārds "ja". Pārbaudi, kā tas strādā!
  5. Neaizmirsti veikt koda saglabāšanu savā GitHub (Commit un Push).

Biežākās kļūdas (un kā tās labot):

Koda piemērs

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 atvērsi zelta lādi!";
} else if (spelesPunkti >= 500 && irAtslega === false) {
    document.getElementById("rezultats").innerText = "Tev vajag atslēgu!";
} else {
    document.getElementById("rezultats").innerText = "Bīstama teritorija...";
}
Konsoles izvade: Spēle turpinās. Krāj punktus!
HTML elementa izvade: Tu atvērsi zelta lādi!
⬅ Iepriekšējā stunda Nākamā stunda ➡