Решения для простоя игры
GHub Platform · Гайд · 0 ответов · 15 просмотров

Мои решения для этапов с 1 по 8. Каждый список сценариев готов к копированию и вставке в файлы, предоставляемые игрой. для (пусть я = 0; я <4; я++) { MoveForward(); } Необходимые покупки: • TurnRight - приобретается как часть туториала /// внутренние функции let команды = []; function AddStep(f, n) { Commands.push({ f: f, n: n }); } ///добавляем команды в очередь AddStep(MoveForward, 6); AddStep(TurnRight, 1); AddStep(MoveForward, 6); AddStep(TurnRight, 1); AddStep(MoveForward, 4); /// очередь выполнения for (let m = 0; m < Commands.length; m++) { let Command = Commands[m]; for (let i = 0; i <command.n; i++) {command.f(); } } /// внутренние функции let Commands = []; function AddStep(f, n) { Commands.push({ f: f, n: n }); } ///добавляем команды в очередь AddStep(TurnRight, 3); AddStep(MoveForward, 2); AddStep(TurnRight, 3); AddStep(MoveForward, 4); AddStep(TurnRight, 3); AddStep(MoveForward, 4); AddStep(TurnRight, 1); AddStep(MoveForward, 2); AddStep(TurnRight, 1); AddStep(MoveForward, 9); /// очередь выполнения for (let m = 0; m < Commands.length; m++) { let Command = Commands[m]; for (let i = 0; i <command.n; i++) {command.f(); } } Необходимые покупки: • TurnLeft (1 монета) Цель монет: 41 /// внутренняя функция функций AddStep(tgtArr, f, n) { tgtArr.push({ f: f, n: n }); } function Exec(queue) { for (let m = 0; m <queue.length; m++) { let команда = очередь[m]; for (let i = 0; i <command.n; i++) {command.f(); } } } /// функция-обертка F() { MoveForward(); } функция R() { TurnRight(); } функция L() { TurnLeft(); } функция N() {DoNothing(); } function N2() { // чтобы не покупать DoNothing, мы просто дважды поворачиваемся на месте - вместо этого требуется 2 хода, хотя R(); Л(); } /// добавление команд в очередь - переход на позицию let init = []; AddStep (инициализация, R, 2); AddStep(инит, F, 2); ///добавляем команды в цикл - основной цикл для сбора и доставки let Loop = []; /// версия без "+ 1 емкость» обновление AddStep(loop, F, 8); AddStep(loop, R, 1); AddStep(loop, F, 2); AddStep(loop, R, 2); AddStep(loop, F, 5); AddStep(loop, L, 1); AddStep(loop, F, 8); AddStep(loop, L, 1); //AddStep(loop, N, 4); // требует, чтобы DoNothing() приобрел AddStep(loop, N2, 2); AddStep(loop, R, 2); AddStep(loop, F, 2); AddStep(loop, F, 3); /// версия, упрощенная для обновления "+1", 8); AddStep(loop, F, 2); AddStep(loop, F, 5); AddStep(loop, L, 1); AddStep(loop, L, 1); //AddStep(loop, N, 5); // требуется DoNothing(), приобретенный AddStep(loop, N2, 3); AddStep(loop, F, 3); AddStep(loop, L, 1); */ /// выполнение очереди Exec(init); /// выполнение цикла while (true) { Exec(loop }); Требуемые покупки: • «+1» Максимальное количество рабочих предметов — 5 монет • DoNothing — 1 монета Цель монет: 500 /// внутренние функции function AddStep(tgtArr, f, n) { tgtArr.push({ f: f, n: n }); } function Exec(queue) { for (let m = 0; m <queue.length; m++) { let команда = очередь[m]; for (let i = 0; i <command.n; i++) {command.f(); } } } /// обертки/ярлыки function F() { MoveForward(); } функция R() { TurnRight(); } функция L() { TurnLeft(); } функция N() {DoNothing(); } /// определение очередей let getInPos = []; AddStep(getInPos, F, 4); AddStep(getInPos, L, 1); AddStep(getInPos, F, 1); AddStep(getInPos, L, 2); пусть цикл = []; AddStep(цикл, F, 4); AddStep(цикл, R, 1); AddStep(цикл, F, 1); AddStep(цикл, L, 1); AddStep(цикл, F, 1); AddStep(цикл, R, 1); AddStep(цикл, F, 9); AddStep(цикл, L, 1); AddStep(цикл, F, 2); AddStep(цикл, L, 2); AddStep(цикл, F, 7); AddStep(цикл, R, 1); AddStep(цикл, F, 2); AddStep(цикл, L, 1); AddStep(цикл, F, 5); AddStep(цикл, R, 1); AddStep(цикл, F, 7); //чуть выше «микшера» AddStep(loop, R, 1); AddStep(цикл, F, 1); AddStep(цикл, L, 1); AddStep(цикл, F, 1); AddStep(цикл, N, 5); пусть циклEnd1 = []; //первый цикл - обналичка по шагам, чтобы не ждать миксера AddStep(loopEnd1, R, 1); AddStep(loopEnd1, F, 4); пусть циклEnd2 = []; //обналичиваем AddStep(loopEnd2, F, 1); AddStep(loopEnd2, L, 1); AddStep(loopEnd2, F, 3); AddStep(loopEnd2, L, 1); AddStep(loopEnd2, F, 5); AddStep(loopEnd2, L, 1); AddStep(loopEnd2, F, 7); AddStep(loopEnd2, R, 1); AddStep(loopEnd2, F, 2); AddStep(loopEnd2, R, 2); AddStep(loopEnd2, F, 6); AddStep(loopEnd2, R, 1); /// выполнить init Exec(getInPos); /// выполнить цикл Exec(loop); Exec(loopEnd1); в то время как (истина) { Exec (цикл); Exec(loopEnd2); } Цель по монетам: 1025. Важное примечание: чтобы оптимизировать время, затрачиваемое на выполнение скриптов, запускайте этап №6 до тех пор, пока вместо этого не будет собрано 3025 монет – это позволит пропустить этап №7 и сразу перейти к этапу №8. Подробное объяснение см. в разделе «Производительность». Worker1: /// внутренняя функция функции AddStep(tgtArr, f, n) { tgtArr.push({ f: f, n: n }); } function Exec(queue) { for (let m = 0; m <queue.length; m++) { let команда = очередь[m]; for (let i = 0; i <command.n; i++) {command.f(); } } } /// функция-обертка F() { MoveForward(); } функция R() { TurnRight(); } функция L() { TurnLeft(); } функция N() {DoNothing(); } /// определение очередей let getInPos = []; AddStep(getInPos, R, 1); AddStep(getInPos, F, 3); AddStep(getInPos, R, 1); AddStep(getInPos, F, 5); //кнопка в верхнем левом углу AddStep(getInPos, R, 2); пусть цикл = []; AddStep(цикл, F, 7); AddStep(цикл, R, 2); AddStep(цикл, F, 2); AddStep(цикл, R, 1); AddStep(цикл, F, 5); AddStep(цикл, R, 2); AddStep(цикл, N, 6); AddStep(цикл, F, 5); AddStep(цикл, R, 1); AddStep(цикл, F, 5); AddStep(цикл, R, 2); /// выполнить init Exec(getInPos); /// выполняем цикл while (true) { Exec(loop); } Worker2: /// внутренняя функция функции AddStep(tgtArr, f, n) { tgtArr.push({ f: f, n: n }); } function Exec(queue) { for (let m = 0; m <queue.length; m++) { let команда = очередь[m]; for (let i = 0; i <command.n; i++) {command.f(); } } } /// функция-обертка F() { MoveForward(); } функция R() { TurnRight(); } функция L() { TurnLeft(); } функция N() {DoNothing(); } /// определение очередей let getInPos = []; AddStep(getInPos, F, 2); AddStep(getInPos, R, 1); AddStep(getInPos, F, 3); AddStep(getInPos, L, 1); //перед правой частью пути AddStep(getInPos, N, 3); пусть цикл = []; AddStep(цикл, F, 3); AddStep(цикл, L, 1); AddStep(цикл, F, 5); AddStep(цикл, L, 1); AddStep(цикл, F, 6); AddStep(цикл, L, 1); AddStep(цикл, F, 8); AddStep(цикл, L, 1); AddStep(цикл, F, 1); AddStep(цикл, N, 4); //обналичиваем в AddStep(loop, F, 2); AddStep(цикл, L, 1); AddStep(цикл, F, 3); AddStep(цикл, R, 1); /// выполняем инициализацию Exe с (получитьInPos); /// выполняем цикл while (true) { Exec(loop); } Необходимые покупки: • GetWorkerInventoryItems (25 монет). Цель в монетах: 2000 Worker1: /// внутренняя функция функций AddStep(tgtArr, f, n) { tgtArr.push({ f: f, n: n }); } function Exec(queue) { for (let m = 0; m <queue.length; m++) { let команда = очередь[m]; for (let i = 0; i <command.n; i++) {command.f(); } } } /// составные команды function ThrowAll() { let items = GetWorkerInventoryItems(); for (let i = 0; i < items.length; i++) { ThrowItem(0); } } function WaitSync() { while (!SyncWorkers()) { } } /// функция-обертка F() { MoveForward(); } функция R() { TurnRight(); } функция L() { TurnLeft(); } функция N() {DoNothing(); } Функция T() { ThrowItem(0); } функция ТА() { ThrowAll(); } функция W() { WaitSync(); } /// определение очередей let initToLB = []; AddStep(initToLB, F, 5); AddStep(initToLB, R, 1); AddStep(initToLB, F, 2); //левая кнопка AddStep(initToLB, R, 2); //смотрим направо let LBToExchange = []; AddStep(LBToExchange, F, 8); AddStep(LBToExchange, R, 1); AddStep(LBToExchange, F, 2); AddStep(LBToExchange, L, 1); AddStep(LBToExchange, F, 1); AddStep(LBToExchange, R, 1); //ниже микшера, точка обмена, взгляд вниз let Exchange = []; AddStep(Обмен, W, 1); AddStep(Обмен, ТА, 1); AddStep(Обмен, W, 1); пусть цикл = []; AddStep(цикл, R, 1); AddStep(цикл, F, 1); AddStep(цикл, R, 1); AddStep(цикл, F, 1); AddStep(цикл, N, 5); //заполнение миксера AddStep(loop, F, 1); AddStep(цикл, L, 1); AddStep(цикл, F, 8); AddStep(цикл, R, 2); AddStep(ци
ИсточникGHub Platform · автор27.07.2026, 13:58:37
Мои решения для этапов с 1 по 8. Каждый список сценариев готов к копированию и вставке в файлы, предоставляемые игрой. для (пусть я = 0; я <4; я++) { MoveForward(); } Необходимые покупки: • TurnRight - приобретается как часть туториала /// внутренние функции let команды = []; fun…
Войдите, чтобы писать в группе