Программа - чат с телефоном,с исскуственным интилектом =)
|
|
programmer | Дата: Среда, 21.01.2009, 12:14 | Сообщение # 1 |
Умный
Группа: Проверенные
Сообщений: 599
| 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способа6 1.Либо создать кучу слов и кинуть в прогу, 2.Либо создать союзы, слова, окончания и т.д и научить телефон читать и разумно отвечать, например если внутри записано стол, то научить его при случае самому составлять из стол-столу, стола и т.д. Еще мона попробовать создать слова-игра в слова с телефоном.
|
|
| |
programmer | Дата: Среда, 21.01.2009, 21:05 | Сообщение # 3 |
Умный
Группа: Проверенные
Сообщений: 599
| Я ее пока как основа для проги выложил,может кто заинтересуется.
|
|
| |
admin | Дата: Среда, 21.01.2009, 21:12 | Сообщение # 4 |
Admin
Группа: Администраторы
Сообщений: 244
| Да. тока совеТ: вместо Delay(5000);. Запакуй в repeat..until false... И добавь, чтоб разные типа 'Да' or 'конечно' or 'Наверно'
|
|
| |
admin | Дата: Воскресенье, 25.01.2009, 19:56 | Сообщение # 5 |
Admin
Группа: Администраторы
Сообщений: 244
| Вот код одного паренька: 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
| я сейчас пробую добавить также и в мой мидлет но ничего не получается
|
|
| |
admin | Дата: Четверг, 29.01.2009, 12:43 | Сообщение # 7 |
Admin
Группа: Администраторы
Сообщений: 244
| Шо не полушается? Ти как хош сделать?
|
|
| |
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
| В принципе возможности позволяют, но нужно мозгов, чтобы сообразить, как это все сделать.
|
|
| |
programmer | Дата: Пятница, 06.02.2009, 13:14 | Сообщение # 11 |
Умный
Группа: Проверенные
Сообщений: 599
| Quote (ADMIN) Шо не полушается? Ти как хош сделать? Для начала что бы кокгда проге что то пишешь чтобы в следущий раз написать выходить из проги не приходилось
|
|
| |
admin | Дата: Пятница, 06.02.2009, 14:04 | Сообщение # 12 |
Admin
Группа: Администраторы
Сообщений: 244
| Окей. Вот кое-что подредактрировал:(будут непонятки-справшивай.) Но 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
| Quote (ADMIN) Окей. Вот кое-что подредактрировал:(будут непонятки-справшивай.) Но Mixalbl4 прав, надо бы по другому такие вещи делать. Спасибо все работает
|
|
| |
programmer | Дата: Суббота, 07.02.2009, 12:57 | Сообщение # 14 |
Умный
Группа: Проверенные
Сообщений: 599
| Quote (ADMIN) надо бы по другому такие вещи делать. А как?
|
|
| |
admin | Дата: Воскресенье, 08.02.2009, 19:23 | Сообщение # 15 |
Admin
Группа: Администраторы
Сообщений: 244
| Я не знаю, еще никто не пытался по другому. Делать. но надо бы вводить библиотеку слов, сравинивать первые и втооре слова того, что ввел пользователь. ТоЕСь, вместо например того чтоб писать: if user = 'У меня синяя машина' then comp := 'Синяя'; if user = 'У меня красная машина' then comp := 'Красная'; if user = 'У меня зеленая машина' then comp := 'Зеленая'; можно например for i:=1 do 20000 иупшт если первое слово -зеленая, если второе- машина. КОРОЧЕ вместо 50ifов можно заделать всего 25стро кода, но зато библиотеку слов. Тяжело это будет сделать. Это уже создание AI-исскуственного интеллекта - Заствь телефон думать и мыслить. А ты попробуй заделать - диалог с телефоном, это для начинающих на басике. Телефон запрашивает вопросы, а пользователь отвечает. Например как тебя зовут? - тел. Саша. - польз. 'привет' + то, что ввел польз. Откуда ты? - тел И ТД,
|
|
| |