Author Topic: Первичное выполнение начальной части кода  (Read 3011 times)

0 Members and 1 Guest are viewing this topic.

Tochka

  • Освоившийся
  • **
  • Posts: 67
  • Ищу, читаю, учусь...
    • View Profile
Я где-то читала, что использование меток - это моветон. Подскажите, пожалуйста, как сделать без метки, чтобы после первичного выполнения начальной части кода, она в последующем больше не рассматривалась (не выполнялось заново). До остановки скрипта должен прокручиваться последующий код (серия подпрограмм) с учетом того, что задано, найдено и определено в начальной части.
« Last Edit: March 08, 2017, 09:10:11 PM by Oraven »
Сюда влетаю иногда... Возник вопрос и завелась метла

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Re: нужна помощь
« Reply #1 on: March 08, 2017, 09:04:37 AM »
Я где-то читала, что использование меток - это моветон. Подскажите, пожалуйста, как сделать без метки, чтобы после первичного выполнения начальной части кода, она в последующем больше не рассматривалась. До остановки скрипта должен прокручиваться последующий код (серия подпрограмм) с учетом того, что задано, найдено и определено в начальной части.

Code: (clickermann) [Select]
IF($first = 0)
   $first = 1
   
   // условие выполнится 1 раз
   
END_IF

// Последующий код

Tochka

  • Освоившийся
  • **
  • Posts: 67
  • Ищу, читаю, учусь...
    • View Profile
Re: Re: нужна помощь
« Reply #2 on: March 08, 2017, 09:20:22 AM »
Я наверное ступлю сейчас.
Перед этим условием мне опять же надо будет указать, что $first = 0 ?
Сюда влетаю иногда... Возник вопрос и завелась метла

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Re: нужна помощь
« Reply #3 on: March 08, 2017, 09:27:53 AM »
Перед этим условием мне опять же надо будет указать, что $first = 0 ?
С праздником весны! 8)
Ни в коем случае. При запуске скрипта переменная и так равна 0.Её не нужно объявлять.
« Last Edit: March 08, 2017, 09:45:14 AM by open_78 »

Tochka

  • Освоившийся
  • **
  • Posts: 67
  • Ищу, читаю, учусь...
    • View Profile
Re: Re: нужна помощь
« Reply #4 on: March 08, 2017, 09:48:11 AM »
Oraven, open_78, спасибо за помощь. И правда протупила я.
Раз такое дело,
Quote
При первом запуске скрипта переменная и так равна 0
то дополнительное условие мне не понадобится. У меня в старте сброс переменных лишний просто.

open_78,
Quote
С праздником весны! 8)
Спасибо  ;D
Сюда влетаю иногда... Возник вопрос и завелась метла

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Re: нужна помощь
« Reply #5 on: March 08, 2017, 09:53:37 AM »
Это не относится к системным переменным.

Tochka

  • Освоившийся
  • **
  • Posts: 67
  • Ищу, читаю, учусь...
    • View Profile
Re: Re: нужна помощь
« Reply #6 on: March 08, 2017, 10:03:56 AM »
open_78, было так:
Code: (clickermann) [Select]
// __________ 1.Старт ____________________
$map=1 // 0-карта отключена
// переменные с уловиями, для текущего местоположения
$start_X=0
$start_Y=0
...

// __________ 2.Карта ____________________
// Поиск картинки, определение $start_X и $start_Y, от них определение координат локаций в зависимости от местоположения, назначение локаций.

// __________ 3.Основное _________________
// рандомный выбор локаций, с которыми будет взаимодействие; действия внутри локаций и т.д.

// мне надо, чтобы п.1-2 (обнуление стартовых и выполнение простыни кода с назначением локаций) были в пропуске после первичного исполнения
После беседы на форуме внесла поправку:
Code: (clickermann) [Select]
// __________ 1.Старт ____________________
$map=1 // 0-карта отключена
// переменные с уловиями, для текущего местоположения
...

// __________ 2.Карта ____________________
IF(($start_X=0) & ($start_Y=0))
    // Поиск картинки, определение $start_X и $start_Y, от них определение координат локаций в зависимости от местоположения, назначение локаций.
END_IF
Правильно я поняла?  :)
Сюда влетаю иногда... Возник вопрос и завелась метла

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Re: нужна помощь
« Reply #7 on: March 08, 2017, 10:13:54 AM »
Совершенно верно. Объявлять их нужно только если хотим изначально придать им значение не равное 0. И в условии их значение нужно поменять.
Code: (clickermann) [Select]
// __________ 2.Карта ____________________
IF(($start_X=0) & ($start_Y=0))
   IF_...
    // Поиск картинки, определение $start_X и $start_Y, от них определение координат локаций в зависимости от местоположения, назначение локаций.
   $start_X=$_return1
   $start_Y=$_return2
   END_IF
END_IF

Tochka

  • Освоившийся
  • **
  • Posts: 67
  • Ищу, читаю, учусь...
    • View Profile
Re: Re: нужна помощь
« Reply #8 on: March 08, 2017, 10:26:25 AM »
Совершенно верно. Объявлять их нужно только если хотим изначально придать им значение не равное 0. И в условии их значение нужно поменять.
Code: (clickermann) [Select]
// __________ 2.Карта ____________________
IF(($start_X=0) & ($start_Y=0))
   IF_...
    // Поиск картинки, определение $start_X и $start_Y, от них определение координат локаций в зависимости от местоположения, назначение локаций.
   $start_X=$_return1
   $start_Y=$_return2
   END_IF
END_IF
Да, далее у меня всё именно так и идёт:
Code: (clickermann) [Select]
IF(($start_X=0) & ($start_Y=0))
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "Start_coord.bmp", -1, 100)
        $start_X=$_return1
        $start_Y=$_return2
            IF($log=1)
                LOGWRITE ("Start_coord: X=",$start_X," Y=",$start_Y)
            END_IF
        WAITMS(100)
    ELSE
        IF($log=1)
            LOGWRITE ("Start_coord не назначены.")
        END_IF
    HALT
    END_IF
ELSE
    IF($log=1)
        LOGWRITE ("Start_coord определены ранее.")
    END_IF
END_IF
Наверное мне надо было сразу к вопросу пример прикрепить. Спасибо!  :)
Сюда влетаю иногда... Возник вопрос и завелась метла