Vienkārša labirinta (ceļa) iziešanu mēs jau pamēģinājām uzprogrammēt, tagad var piestrādāt pie sarežģītākiem gadījumiem. Labirintu sagataves var atrast Interneta meklētājos vai varat uzzīmēt paši.

Ievada piemēri – pirmos 2 labirintus var programmēt ar secīgu komandu virkni, bet racionālāka programma būs, ja lietosim atkārtojumus (Repeat)!

  labir_2      labir_1

Lai labāk izprastu nepieciešamo algoritmu programmas izveidei, izpētiet nākošos attēlus!

labir_6  labir_6_1  labir_atkartot_bloks

Vai tagad varat izdomāt, kāda būs programma taciņas iziešanai? Ja nesanāk, tad skatieties nākošo bildi un, protams, pielabojiet, lai kustība būtu iespējami precīza. Pēc katra nogriežņa veikšanas ielieciet programmā pauzi – gaidīt (Wait). Ja pauzi neieliksiet, tad programma visu izdarīs tik ātri, ka nepaspēsiet pamanīt, kā kustība pa trajektoriju  ir notikusi.

labir_progr

Nākošos 2 labirintus racionālāk programmēt ar ciklu jeb atkārtojumu (piem., Repeat) palīdzību! Pirms tam gan vajag izdomāt, kuras labirinta sekcijas ir līdzīgos un kādas ir atšķirības starp līdzīgajām sekcijām. Vienkāršībai pieņemam, ka visi posmi ir vienāda garuma.

labir_3     labir_4

Tālāk daži piemēri no Google kolekcijām – tos ievietojot Scratch vidē, var palauzīt galvu, kāda būs programma izvēlētā labirinta iziešanai. Cik atkārtojuma (cikla) konstrukcijas būs nepieciešamas attēlā pa kreisi un cik attēlā pa labi?

1.piemērs – šeit līdzīgi kā iepriekšējā nodarbībā varēs iztikt ar komandām pagriezieniem (Turn) un pārvietošanai (Move). Protams, lai spētu izsekot programmas darbībai, lietderīgi aiz katras kustības ielikt pauzi – tam var izmantot operatoru gaidīt (Wait). Programmas joprojām būs relatīvi vienkārša – tā būs lineāra programma (komandas secīgi seko ciat citai)!

2.piemērs – labi var redzēt, ka labirintam ir 4 vienādas daļas (apvilkts ar sarkanu), kas nozīmē, ka to iziešanai derēs viens un tas pats algoritms (Scratch vidē – programma). Tas nozīmē, ka vispirms ir jāizdomā kā iziet vienu labirinta fragmentu un pēc tam to varēs izmantot 4 reizes (atkārtot jeb programma ar atkārtojumu – Repeat). Ja ieskatās uzmanīgāk, tad arī katrā no 4 daļām var ieraudzīt, ka jāatkārto līdzīgas darbības, tikai katrā reizē mainās veicamo soļu skaits. Būtu ļoti skaisti, aj arī tā iziešanu izdotos realizēt kā darbību atkārtošanu, mainot veicamo soļu skaitu

  L_2

Apskatām 1 daļu no labirinta:

L_2_1 L_2_3

Uzmanīgi ielūkjoties, ieraudzīsim 3 līdzīgas sekcijas (1, 2, 3), kuras atšķiras ar izmēriem. Katras sekcijas iziešanas algoritms būs līdzīgs, bet atšķirsies veicamo posmu garumi. Vispirms jāizdomā, kā iziet 1 sekciju!

3.piemērs – ar atkārtojumiem ( 3 līdzīgas sekcijas).

Rezumējumam – papildus nepieciešamas atkārtojumu konstrukcijas, piemēram, Repeat! Protams, sākumam var izvēlēties vienkāršāku labirintu!

Advertisements