Главная
Регистрация
Вход
Авторизироваться
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: ADMIN, Nextik  
Программа - чат с телефоном,с исскуственным интилектом =)
programmerДата: Среда, 21.01.2009, 12:14 | Сообщение # 1
Умный
Группа: Проверенные
Сообщений: 599
Награды: 3
Репутация: « 111 »
Статус: Offline
program boltun;
var forma : integer;
cmdNext : command;
user : string;
comp :string;
begin
comp := 'Я не понимаю =(';
ShowForm;
forma := FormAddTextField('говори =)', '', 20, TF_ANY);
cmdNext := CreateCommand('ага', CM_OK, 1);
AddCommand(cmdNext);
repeat until GetClickedCommand = cmdNext;
user := FormGetText(forma);
ShowCanvas;
if user = 'Привет!' then comp := 'Ну,привет!';
if user = 'Как тебя зовут?' then comp := 'J2ME болтун';
if user = 'Привет.' then comp := 'Ну,привет.';
if user = 'Как дела?' then comp := 'Нормально!А как у тебя?';
if user = 'Нормально.' then comp := 'Это радует =)';
if user = 'Плохо.' then comp := '=( А сильно плохо?';
if user = 'Сильно.' then comp := '=(';
if user = 'Сильно!' then comp := '=(((((';
if user = 'Блять.' then comp := 'Не матерись.';
if user = 'Блять!' then comp := 'Не матерись!';
if user = 'Пока.' then comp := 'введи exit';
if user = 'Сука.' then comp := 'Не матерись.';
if user = 'Я тебя люблю.' then comp := 'Ты совсем???';
if user = 'Что делаешь?' then comp := 'Смски твоей маме шлю.';
if user = 'Зачем?' then comp := 'Зашкафом!';
if user = 'Как?' then comp := 'Легко!';
if user = 'Легко!' then comp := 'Что легко?';
if user = 'Как тебя выключить?' then comp := 'Введи exit';
if user = 'exit' then halt;
if user = 'Что радует?' then comp := 'Не знаю';
if user = 'Как твои дела?' then comp := 'Хреново';
if user = 'Почему?' then comp := 'Покачану.';
if user = 'Как мои дела?' then comp := 'Не знаю';
if user = 'Говори!' then comp := 'Я устал';
if user = 'Говори.' then comp := 'Говорю =)';
if user = 'Да.' then comp := 'Точно да?';
if user = 'Да!' then comp := 'Ого!Как точно...';
if user = 'Нет.' then comp := 'Понятно...';
if user = 'Exit.' then comp := 'Без точки!';
if user = 'Exit' then comp := 'exit,a не Exit';
if user = 'exit.' then comp := 'Нафиг ты точку поставил?';
if user = 'Что ты делаешь?' then comp := 'Смски шлю.';
if user = 'Кому?' then comp := 'Всем!';
if user = 'Смешно.' then comp := 'Что?';
if user = 'Ничего.' then comp := 'Я рад.';
if user = 'Чему?' then comp := 'Ничему!';
if user = 'Кто тебя создал?' then comp := 'Это секретная информация!';
if user = '=)' then comp := 'Смейся,смейся...';
if user = 'Кто ты?' then comp := 'Я тебе уже говорил...';
if user = 'Чего?' then comp := 'Ничего!';
DrawText(comp, 0, 0);
Repaint;
Delay(5000);
end.
 
adminДата: Среда, 21.01.2009, 20:27 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 244
Награды: 2
Репутация: « 594 »
Статус: Offline
Нормал, правда мона доделать. СОздать целую проогу с запасом слов. Таких тем много. Есть 2способа6 1.Либо создать кучу слов и кинуть в прогу, 2.Либо создать союзы, слова, окончания и т.д и научить телефон читать и разумно отвечать, например если внутри записано стол, то научить его при случае самому составлять из стол-столу, стола и т.д. Еще мона попробовать создать слова-игра в слова с телефоном.
 
programmerДата: Среда, 21.01.2009, 21:05 | Сообщение # 3
Умный
Группа: Проверенные
Сообщений: 599
Награды: 3
Репутация: « 111 »
Статус: Offline
Я ее пока как основа для проги выложил,может кто заинтересуется.
 
adminДата: Среда, 21.01.2009, 21:12 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 244
Награды: 2
Репутация: « 594 »
Статус: Offline
Да. тока совеТ: вместо Delay(5000);. Запакуй в repeat..until false...
И добавь, чтоб разные типа 'Да' or 'конечно' or 'Наверно'
 
adminДата: Воскресенье, 25.01.2009, 19:56 | Сообщение # 5
Admin
Группа: Администраторы
Сообщений: 244
Награды: 2
Репутация: « 594 »
Статус: Offline
Вот код одного паренька:
Code
program UgadaiChislo;    // Супер мега игра угадай число
var i,s,n,m:integer; cmdOK, cmdExit, click: command;    // объявление переменных
begin    // начало
    Randomize;  // это чтобы разные числа загадывались
    showForm;   // отобразим форму
    cmdOk:=CreateCommand('Ввод',CM_OK,0);    // создадим команду выбора
    cmdExit:=CreateCommand('Выход',CM_Exit,1);    // и команду выхода
    addCommand(cmdOk); addCommand(cmdExit);   // и добавим их на экран
    n:=Random(100)+1;                    // загадываем число от 1 до 100
    i:=FormAddTextField('Угадай число','',3,TF_NUMERIC);    // сюда мы будем вводить наше число
    s:=FormAddString('Загадано число от 1 до 100. Угадай его!');    // а сюда выводить сообщения
    repeat         // главный цикл игры
    repeat         // ждем нажатия комманды
     click:=GetClickedCommand;
    until click<>EmptyCommand;
       
    if click=cmdOK then begin    // если нажали на выбор
     m:=StringToInteger(FormGetText(i));    // преобразуем введенный нами текст в число
     formRemove(s);    // в МидлетПаскаль нельзя изменить строку текста. Но можно ее пересоздать. так что удалим старый текст
     formSetText(i,'');    // а заодно очистим и текстовое поле куда мы число ввели
     if m>n then s:=FormAddString('Меньше чем '+IntegerToString(m));    // если наше число больше загаданного
     if m<n then s:=FormAddString('Больше чем '+IntegerToString(m));    // если меньше..
     if m=n then begin                    // если мы угадали
      s:=FormAddString('Пилять! Угадал! Давай снова!');   // выводим победное сообщение   
      n:=Random(100)+1;                    // и загадаем новое число
     end;
    end;
    until click=cmdExit;    // выходим из главного цикла если нажали Выход
end.
 
programmerДата: Вторник, 27.01.2009, 11:07 | Сообщение # 6
Умный
Группа: Проверенные
Сообщений: 599
Награды: 3
Репутация: « 111 »
Статус: Offline
я сейчас пробую добавить также и в мой мидлет но ничего не получается angry
 
adminДата: Четверг, 29.01.2009, 12:43 | Сообщение # 7
Admin
Группа: Администраторы
Сообщений: 244
Награды: 2
Репутация: « 594 »
Статус: Offline
Шо не полушается? Ти как хош сделать?
 
Mixalbl4Дата: Суббота, 31.01.2009, 13:05 | Сообщение # 8
Новичок
Группа: Проверенные
Сообщений: 4
Награды: 0
Репутация: « 0 »
Статус: Offline
имхо если делать
Code
if user = 'Блять!' then comp := 'Не матерись!';
каждый раз то лучше внутри мидлета целый словарь сделать а потом перебором проверять)
 
KIRДата: Среда, 04.02.2009, 20:13 | Сообщение # 9
Начальный
Группа: Проверенные
Сообщений: 50
Награды: 0
Репутация: « 1 »
Статус: Offline
А можно сделать чат по bluetooth?
 
adminДата: Среда, 04.02.2009, 20:15 | Сообщение # 10
Admin
Группа: Администраторы
Сообщений: 244
Награды: 2
Репутация: « 594 »
Статус: Offline
В принципе возможности позволяют, но нужно мозгов, чтобы сообразить, как это все сделать.
 
programmerДата: Пятница, 06.02.2009, 13:14 | Сообщение # 11
Умный
Группа: Проверенные
Сообщений: 599
Награды: 3
Репутация: « 111 »
Статус: Offline
Quote (ADMIN)
Шо не полушается? Ти как хош сделать?

Для начала что бы кокгда проге что то пишешь чтобы в следущий раз написать выходить из проги не приходилось
 
adminДата: Пятница, 06.02.2009, 14:04 | Сообщение # 12
Admin
Группа: Администраторы
Сообщений: 244
Награды: 2
Репутация: « 594 »
Статус: Offline
Окей. Вот кое-что подредактрировал:(будут непонятки-справшивай.) Но Mixalbl4 прав, надо бы по другому такие вещи делать.
program Proga;
var forma,y : integer;
cmdNext,click,cmdExit : command;
user : string;
comp :string;
begin
comp := 'Я не понимаю =(';
ShowForm;
forma := FormAddTextField('говори =)', '', 20, TF_ANY);
y:=FormAddString('Жду');
cmdNext := CreateCommand('ага', CM_OK, 1);
cmdExit:=CreateCommand('Выход',CM_Exit,1);
addCommand(cmdExit);
AddCommand(cmdNext);
repeat
repeat
click:=GetClickedCommand;
until click<>EmptyCommand;
if click=cmdNext then begin // если нажали на выбор
user := FormGetText(forma);
if user = 'Привет!' then comp := 'Ну,привет!';
if user = 'Как тебя зовут?' then comp := 'J2ME болтун';
if user = 'Привет.' then comp := 'Ну,привет.';
if user = 'Как дела?' then comp := 'Нормально!А как у тебя?';
if user = 'Нормально.' then comp := 'Это радует =)';
if user = 'Плохо.' then comp := '=( А сильно плохо?';
if user = 'Сильно.' then comp := '=(';
if user = 'Сильно!' then comp := '=(((((';
if user = 'Блять.' then comp := 'Не матерись.';
if user = 'Блять!' then comp := 'Не матерись!';
if user = 'Пока.' then comp := 'введи exit';
if user = 'Сука.' then comp := 'Не матерись.';
if user = 'Я тебя люблю.' then comp := 'Ты совсем???';
if user = 'Что делаешь?' then comp := 'Смски твоей маме шлю.';
if user = 'Зачем?' then comp := 'Зашкафом!';
if user = 'Как?' then comp := 'Легко!';
if user = 'Легко!' then comp := 'Что легко?';
if user = 'Как тебя выключить?' then comp := 'Введи exit';
if user = 'exit' then halt;
if user = 'Что радует?' then comp := 'Не знаю';
if user = 'Как твои дела?' then comp := 'Хреново';
if user = 'Почему?' then comp := 'Покачану.';
if user = 'Как мои дела?' then comp := 'Не знаю';
if user = 'Говори!' then comp := 'Я устал';
if user = 'Говори.' then comp := 'Говорю =)';
if user = 'Да.' then comp := 'Точно да?';
if user = 'Да!' then comp := 'Ого!Как точно...';
if user = 'Нет.' then comp := 'Понятно...';
if user = 'Exit.' then comp := 'Без точки!';
if user = 'Exit' then comp := 'exit,a не Exit';
if user = 'exit.' then comp := 'Нафиг ты точку поставил?';
if user = 'Что ты делаешь?' then comp := 'Смски шлю.';
if user = 'Кому?' then comp := 'Всем!';
if user = 'Смешно.' then comp := 'Что?';
if user = 'Ничего.' then comp := 'Я рад.';
if user = 'Чему?' then comp := 'Ничему!';
if user = 'Кто тебя создал?' then comp := 'Это секретная информация!';
if user = '=)' then comp := 'Смейся,смейся...';
if user = 'Кто ты?' then comp := 'Я тебе уже говорил...';
if user = 'Чего?' then comp := 'Ничего!';
formRemove(y);
y:=FormAddString(comp);
end;
until click=cmdExit; // выходим из главного цикла если нажали Выход
end.
 
programmerДата: Суббота, 07.02.2009, 10:51 | Сообщение # 13
Умный
Группа: Проверенные
Сообщений: 599
Награды: 3
Репутация: « 111 »
Статус: Offline
Quote (ADMIN)
Окей. Вот кое-что подредактрировал:(будут непонятки-справшивай.) Но Mixalbl4 прав, надо бы по другому такие вещи делать.

Спасибо все работает
 
programmerДата: Суббота, 07.02.2009, 12:57 | Сообщение # 14
Умный
Группа: Проверенные
Сообщений: 599
Награды: 3
Репутация: « 111 »
Статус: Offline
Quote (ADMIN)
надо бы по другому такие вещи делать.

А как?
 
adminДата: Воскресенье, 08.02.2009, 19:23 | Сообщение # 15
Admin
Группа: Администраторы
Сообщений: 244
Награды: 2
Репутация: « 594 »
Статус: Offline
Я не знаю, еще никто не пытался по другому. Делать. но надо бы вводить библиотеку слов, сравинивать первые и втооре слова того, что ввел пользователь. ТоЕСь, вместо например того чтоб писать:
if user = 'У меня синяя машина' then comp := 'Синяя';
if user = 'У меня красная машина' then comp := 'Красная';
if user = 'У меня зеленая машина' then comp := 'Зеленая';
можно например
for i:=1 do 20000 иупшт
если первое слово -зеленая, если второе- машина.
КОРОЧЕ вместо 50ifов можно заделать всего 25стро кода, но зато библиотеку слов. Тяжело это будет сделать.
Это уже создание AI-исскуственного интеллекта - Заствь телефон думать и мыслить.
А ты попробуй заделать - диалог с телефоном, это для начинающих на басике. Телефон запрашивает вопросы, а пользователь отвечает. Например
как тебя зовут? - тел.
Саша. - польз.
'привет' + то, что ввел польз.
Откуда ты? - тел
И ТД,
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: