Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: Почему не работает код?
Martin
Отправлено: 29 Декабря, 2022 - 14:16:45
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Пытаюсь передать в функцию danet() две другие, но не могу понять где ошибка всегда вызывает вторую функцию.

CODE:
danet(ff,ff2);

function danet(string t1, string t2) {
loop() {
if(GetM()=="Да") {t1();break;}
if(GetM()=="Нет") {t2();break;}
}
}

function ff() {messagebox("ДА")}
function ff2() {messagebox("НЕТ")}

function GetM() {
int m=random(1,2);
if(m==1) {return Да}
if(m==2) {return Нет}
}
 
 Top
neba2101
Отправлено: 29 Декабря, 2022 - 16:05:18
Post Id



Пользователь
Мастер


Просматривает форум
Сообщений всего: 154
Дата рег-ции: Февр. 2017  
Репутация: 4




CODE:
danet(ff,ff2);

function danet() {
loop() {
if(GetM()=="Да") {messagebox("Да");break;}
if(GetM()=="Нет") {messagebox("Нет");break;}
}
}

function GetM() {
int m=rand(1,3);
if(m==1) {return "Да";}
if(m==2) {return "Нет";}
}


CODE:
string ff="Да";
string ff2="Нет";

danet(ff,ff2);

function danet(string g, string g2) {
messagebox(g);
messagebox(g2);
}
 
 Top
Zireael
Отправлено: 30 Декабря, 2022 - 00:44:32
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4468
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
не могу понять где ошибка всегда вызывает вторую функцию

В коде много синтаксических шибок, он вообще не должен запускаться, тем более правильно работать.
В функцию можно передать параметры, исходя из них вызвать другую функцию.
Напишите что хотите сделать, поможем с кодом.
 
 Top
Martin
Отправлено: 30 Декабря, 2022 - 12:44:06
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Zireael , Нужно в зависимости от полученного ответа в переменной запустить одну из двух функций. Нужна функция поместив в которую две функции запустилась одна из них.

Чтобы не громоздить такое

CODE:

danet();
//тут идет другой код
danet2();
//тут идет другой код
danet3();
//danet...100();

function danet() {
loop() {
if(GetM()=="Да") {messagebox("Запустить функцию1");break;}
if(GetM()=="Нет") {messagebox("Запустить функцию2");break;}
}
}

function danet2() {
loop() {
if(GetM()=="Да") {messagebox("Запустить функцию3");break;}
if(GetM()=="Нет") {messagebox("Запустить функцию4");break;}
}
}

function danet3() {
loop() {
if(GetM()=="Да") {messagebox("Запустить функцию1");break;}
if(GetM()=="Нет") {messagebox("Запустить функцию8");break;}
}
}

//и т.д.

function GetM() {
int m=rand(1,3);
if(m==1) {return "Да";}
if(m==2) {return "Нет";}
}


а было такое
CODE:
danet(функция1, функция2)

(Отредактировано автором: 30 Декабря, 2022 - 12:53:57)

 
 Top
Zireael
Отправлено: 30 Декабря, 2022 - 12:58:00
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4468
Дата рег-ции: Нояб. 2017  
Репутация: 585




CODE:
danet(0);
danet(2);
danet(3);


function danet(int num)
{
string resultGem = GetM();

if(num==0)
{
if(resultGem=="Да") {messagebox("Запустить функцию1");}
if(resultGem=="Нет") {messagebox("Запустить функцию2");}
return;
}

if(num==2)
{
if(resultGem=="Да") {messagebox("Запустить функцию3");}
if(resultGem=="Нет") {messagebox("Запустить функцию4");}
return;
}

if(num==3)
{
if(resultGem=="Да") {messagebox("Запустить функцию1");}
if(resultGem=="Нет") {messagebox("Запустить функцию8");}
return;
}
}


function GetM() {
int m=rand(1,3);
if(m==1) {return "Да";}
if(m==2) {return "Нет";}
}
 
 Top
Martin
Отправлено: 30 Декабря, 2022 - 13:07:50
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Zireael , Визуально сложно в коде такое воспринимается
CODE:
danet(0);
danet(2);
danet(3);

Не понятно каким функциям задаются вопросы. И нужно все комбинации при таком способе задавать а при 100 функциях это больше 10000 описать нужно будет.

Нельзя до такого написания упростить? Чтобы функция принимала две функции?
CODE:
danet(функция1, функция2)
 
 Top
Zireael
Отправлено: 30 Декабря, 2022 - 13:30:15
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4468
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Визуально сложно в коде такое воспринимается

Передавайте строки, суть не меняется.
CODE:
danet("функция1,функция2");
danet("функция3,функция4");
danet("функция1,функция8");


function danet(string func)
{
string resultGem = GetM();

if(func=="функция1,функция2")
{
if(resultGem=="Да") {messagebox("Запустить функцию1");}
if(resultGem=="Нет") {messagebox("Запустить функцию2");}
return;
}

if(func=="функция3,функция4")
{
if(resultGem=="Да") {messagebox("Запустить функцию3");}
if(resultGem=="Нет") {messagebox("Запустить функцию4");}
return;
}

if(func=="функция1,функция8")
{
if(resultGem=="Да") {messagebox("Запустить функцию1");}
if(resultGem=="Нет") {messagebox("Запустить функцию8");}
return;
}
}


function GetM() {
int m=rand(1,3);
if(m==1) {return "Да";}
if(m==2) {return "Нет";}
}
 
 Top
Martin
Отправлено: 30 Декабря, 2022 - 14:44:22
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Zireael , Так конечно понятнее если строки передать, но всё равно приедаться писать больше 10 тысяч вариаций в функции (
к примеру нужно сравнить первую функцию и 100 а потом 89 и 2. Нельзя получается проще сделать?
 
 Top
Zireael
Отправлено: 31 Декабря, 2022 - 00:50:45
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4468
Дата рег-ции: Нояб. 2017  
Репутация: 585




Зачем нужны 100 функций? Что хотите сделать?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by