Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

27.02.2007, 00:06
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Мышление блондинок
Итак, попробуем же реализовать на нашем любимом языке программирования (Си  ) мышление блондинок 
Напишем программу, которая будет генерировать из предложения "Привет. Как дела?" предлоежение "ПРИВЕТ!!!! КАК ДЕЛА????!!!!!" =))
Для этого нам нужно:
1) преобразовать все к верхнему регистру
2) если предложение вопросительное, дополнить его знаками вопроса
2) дополнить предложение восклицательными знаками
Приступим
Код:
#include <stdio.h>
#include <windows.h>
// Преобразование к верхнему регистру
// Разное для разных алфавитов
char touppercase(char c)
{
if( c >= 'a' && c <= 'z' )
return c + 'A' - 'a';
else if( c >= 'а' && c <= 'я' )
return c + 'А' - 'а';
else
return c;
}
// Преобразование предложения
void blonde(char* sentense)
{
// К верхнему регистру
for(char* sp = sentense;*sp;sp++)
*sp = touppercase(*sp);
// Длина предложения
int len = strlen(sentense) + 1;
// Если вопросительное - дополняем
if( sentense[len - 2] == '?' )
for(int i=0;i<7;i++)
{
sentense[len + i - 1] = '?';
sentense[len + i] = 0;
}
// новая длина
len = strlen(sentense) + 1;
// дополняем "!"
for(int i=0;i<7;i++)
{
sentense[len + i - 1] = '!';
sentense[len + i] = 0;
}
}
int main()
{
while(1)
{
char buffer[1024];
// Приглашение. Считываем строчку
printf("blonde> ");
gets(buffer);
// OEM -> ANSI
OemToChar( buffer, buffer );
// Обрабатываем
blonde(buffer);
// ANSI -> OEM
CharToOem( buffer, buffer );
// Выводим
printf("%s\n", buffer);
}
return 0;
}
Все 
Вывод:
blonde> Привет, я блондинка
ПРИВЕТ, Я БЛОНДИНКА!!!!!!!
blonde> Как дела?
КАК ДЕЛА????????!!!!!!!
blonde>
Можно даже ICQ-бота написать )
ЗЫ. Оно зохавало мой моск!!!!!!11111 =\\
|
|
|

27.02.2007, 00:09
|
|
Постоянный
Регистрация: 17.09.2005
Сообщений: 375
Провел на форуме: 993362
Репутация:
175
|
|
давай не бот а модик под аську!
или веб оболочку хотя бы.
буду через нее с некоторыми общаться.
|
|
|

27.02.2007, 00:13
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Напишу веб оболочку )) Общацо
|
|
|

27.02.2007, 00:16
|
|
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме: 1174659
Репутация:
175
|
|
а теперь о косячгах
Сообщение от _Great_
// Преобразование к верхнему регистру
// Разное для разных алфавитов
char touppercase(char c)
{
if( c >= 'a' && c <= 'z' )
return c + 'A' - 'a';
else if( c >= 'а' && c <= 'я' )
return c + 'А' - 'а';
else
return c;
}
ну да, стока буква, вместа обычной стандартной, сишной int toupper(int c );
// Преобразование предложения
void blonde(char* sentense)
берёшь сишную страку, делаешь её больше, а проверку на выход за пределы не проводишь.
|
|
|

27.02.2007, 00:20
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
ну да, стока буква, вместа обычной стандартной, сишной int toupper(int c );
уверен, что она обрабатывает русский язык корректно?
берёшь сишную страку, делаешь её больше, а проверку на выход за пределы не проводишь.
я заблаговременно выделил 1024 байта под нее.
на большее оно не способно. А что ты хотел от блондинки?))
|
|
|

27.02.2007, 00:29
|
|
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме: 1174659
Репутация:
175
|
|
Сообщение от _Great_
уверен, что она обрабатывает русский язык корректно?
ага, уверен
я заблаговременно выделил 1024 байта под нее.
на большее оно не способно. А что ты хотел от блондинки?))
ну может ты где-то эти 1024 байта и выделил.. а функции то это неизвестно, мог бы и размерчег передавать,
а вообще даже в твоём коде кто запрещает пользователю страку набить более чем 1к?
|
|
|

27.02.2007, 00:33
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Да че пристал, дай постебаться )))
|
|
|

27.02.2007, 00:49
|
|
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме: 1204641
Репутация:
412
|
|
на php все выйдет куда короче....
|
|
|

27.02.2007, 00:49
|
|
Участник форума
Регистрация: 06.10.2006
Сообщений: 226
Провел на форуме: 3025546
Репутация:
1327
|
|
а мне один раз примерно такая попалась
#include<iostream.h>
#include<windows.h>
const char*ru(const char*s)
{
static char but[256];
CharToOem (s,but);
return but;
}
void main()
{
int i=0;
int n;
for (i=0; i>n; i++)
cout<<ru("Че ты молчишь???????");
}
|
|
|

27.02.2007, 02:18
|
|
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме: 1174659
Репутация:
175
|
|
Сообщение от _Great_
Итак, попробуем же реализовать на нашем любимом языке программирования (Си  )
а теперь пишем плагин к миранде, который позволяет делать следующее:
при вводе /blo text, для text'а делаем замену на бландинистый стиль, и выплювывем обратна(работает как в личке(icq, irc), так и на irc канале, также наводимся на цель.
комадой
/aim имя_цели
которая устанавливает цель на irc канале,и при попытке этого чувачка написать текст, выводит нечто следующее
PHP код:
[01:12] sni40k15430: UnNam3D wanna say: ЧО ТАМА ????!!!!!
[01:12] Dr_Check|off: да
[01:12] SliP|: -_-
[01:12] UnNam3D: про америкосов нах ?
[01:12] sni40k15430: UnNam3D wanna say: ПРО АМЕРИКОСОВ НАХ ????!!!!!
ну и собственно исходник плагинчега:
PHP код:
<?php
function mbot_load()
{
mb_SelfRegister(MB_EVENT_MSG_OUT|IRC_EVENT_GUI_OUT|IRC_EVENT_GUI_IN, 1);
}
function ConvertStringToBlondy($msg)
{
$msg = @strtoupper($msg);
$msg = @str_replace(",", "!!!!", $msg);
$msg = @str_replace("?", "????!!", $msg);
$msg = $msg.'!!!';
return $msg;
}
function MakeBlonyString($body){
if(@strlen($body) <= 6) return 0;
if(@substr($body,0,4) == '/blo'){
$msg = @substr($body,5);
$msg = @ConvertStringToBlondy($msg);
return $msg;
}
return 0;
}
function SetTarget($aim)
{
if(@strlen($aim) <= 6) return 0;
if(@substr($aim,0,4) == '/aim'){
$aim = @substr($aim,5);
@mt_setvar('target', $aim, 1);
mb_PUMsg('Target setted');
return 1;
}
return 0;
}
function ApplyMsg($msg)
{
$ret = @SetTarget($msg);
if($ret === 1) return 1;
return @MakeBlonyString($msg);
}
function mbe_MsgOut($cid,$body)
{
$msg = @ApplyMsg($body);
if($msg === 0) return 0;
if($msg === 1) return "drop";
mb_MsgSetBody($msg);
return "send";
}
function irc_GuiOut($module,$iType,$channel,$pszUID,$text)
{
$msg = @ApplyMsg($text);
if($msg === 0) return 0;
if($msg === 1) return "drop";
mb_IrcSetGuiDataOut($iType,null,$pszUID,"$msg");
return 0;
}
function irc_GuiIn($module,$eventtype,$channel,$nick,$text)
{
if(@strcmp($eventtype, 64) == 0){
$target = @mt_getvar('target');
if(@strcmp($nick, $target) == 0){
// mb_PUMsg('voshli');
$msg = @ConvertStringToBlondy($text);
if($msg === 0) return 0;
$msg = $target.' wanna say: '.$msg;
$msg = '/MSG '.$channel.' '.$msg;
mb_IrcPostMessage($module,$msg);
// mb_PUMsg($msg);
}
return 0;
}
}
?>
да, работает он используя плагин:
MBot/MSP (Miranda Scripting Plugin)
Последний раз редактировалось sni4ok; 27.02.2007 в 02:29..
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Клавиатура для блондинок
|
censored! |
Болталка |
7 |
27.02.2007 14:39 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|