Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Чат Бот. Различные варианты условия if. C++ Builder. / 12 сообщений из 12, страница 1 из 1
09.12.2020, 13:43
    #40025924
Sakha98
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
Как сделать разные ответы на вопросы давай пообщаемся/как дела/хочу общаться. Пробовал || поставить между ответами и вопросами тогда он отвечает на все напечатанные буквы: Как дела?. А Если убрать уже пишет "Текст не распознан" по условии
...
Рейтинг: 0 / 0
09.12.2020, 16:20
    #40026005
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
Лично я ничего не понял.
...
Рейтинг: 0 / 0
09.12.2020, 17:12
    #40026028
petrav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
Leonid Kudryavtsev
Лично я ничего не понял.

Задача очень сложная, вот вы и не поняли.
...
Рейтинг: 0 / 0
09.12.2020, 19:28
    #40026105
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
Я-бы разделил две задачи.

1) Программирование на C++ Builder.
2) Программирование ботов вообще.

Это две разные задачи и их не стоит смешивать в 1 топике. Тем более что С++ вобщем-то не подходит
для программирования логики диалоговых экспертных систем. Здесь нужно что-то более подходящее.
Я не знаю. Может Lisp или Prolog. Просто базу ответов и вопросов и текущего состояния контекста
будет очень трудно запрограммировать на классических кондишенах if-else. Тут нужен более фундаментальный
подход. И сама база фраз и ответов должна как-то храниться отдельно от исходного кода.
...
Рейтинг: 0 / 0
10.12.2020, 05:56
    #40026232
Sakha98
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
mayton,
да знаю, только проходим, можно было проще подключить БД, но задание есть задание. В общем вот программма. Пробовал добавить так }
Код: plaintext
1.
2.
3.
else if (Edit1->Text == "Хочу общаться")||("2 вариант")||("3 вариант") {
	   ListBox1->Items->Add("USER: " + Edit1->Text);
	   ListBox1->Items->Add("CHATBOT: Как дела?")||("CHATBOT: 2 вариант")||("CHATBOT: 3 вариант");


А еще пытался
Код: plaintext
1.
2.
3.
4.
5.
else if (Edit1->Text == "Хочу общаться","2 вариант","3 вариант") {
	   ListBox1->Items->Add("USER: " + Edit1->Text);
	   ListBox1->Items->Add("CHATBOT: Как дела?");
           ListBox1->Items->Add("CHATBOT: 2 вариант");
           ListBox1->Items->Add("CHATBOT: 3 вариант");}


Так вот если добавлю какой то из этих вариантов не находит ошибку но на все накаляканные буквы спрашивает Как дела, а должен был сказать Текст не распознан



Основная программа:
Код: plaintext
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.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Edit1->Text.IsEmpty())return;
else if(Edit1->Text == "Привет"){
		 ListBox1->Items->Add("USER: " + Edit1->Text);
		 ListBox1->Items->Add("CHATBOT: Здравствуйте");
	 }else if (Edit1->Text.Pos("Число Пи")){
			   ListBox1->Items->Add("USER: " + Edit1->Text);
			   ListBox1->Items->Add("CHATBOT: 3.14");
				}
else if (Edit1->Text == "Хочу общаться") {
	   ListBox1->Items->Add("USER: " + Edit1->Text);
	   ListBox1->Items->Add("CHATBOT: Как дела?");

	 }
	 else{
	   ListBox1->Items->Add("USER: " + Edit1->Text);
	   ListBox1->Items->Add("CHATBOT: Текст не распознан");
	   }
Edit1->Text == "";
SendMessage(ListBox1->Handle, WM_VSCROLL, SB_LINEDOWN, 0);
SendMessage(ListBox1->Handle, WM_VSCROLL, SB_LINEDOWN, 0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
if (Key==VK_RETURN) {
	  if (Edit1->Text.IsEmpty())return;
	  else if(Edit1->Text == "Привет"){
			ListBox1->Items->Add("USER: " + Edit1->Text);
			ListBox1->Items->Add("CHATBOT: Здравствуйте");
	  }else if (Edit1->Text.Pos("Число Пи")){
			ListBox1->Items->Add("USER: " + Edit1->Text);
			ListBox1->Items->Add("CHATBOT: 3.14");
	  }else if (Edit1->Text == "Хочу общаться") {
	   ListBox1->Items->Add("USER: " + Edit1->Text);
	   ListBox1->Items->Add("CHATBOT: Как дела?");

	  }
}
}
...
Рейтинг: 0 / 0
10.12.2020, 06:25
    #40026234
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
Sakha98,
Ужас. Вообрази какое множество может быть вопросов и насколько вырастет твой код. Я уже не говорю, о том, что всё по классике формошлёпства засунуто в обработчик кнопки и работает с полями элементов формочки.
...
Рейтинг: 0 / 0
10.12.2020, 06:29
    #40026235
Sakha98
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
crutchmaster, программа маленькая
...
Рейтинг: 0 / 0
10.12.2020, 07:11
    #40026238
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
Ужас. С основ надо начинать - операции сравнения , логические операции ... Хотя лучше учебник какой-то для начинающих.
...
Рейтинг: 0 / 0
10.12.2020, 07:16
    #40026239
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
Sakha98
Пробовал добавить так
Код: plaintext
1.
else if (Edit1->Text == "Хочу общаться")||("2 вариант")||("3 вариант") {


Почти угадал, правильно так
Код: plaintext
1.
else if ((Edit1->Text == "Хочу общаться") || (Edit1->Text == "2 вариант") || (Edit1->Text == "3 вариант")) {


Прежде чем что-то писать книжку бы почитал, элементарные вещи не знаешь.
...
Рейтинг: 0 / 0
10.12.2020, 07:37
    #40026242
Sakha98
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
Dima T,а этот вариант тогда тоже правильный? ответы бота
Код: plaintext
1.
 ListBox1->Items->Add("CHATBOT: Как дела?")||("CHATBOT: 2 вариант")||("CHATBOT: 3 вариант");
...
Рейтинг: 0 / 0
10.12.2020, 07:48
    #40026244
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
Sakha98
Dima T,а этот вариант тогда тоже правильный? ответы бота
Код: plaintext
1.
 ListBox1->Items->Add("CHATBOT: Как дела?")||("CHATBOT: 2 вариант")||("CHATBOT: 3 вариант");


Нет. Это чушь какая-то даже если откомпилируется. Тут ты сам должен как-то определиться и вывести один из трех вариантов, т.е.
Код: plaintext
1.
ListBox1->Items->Add("CHATBOT: одно из трех");
...
Рейтинг: 0 / 0
10.12.2020, 09:20
    #40026254
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чат Бот. Различные варианты условия if. C++ Builder.
Sakha98
crutchmaster, программа маленькая

И что?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Чат Бот. Различные варианты условия if. C++ Builder. / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]