Цели:
Доберись живым до конца лабиринта.
Руководство:
Легенда говорит о воине-викинге, открывшем карту, которая должна привести к секретной сокровищнице тайного знания. Как рассказывается в легенде, на карте обозначен остров, покрытый густым лесом, наполненый странными существами и смертельными ловушками. Викинг утверждал, что нашел, где находится этот остров, и отправился на поиски сокровищ. Но больше его никто не видел.
Карта так описывает путь до сокровищницы:
##Начало Начало пути отмечено красным крестом Х (соответствует 0,0 координатам на карте).
##Параметры лабиринта Используйте настраиваемые параметры лабиринта, которые называются SLIDE(скатиться), SKIP(пропустить), and SWITCH(переключить). Для примера используем следующие значения:
SLIDE = 10 SWITCH = 7 SKIP = 11
##Движение на восток Шагните 35 раз на восток (по оси X), считая свои steps(шаги). Вдоль оси X можно идти только на права, на лево движение невозможно.
##Движение в верх и вниз Для каждого step(шага) на восток также нужно задать направление sideStep в верх (вдольоси Y).
Начиная с SWITCH = 7, когда число steps шагов, которое вы сделали, делится без остатка на 7, вы SWITCH (переключаете) sideStep(направление шага в сторону) вниз вместо верха. (7й шаг должен быть на север, 8й на юг, пока sideStep(направление) снова не SWITCH (переключится)).
Начиная с SKIP = 11, когда число steps шагов, которое вы сделали, делится без остатка на 11, вы должны сделать sideStep(шаг в сторону) ДВАЖДЫ за один шаг.
##Границы
Вы должны оставаться в пределах от 1 до 10 sideSteps(шагов в сторону) к северу от красного креста X. ( 10 задано параметром SLIDE = 10 лабиринта!)
Если значение sideStep становится больше 10, вы должны SLIDE (скатиться) на юг до 1 sideStep к северу от Красного креста X. Другими словами, вы скатываететь обратно к sideSteps = 1.
Если значение sideStep становится меньше 1, вы должны SLIDE (скатиться) на север до 10 sideStep к северу от Красного креста X. Другими словами, вы скатываетесь обратно к sideSteps = 10.
##Хитрость Карта острова меняется для каждого путешественника, который высаживается на него! Значения:
SLIDE = 10 SWITCH = 7 SKIP = 11
…могут меняться. Вы должны быть готовы пройти лабиринт с любыми наборами этих чисел. Ворон сообщит вам, какие значения должны быть, следите за ним внимательно и измените параметры лабиринта в соответствии с его словами!
##Награда
Если вы решите эту головоломку, то вы получите Шлем Потерянного викинга и получите доступ к секретной сокровищнице тайного знания!
.
Осада Стоунхолда, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# Вам НЕОБХОДИМО нажать на кнопку ПОМОЩЬ чтобы увидеть детальное описание уровня! # Ворон подскажет вам какие параметры лабиринта вам нажны! SLIDE = 10 SWITCH = 6 SKIP =9 Sw2=1 # Как много sideSteps(шагов в сторону) к северу от Красного Креста вы сделали. sideSteps = 1 # Как много steps(шагов) к востоку от Красного Креста вы сделали. steps = 1 # Перемножьте это с количеством шагов на восток(step), чтобы определить свою X координату. НЕ ИЗМЕНЯЙТЕ ЭТО! X_PACE_LENGTH = 4 # Перемножьте это с количеством шагов к северу(sideSteps), чтобы определить свою Y координату. НЕ ИЗМЕНЯЙТЕ ЭТО! Y_PACE_LENGTH = 6 # Лабиринт это 35 шагов вдоль Оси X. while steps <= 35: # Сделайте следующий шаг: self.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH) # Увеличивайте steps(шаги) и sideSteps(шаги в сторону) по необходимости, принимая во внимание специальные правила. if steps%SWITCH==0: if Sw2==1: Sw2=-1 else: Sw2=1 self.say("SWITH "+Sw2) if steps%SKIP==0: self.say("SKIP") sideSteps +=Sw2 if sideSteps==SLIDE and Sw2==1: sideSteps=1 self.say("SLIDE 10") else: if (sideSteps<=1 and Sw2==-1 ): self.say("SLIDE 1") sideSteps=10 else: sideSteps +=Sw2 steps += 1 |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
// Вам НЕОБХОДИМО нажать на кнопку ПОМОЩЬ чтобы увидеть детальное описание уровня! // Ворон подскажет вам какие параметры лабиринта вам нажны! var SLIDE=10; var SWITH=6; var SKIP=9; // Как много sideSteps(шагов в сторону) к северу от Красного Креста вы сделали. var sideSteps = 1; var Sw2 =1; // Как много steps(шагов) к востоку от Красного Креста вы сделали. var steps = 1; // Перемножьте это с количеством шагов на восток(step), чтобы определить свою X координату. НЕ ИЗМЕНЯЙТЕ ЭТО! var X_PACE_LENGTH = 4; // Перемножьте это с количеством шагов к северу(sideSteps), чтобы определить свою Y координату. НЕ ИЗМЕНЯЙТЕ ЭТО! var Y_PACE_LENGTH = 6; // Лабиринт это 35 шагов вдоль Оси X. while(steps <= 35) { // Сделайте следующий шаг: this.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH); // Увеличивайте steps(шаги) и sideSteps(шаги в сторону) по необходимости, принимая во внимание специальные правила. if (steps%SWITH === 0) { if (Sw2 == 1){ Sw2=-1; } else { Sw2=1; } } if (steps%SKIP === 0){ sideSteps += Sw2; } if (sideSteps==SLIDE && Sw2==1){ sideSteps=1; } else { if (sideSteps<=1 && Sw2==-1){ sideSteps=10; } else { sideSteps +=Sw2; } } steps++; } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# Вам НЕОБХОДИМО нажать на кнопку ПОМОЩЬ чтобы увидеть детальное описание уровня! # Ворон подскажет вам какие параметры лабиринта вам нажны! # Как много sideSteps(шагов в сторону) к северу от Красного Креста вы сделали. sideSteps = 1 SLIDE = 10 SWITCH = 6 SKIP =9 # Как много steps(шагов) к востоку от Красного Креста вы сделали. steps = 1 Sw2 = 1 # Перемножьте это с количеством шагов на восток(step), чтобы определить свою X координату. НЕ ИЗМЕНЯЙТЕ ЭТО! X_PACE_LENGTH = 4 # Перемножьте это с количеством шагов к северу(sideSteps), чтобы определить свою Y координату. НЕ ИЗМЕНЯЙТЕ ЭТО! Y_PACE_LENGTH = 6 # Лабиринт это 35 шагов вдоль Оси X. while steps <= 35 # Сделайте следующий шаг: @moveXY steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH # Увеличивайте steps(шаги) и sideSteps(шаги в сторону) по необходимости, принимая во внимание специальные правила. if steps%SWITCH == 0 if Sw2 == 1 Sw2=-1 else Sw2=1 if steps%SKIP==0 sideSteps +=Sw2 if sideSteps==SLIDE and Sw2==1 sideSteps=1 else if sideSteps<=1 and Sw2==-1 sideSteps=10 else sideSteps +=Sw2 steps++ |
Clojure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
;; Вам НЕОБХОДИМО нажать на кнопку ПОМОЩЬ чтобы увидеть детальное описание уровня! ;; Ворон подскажет вам какие параметры лабиринта вам нажны! ;; Как много sideSteps(шагов в сторону) к северу от Красного Креста вы сделали. (def sideSteps 1) (def SLIDE 10) (def SWITCH 6) (def SKIP 9) ;; Как много steps(шагов) к востоку от Красного Креста вы сделали. (def steps 1) (def Sw2 1) ;; Перемножьте это с количеством шагов на восток(step), чтобы определить свою X координату. НЕ ИЗМЕНЯЙТЕ ЭТО! (def X_PACE_LENGTH 4) ;; Перемножьте это с количеством шагов к северу(sideSteps), чтобы определить свою Y координату. НЕ ИЗМЕНЯЙТЕ ЭТО! (def Y_PACE_LENGTH 6) ;; Лабиринт это 35 шагов вдоль Оси X. (while (<= steps 35) ;; Сделайте следующий шаг: (.moveXY this (* steps X_PACE_LENGTH) (* sideSteps Y_PACE_LENGTH)) (when (= (mod steps SWITCH) 0) (if (= Sw2 1) (def Sw2 -1) (def Sw2 1) ) ) (when (= (mod steps SKIP) 0) (def sideSteps (+ sideSteps Sw2)) ) (if (and (= sideSteps SLIDE) (= Sw2 1)) (def sideSteps 1) (if (and (<= sideSteps 1) (= Sw2 -1)) (def sideSteps 10) (def sideSteps (+ sideSteps Sw2)) ) ) ;; Увеличивайте steps(шаги) и sideSteps(шаги в сторону) по необходимости, принимая во внимание специальные правила. (def steps (inc steps)) ) |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
-- Вам НЕОБХОДИМО нажать на кнопку ПОМОЩЬ чтобы увидеть детальное описание уровня! -- Ворон подскажет вам какие параметры лабиринта вам нажны! -- Как много sideSteps(шагов в сторону) к северу от Красного Креста вы сделали. local sideSteps = 1 local SLIDE = 10 local SWITCH = 6 local SKIP = 9 -- Как много steps(шагов) к востоку от Красного Креста вы сделали. local steps = 1 local Sw2 =1 -- Перемножьте это с количеством шагов на восток(step), чтобы определить свою X координату. НЕ ИЗМЕНЯЙТЕ ЭТО! local X_PACE_LENGTH = 4 -- Перемножьте это с количеством шагов к северу(sideSteps), чтобы определить свою Y координату. НЕ ИЗМЕНЯЙТЕ ЭТО! local Y_PACE_LENGTH = 6 -- Лабиринт это 35 шагов вдоль Оси X. while steps <= 35 do -- Сделайте следующий шаг: self:moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH) -- Увеличивайте steps(шаги) и sideSteps(шаги в сторону) по необходимости, принимая во внимание специальные правила. if steps%SWITCH==0 then if Sw2 == 1 then Sw2=-1 else Sw2=1 end end if steps%SKIP==0 then sideSteps = sideSteps + Sw2 end if sideSteps==SLIDE and Sw2==1 then sideSteps=1 else if sideSteps<=1 and Sw2==-1 then sideSteps=10 else sideSteps = sideSteps+Sw2 end end steps = steps + 1 end |
Комментарии: