Capitolul 4: Rezolvarea temelorOcolirea gardului (Instrucțiuni)
Aceasta este o temă pe care mă aștept ca oricine are o șansă să devină programator o poate rezolva. Folosind exclusiv ce am învățat la curs, se poate rezolva astfel:
reset() // Să nu uităm de asta turnRight() move() // 3 întoarceri spre dreapta turnRight() turnRight() turnRight() move() move() // 3 întoarceri spre dreapta turnRight() turnRight() turnRight() move() // 3 întoarceri spre dreapta turnRight() turnRight() turnRight() move()
De la atâtea întoarceri spre dreapta, mă cam ia amețeala...
Câteodată, limbajele cu care lucrăm nu ne oferă toate funcțiile de care avem nevoie, așa că trebuie noi să implementăm ceva ce ne-ar duce la rezultatul dorit. În acest caz, 3 întoarceri spre stânga ne duc în aceeași situație ca o singură întoarcere spre stânga.
Alteori, cei care au inventat un limbaj sau o librărie, e posibil să se fi gândit la mai multe situații decât sunt documentate. De multe ori, implementările lor sunt mai eficiente decât ce putem să facem noi.
Și în acest caz, cel care a creat librăria de funcții care o controlează pe Miorița, s-a gândit că dacă vrei să te întorci spre dreapta, poate vrei să te întorci și spre stânga, așa că există turnLeft()
. Și chiar este de 3 ori mai rapid decât dacă am fi făcut 3 întoarceri spre dreapta.
reset() // Să nu uităm de asta turnRight() move() turnleft() move() move() turnleft() move() turnleft() move()Rezolvarea finală