tmgamebot.narod.ru - бот для игры Техномагия(tmgame.ru)

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » tmgamebot.narod.ru - бот для игры Техномагия(tmgame.ru) » Ваши мнения » Сценарий для Молнии


Сценарий для Молнии

Сообщений 1 страница 10 из 10

1

Решил написать для начала простенький сценарий для заклинания Молния с мыслью усложнить его, если будет получаться. Смысл сценария в том, чтобы заставить бота использовать Молнию, когда на поле 10 или более синих камней. В противном случае использовать собирание камней. Вроде бы в инструкции по написанию сценариев все понятно. Но на практике какие ни пробовал варианты, все упирается в то, что бот выполняет только сбор камней с поля. Похоже, что я или неправильно использую переменную _Синих_На_Поле_С_Ур, или она в принципе не работает. В чем же дело? Вот код сценария:

Магия:
_Молния
Позиция 1
Камни:
Красные 15
Синие 15
Зеленые 0

Переменные:
_i 0
_a 0
_Выбор -1
_Случ 0
_Кр 0
_Син 0
_Зел 0
_Синих_На_Поле_С_Ур 0

Успешное_считывание_камней:
{
}

Успешное_считывание_поля:
{
ЕСЛИ ( (_Синих_На_Поле_С_Ур > 9) & ((_Красных_Моих > _Молния.Красные) | (_Красных_Моих = _Молния.Красные)) & ((_Синих_Моих > _Молния.Синие) | (_Синих_Моих = _Молния.Синие)) & ((_Зеленых_Моих > _Молния.Зеленые) | (_Зеленых_Моих = _Молния.Зеленые)) )
{
    ~Клик _Молния.Позиция
    ~Случайное_Число 500 _Случ
    _Случ  _Случ + 500
    ~Пауза_Боя _Случ
    ~Выход_Из_Обработки
}
ИНАЧЕ

{

    ~Сортировка 1 6 5 4 Ч

    _i -1
    :начало
    _i _i + 1

    ЕСЛИ _i < _Вариантов_Ходов
    {

        ЕСЛИ _Ход[_i].Число_6 > 0 | _Ход[_i].Число_5 > 0 | _Ход[_i].Число_4 > 0
        {
            _Выбор _i
            ИДТИ конец
        }
        ИНАЧЕ
        {
            ЕСЛИ ( _Ход[_i].Итог = 0)
            {
                _Выбор _i
                ИДТИ конец
            }
        }
   
        ЕСЛИ _i = (_Вариантов_Ходов - 1 )
        {
            _Выбор 0
            ИДТИ конец   
        }
   
        ИДТИ начало
    }
}

    :конец

~Случайное_Число 3000 _Случ
_Случ  _Случ + 4000
~Пауза_Боя _Случ

~Клик _Ход[_Выбор].Ячейка_11 _Ход[_Выбор].Ячейка_12
       
~Спать 300
~Клик _Ход[_Выбор].Ячейка_21 _Ход[_Выбор].Ячейка_22

}

Отредактировано bar (2009-06-29 17:37:28)

0

2

Раздели проверку на условия

ЕСЛИ ( (_Синих_На_Поле_С_Ур > 9) & ((_Красных_Моих > _Молния.Красные) | (_Красных_Моих = _Молния.Красные)) & ((_Синих_Моих > _Молния.Синие) | (_Синих_Моих = _Молния.Синие)) & ((_Зеленых_Моих > _Молния.Зеленые) | (_Зеленых_Моих = _Молния.Зеленые)) )

на такой вариант)

ЕСЛИ (_Синих_На_Поле_С_Ур > 9)
{
ЕСЛИ( ((_Красных_Моих > _Молния.Красные) | (_Красных_Моих = _Молния.Красные)) & ((_Синих_Моих > _Молния.Синие) | (_Синих_Моих = _Молния.Синие)) & ((_Зеленых_Моих > _Молния.Зеленые) | (_Зеленых_Моих = _Молния.Зеленые)) )
{
сюда клик на молнию
}
}
ИНАЧЕ
{
собирать поле
}

Отредактировано Noter (2009-06-29 17:57:18)

0

3

по возможности не включайте в условия операторы "и", "или", по крайней мере не более двух.
В противном случае мозг взорвется от проверки кода))
До конца твой код не читал, как условие увидел)))

Отредактировано Noter (2009-06-29 18:07:38)

0

4

Внешне особо ошибок не видно.

Из переменных убери:
_Синих_На_Поле_С_Ур 0

Снижать в условие кол-во камней до 1 пробывал ?

0

5

TMGameBot написал(а):

Из переменных убери:
_Синих_На_Поле_С_Ур 0

Убрал эту строку, Молния заработала. Но теперь выскакивает ошибка при расчете поля "Переменной _Ход[-1] не существует", и прога бота закрывается, хотя расчет поля просто переписал из сценария, приложенного к боту. Пока не знаю, как исправить.

0

6

Noter, спасибо за предложенный вариант, буду иметь ввиду на будущее. Но здесь он не срабатывает. Надо было просто убрать строку из списка переменных, чтоб Молния заработала.

Формулу, которое ты раскритиковал, я не сам придумал, а взял из справки по написанию сценариев ))

Отредактировано bar (2009-06-29 22:40:31)

0

7

Ура, добился нормальной работы сценария! При этом он принял следующий вид:

Магия:
_Молния
Позиция 1
Камни:
Красные 15
Синие 15
Зеленые 0

Переменные:
_i 0
_Выбор -1
_Случ 0

Успешное_считывание_камней:
{
}

Успешное_считывание_поля:
{

ЕСЛИ ( (_Синих_На_Поле_С_Ур > 5) & ((_Красных_Моих > _Молния.Красные) | (_Красных_Моих = _Молния.Красные)) & ((_Синих_Моих > _Молния.Синие) | (_Синих_Моих = _Молния.Синие)) & ((_Зеленых_Моих > _Молния.Зеленые) | (_Зеленых_Моих = _Молния.Зеленые)) )
{
    ~Клик _Молния.Позиция
    ~Случайное_Число 500 _Случ
    _Случ  _Случ + 500
    ~Пауза_Боя _Случ
    ~Выход_Из_Обработки
}

~Сортировка 1 6 5 4 Ч
_i -1
:начало
_i _i + 1
ЕСЛИ _i < _Вариантов_Ходов
{
    ЕСЛИ _Ход[_i].Число_6 > 0 | _Ход[_i].Число_5 > 0 | _Ход[_i].Число_4 > 0
        {
        _Выбор _i
        ИДТИ конец
        }
        ИНАЧЕ
        {
        ЕСЛИ ( _Ход[_i].Итог = 0)
        {
            _Выбор _i
            ИДТИ конец
        }
        }
        ЕСЛИ _i = (_Вариантов_Ходов - 1 )
        {
        _Выбор 0
        ИДТИ конец   
        }
        ИДТИ начало
}

:конец

~Случайное_Число 3000 _Случ
_Случ  _Случ + 4000
~Пауза_Боя _Случ

~Клик _Ход[_Выбор].Ячейка_11 _Ход[_Выбор].Ячейка_12
       
~Спать 300
~Клик _Ход[_Выбор].Ячейка_21 _Ход[_Выбор].Ячейка_22
}

Отредактировано bar (2009-06-30 01:44:03)

0

8

ыы...я не критиковал, а предложил более читабельный вариант)
вот когда ты дойдешь до написания сценария на 5-6-7 магий, вот тогда у тебя мозг закипит)

0

9

Молодец, bar, ждем в твоем исполнение сценарии с 5-6-7 магиями :)

0

10

TMGameBot написал(а):

Молодец, bar, ждем в твоем исполнение сценарии с 5-6-7 магиями :)

гыыы, зачем изобретать колесо, Noter давно уже их написал  :)

0


Вы здесь » tmgamebot.narod.ru - бот для игры Техномагия(tmgame.ru) » Ваши мнения » Сценарий для Молнии