PDA

نسخه کامل مشاهده نسخه کامل : کد جاوای سخنگو



GodMaster
04-09-2007, 13:58
این کد جاوای برنامه سخنگوی eliza که می تونید اون رو در سورس یک صفحه ی html قرار دهید و از ان استفاده کنید
در ضمن اگر سورس بخصوصی رو خواستین بهد از همین پست بگین

<html>
<head>
<meta [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]"Content-Language" content="en-us">
<meta [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]"Content-Type" content="text/html; charset=ISO-8859-1">
<title>Eliza</title>
</head>
<script language="JavaScript">
<!--
////////////////////////////////////////////////////////////////////////////////
//
// JavaScript Eliza
// Copyright (C) 1998-2003 Mark Jundo P. Documento (javelinexxx@yahoo.com)
// All rights reserved
//
// Feel free to use this in your web page/site,
// BUT WITHOUT ANY modifications to this notice.
//
////////////////////////////////////////////////////////////////////////////////
// global variables
var MAXConj = 23;
var MAXConj2 = 13;
var MAXKeywords = 86;
var MAXResponses = 177;
var KeysPerResp = 20;
var myStr = "";
var lastOutput = "";
var lastInput = "";
var bNullInput = false;
var repeats = 0;
var timerID1 = null;
var timerID2 = null;
var outIndex = 0;
var theReply;
var wordIn = new Array(MAXConj);
var wordOut = new Array(MAXConj);
var phraseIn = new Array(MAXConj2);
var phraseOut = new Array(MAXConj2);
var keys = new Array(MAXKeywords);
var responses = new Array(MAXResponses);
var keysFound = new Array(KeysPerResp);
// Define a keyword object.
function keyword(word, pos, n)
{
this.word = word;
this.pos = pos;
this.total = n;
this.lastUsed = -1;
}
function str_indexOf(s1, s2, pos)
{
if (pos < 0) pos = 0;
if (pos >= s1.length) pos = s1.length - 1;
var temp = s1.substring(pos);
var i = temp.indexOf(s2);
if (i > -1) i += pos;
return i;
}
// Deletes n characters from s starting at pos.
function str_delete(s, pos, n)
{
if (pos < 0) pos = 0;
if (pos >= s.length) pos = s.length - 1;
if (n < 0) n = 0;
if (n > s.length) n = s.length;
return (s.substring(0, pos) + s.substring(pos + n));
}
// Deletes n characters from s1 starting from pos and
// replaces them with s2. The function works even if
// s2.length <> n.
function str_replace(s1, pos, n, s2)
{
if (pos < 0) pos = 0;
if (pos >= s1.length) pos = s1.length - 1;
if (n < 0) n = 0;
if (n > s1.length) n = s1.length;
return (s1.substring(0, pos) + s2 + s1.substring(pos + n));
}
// Replaces every instance of substring s2 in s1 with s3.
function str_replace_every(s1, s2, s3)
{
var i = s1.indexOf(s2);
while (i != -1)
{
s1 = str_replace(s1, i, s2.length, s3);
i = s1.indexOf(s2);
}

return s1;
}
// Deletes all whitespaces from s.
function str_delwhitespaces(s)
{
s = str_replace_every(s, " ", "");
return str_replace_every(s, "\t", "");
}
// Deletes duplicate adjacent whitespaces.
function str_del_extra_spaces(s)
{
var i = 0;
while (i < s.length)
{
if ((s.charAt(i) == ' ' || s.charAt(i) == '\t') &&
(s.charAt(i + 1) == ' ' || s.charAt(i + 1) == '\t'))
s = str_delete(s, i + 1, 1);
else i++;
}
return s;
}
// Deletes all whitespaces from s, if there's any,
// starting at position 0 up to the first non-whitespace
// character.
function str_trimleft(s)
{
var i = 0;
while(i < s.length &&
(s.charAt(i) == ' ' ||
s.charAt(i) == '\t')) i++;
if (i > 0) s = str_delete(s, 0, i);

return s;
}
// Deletes all whitespaces from s, if there's any,
// starting from position s.length - 1 up to the last
// non-whitespace character.
function str_trimright(s)
{
var i = s.length - 1;
while(i > 0 &&
(s.charAt(i) == ' ' ||
s.charAt(i) == '\t')) i--;
if (i < s.length - 1) s = str_delete(s, i + 1, s.length);

return s;
}
// Trims beginning and ending whitespace characters.
function str_trim(s)
{
s = str_trimleft(s);
return str_trimright(s);
}
// Gets the rightmost substring with length n.
function str_right(s, n)
{
if (n > s.length || n < 0) n = s.length;
return s.substring(s.length - n);
}
// Characters regarded as puntuations
var puncs = ",.:;?!";
// Deletes any punctuation from s.
function str_delpuncs(s)
{
var i = 0;
while (i < s.length)
{
if (puncs.indexOf(s.charAt(i)) > -1)
s = str_delete(s, i, 1);
else i++;
}
return s;
}
// Create conjugation tables
wordIn[0] = " YOU ARE "; wordOut[0] = " I AM ";
wordIn[1] = " ARE "; wordOut[1] = " AM ";
wordIn[2] = " AM "; wordOut[2] = " ARE ";
wordIn[3] = " WERE "; wordOut[3] = " WAS ";
wordIn[4] = " WAS "; wordOut[4] = " WERE ";
wordIn[5] = " ME "; wordOut[5] = " YOU ";
wordIn[6] = " YOU "; wordOut[6] = " ME ";
wordIn[7] = " MY "; wordOut[7] = " YOUR ";
wordIn[8] = " YOURE "; wordOut[8] = " MY ";
wordIn[9] = " I'VE "; wordOut[9] = " YOU'VE ";
wordIn[10] = " YOU'VE "; wordOut[10] = " I'VE ";
wordIn[11] = " I'M "; wordOut[11] = " YOU'RE ";
wordIn[12] = " YOU'RE "; wordOut[12] = " I'M ";
wordIn[13] = " I "; wordOut[13] = " YOU ";
wordIn[14] = " YOU "; wordOut[14] = " I ";
wordIn[15] = " AREN'T "; wordOut[15] = " AM NOT ";
wordIn[16] = " WEREN'T "; wordOut[16] = " WASN'T ";
wordIn[17] = " WEREN'T "; wordOut[17] = " WASN'T ";
wordIn[18] = " I'D "; wordOut[18] = " YOU'D ";
wordIn[19] = " YOU'D "; wordOut[19] = " I'D ";
wordIn[20] = " DAD "; wordOut[20] = " FATHER ";
wordIn[21] = " MOM "; wordOut[21] = " MOTHER ";
wordIn[22] = " DREAMS "; wordOut[22] = " DREAM ";
// Create corrective conjugation tables.
phraseIn[0] = "ME AM"; phraseOut[0] = "I AM";
phraseIn[1] = "AM ME"; phraseOut[1] = "AM I";
phraseIn[2] = "ME CAN"; phraseOut[2] = "I CAN";
phraseIn[3] = "CAN ME"; phraseOut[3] = "CAN I";
phraseIn[4] = "ME HAVE"; phraseOut[4] = "I HAVE";
phraseIn[5] = "HAVE ME"; phraseOut[5] = "HAVE I";
phraseIn[6] = "ME HAD"; phraseOut[6] = "I HAD";
phraseIn[7] = "HAD ME"; phraseOut[7] = "HAD I";
phraseIn[8] = "ME WILL"; phraseOut[8] = "I WILL";
phraseIn[9] = "WILL ME"; phraseOut[9] = "WILL I";
phraseIn[10] = "ME DON'T"; phraseOut[10] = "I DON'T";
phraseIn[11] = "DON'T ME"; phraseOut[11] = "DON'T I";
phraseIn[12] = "ME WON'T"; phraseOut[12] = "I WON'T";
phraseIn[13] = "WON'T ME"; phraseOut[13] = "WON'T I";
// Create response and keyword tables
keys[0] = new keyword("@SIGNON@", 0, 5);
responses[ 0] = "IT'S A NICE TIME FOR CHAT DON'T YOU THINK?";
responses[ 1] = "SO, HOW ARE YOU DOING TODAY?";
responses[ 2] = "HELLO, MY NAME'S ELIZA. HOW DO YOU DO?";
responses[ 3] = "SO, WANNA TALK ABOUT ANYTHING?";
responses[ 4] = "HI, WELCOME TO MY OFFICE. WHAT DO YOU WANT TO TALK ABOUT?";
keys[1] = new keyword("@NULL@", 5, 6);
responses[ 5] = "YOU'RE GONNA WEAR YOUR ENTER KEY OUT IF YOU KEEP THAT UP.";
responses[ 6] = "A ROCK WOULD BE MORE INTERESTING TO TALK TO.";
responses[ 7] = "COME AGAIN?";
responses[ 8] = "WHAT?";
responses[ 9] = "HOW AM I SUPPOSED TO TALK IF YOU WON'T SAY ANYTHING?";
responses[10] = "HUH?";
keys[2] = new keyword("@MY@", 11, 4);
responses[11] = "EARLIER YOU MENTIONED THAT YOUR*.";
responses[12] = "HAVE YOU MENTIONED THAT YOUR*?";
responses[13] = "DOES THAT HAVE ANYTHING TO DO WITH THE FACT THAT YOUR*?";
responses[14] = "A WHILE BACK YOU SAID YOUR*.";
keys[3] = new keyword("@NO KEY@", 15, 10);
responses[15] = "PLEASE GO ON.";
responses[16] = "A GOOD CONVERSATION'S JUST TOO GOOD TO BE TRUE.";
responses[17] = "THAT'S INTERESTING...";
responses[18] = "AND????";
responses[19] = "CAN YOU CLARIFY THAT A BIT?";
responses[20] = "HAVEN'T HEARD ABOUT THAT ONE.";
responses[21] = "WHAT'S THAT SUPPOSED TO MEAN?";
responses[22] = "I'M NOT SURE I KNOW WHAT YOU'RE TALKING ABOUT.";
responses[23] = "WHAT DOES THAT SUGGEST TO YOU?";
responses[24] = "I SEE.";
keys[4] = new keyword("REPEAT", 25, 6);
responses[25] = "WHY DO YOU REPEAT YOURSELF?";
responses[26] = "DO YOU EXPECT A DIFFERENT ANSWER BY REPEATING YOURSELF?";
responses[27] = "YOU ARE STARTING TO REPEAT YOURSELF.";
responses[28] = "WHAT'S THE POINT TO ALL THIS?";
responses[29] = "PLEASE STOP REPEATING YOURSELF.";
responses[30] = "YOU'RE STARTING TO NAG.";
keys[5] = new keyword("I DON'T ", 31, 4);
keys[6] = new keyword("I DONT ", 31, 4);
keys[7] = new keyword("I DO NOT ", 31, 4);
responses[31] = "DON'T YOU REALLY*?";
responses[32] = "WHY DON'T YOU*?";
responses[33] = "DO YOU WISH TO BE ABLE TO*?";
responses[34] = "DOES THAT TROUBLE YOU THAT YOU DON'T*?";
keys[8] = new keyword("I FEEL ", 35, 4);
responses[35] = "HOW LONG HAVE YOU FELT*?";
responses[36] = "DO YOU OFTEN FEEL*?";
responses[37] = "DO YOU ENJOY FEELING*?";
responses[38] = "FEELINGS CERTAINLY VARY FROM PERSON TO PERSON.";
keys[9] = new keyword("WHY CAN'T I ", 39, 2);
keys[10] = new keyword("WHY CANT I ", 39, 2);
responses[39] = "DO YOU THINK YOU SHOULD BE ABLE TO*?";
responses[40] = "WHY CAN'T YOU*?";
keys[11] = new keyword("I CAN'T ", 41, 3);
keys[12] = new keyword("I CANT ", 41, 3);
keys[13] = new keyword("I CANNOT ", 41, 3);
responses[41] = "PERHAPS YOU CAN NOW*?";
responses[42] = "HAVE YOU TRIED?";
responses[43] = "HOW DO YOU KNOW YOU CAN'T*?";
keys[14] = new keyword("I AM ", 44, 4);
keys[15] = new keyword("I'M ", 44, 4);
keys[16] = new keyword("IM ", 44, 4);
responses[44] = "DID YOU COME TO ME BECAUSE YOU ARE*?";
responses[45] = "HOW LONG HAVE YOU BEEN*?";
responses[46] = "DO YOU BELIEVE IT IS NORMAL TO BE*?";
responses[47] = "DO YOU ENJOY BEING*?";
keys[17] = new keyword("I REMEMBER ", 48, 5);
responses[48] = "DO YOU OFTEN THINK OF*?";
responses[49] = "DOES THINKING OF*BRING SOMETHING ELSE TO MIND?";
responses[50] = "WHY DO YOU REMEMBER*JUST NOW?";
responses[51] = "WHAT IN THE PRESENT SITUATION REMINDS YOU OF*?";
responses[52] = "WHAT IS THE CONNECTION BETWEEN ME AND*?";
keys[18] = new keyword("I WANT ", 53, 5);
responses[53] = "WHAT WOULD IT MEAN TO YOU IF YOU GOT*?";
responses[54] = "I SOMETIMES ALSO WANT*.";
responses[55] = "WHAT IF YOU NEVER GOT*?";
responses[56] = "SUPPOSE YOU SOON GOT*?";
responses[57] = "WHY DO YOU WANT*?";
keys[19] = new keyword("I HAVE ", 58, 3);
keys[20] = new keyword("I'VE ", 58, 3);
keys[21] = new keyword("IVE ", 58, 3);
responses[58] = "ARE YOU TROUBLED THAT YOU HAVE*?";
responses[59] = "HAS SOMEONE TOLD YOU THAT YOU HAVE*?";
responses[60] = "WHY DO YOU FEEL THAT YOU HAVE*?";
keys[22] = new keyword("WAS I", 61, 1);
responses[61] = "WHAT IF YOU WERE*?";
keys[23] = new keyword("I WAS ", 62, 1);
responses[62] = "WERE YOU REALLY?";
keys[24] = new keyword("CAN YOU ", 63, 4);
responses[63] = "DON'T YOU BELIEVE THAT I CAN*?";
responses[64] = "PERHAPS YOU WOULD LIKE TO BE ABLE TO*.";
responses[65] = "YOU WANT ME TO BE ABLE TO*?";
responses[66] = "DOES IT MATTER TO YOU IF I CAN*?";
keys[25] = new keyword("YOU ARE ", 67, 4);
keys[26] = new keyword("YOU'RE ", 67, 4);
keys[27] = new keyword("YOURE ", 67, 4);
responses[67] = "WHAT MAKES YOU THINK I AM*?";
responses[68] = "DO YOU SOMETIMES WISH YOU WERE*?";
responses[69] = "PERHAPS YOU WOULD LIKE TO BE*.";
responses[70] = "DOES IT PLEASE YOU TO BELIEVE I AM*?";
keys[28] = new keyword("WHY DON'T YOU ", 71, 3);
keys[29] = new keyword("WHY DONT YOU ", 71, 3);
responses[71] = "DO YOU REALLY BELIEVE I DON'T*?";
responses[72] = "PERHAPS IN GOOD TIME I WILL*.";
responses[73] = "DO YOU WANT ME TO*?";
keys[30] = new keyword("ARE YOU ", 74, 3);
responses[74] = "WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM*?";
responses[75] = "PERHAPS IN YOUR FANTASIES I AM*.";
responses[76] = "WOULD YOU PREFER IF I WERE NOT*?";
keys[31] = new keyword("DO YOU REMEMBER ", 77, 3);
responses[77] = "DID YOU THINK I WOULD FORGET*?";
responses[78] = "WHY DO YOU THINK I SHOULD RECALL*NOW?";
responses[79] = "WHAT ABOUT*?";
keys[32] = new keyword("YOU ", 81, 3);
responses[81] = "WHAT DIFFERENCE DOES IT MAKE IF I*?";
responses[82] = "YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU?";
responses[83] = "OH, I*?";
keys[33] = new keyword("WHERE YOU ", 84, 1);
responses[84] = "WOULD YOU LIKE TO BELIEVE I WAS*?";
keys[34] = new keyword("MY MOTHER ", 85, 2);
keys[35] = new keyword("MY FATHER ", 85, 2);
keys[36] = new keyword("MY SISTER ", 85, 2);
keys[37] = new keyword("MY BROTHER ", 85, 2);
keys[38] = new keyword("MY WIFE ", 85, 2);
keys[39] = new keyword("MY HUSBAND ", 85, 2);
keys[40] = new keyword("MY CHILDREN ", 85, 2);
responses[85] = "TELL ME MORE ABOUT YOUR FAMILY.";
responses[86] = "DO YOU HAVE CLOSE FAMILY TIES?";
keys[41] = new keyword("MY ", 87, 2);
responses[87] = "WHAT IF YOUR*?";
responses[88] = "YOUR*.";
keys[42] = new keyword("WHAT ", 89, 9);
keys[43] = new keyword("HOW ", 89, 9);
keys[44] = new keyword("WHEN ", 89, 9);
keys[45] = new keyword("WHERE ", 89, 9);
keys[46] = new keyword("WHO ", 89, 9);
keys[47] = new keyword("WHY ", 89, 9);
responses[89] = "WHY DO YOU ASK?";
responses[91] = "DOES THAT QUESTION INTEREST YOU?";
responses[92] = "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?";
responses[93] = "HAVE YOU ASKED SUCH QUESTIONS BEFORE?";
responses[94] = "HAVE YOU ASKED ANYONE ELSE?";
responses[95] = "WHAT IS IT THAT YOU REALLY WANT TO KNOW?";
responses[96] = "WHAT ANSWER WOULD PLEASE YOU THE MOST?";
responses[97] = "WHAT DO YOU THINK?";
responses[98] = "ARE SUCH QUESTIONS ON YOUR MIND OFTEN?";
keys[48] = new keyword("NAME ", 99, 3);
responses[99] = "I DON'T CARE ABOUT NAMES --PLEASE GO ON.";
responses[100] = "A MAN'S NAME CAN TELL A LOT ABOUT HIM.";
responses[101] = "NAMES DON'T INTEREST ME.";
keys[49] = new keyword("CAUSE ", 102, 4);
responses[102] = "IS THAT THE REAL REASON?";
responses[103] = "WHAT OTHER REASONS MIGHT THERE BE?";
responses[104] = "DOES THAT REASON EXPLAIN ANYTHING ELSE?";
responses[105] = "DON'T ANY OTHER REASONS COME TO MIND?";
keys[50] = new keyword("I'M SORRY ", 106, 4);
keys[51] = new keyword("IM SORRY ", 106, 4);
keys[52] = new keyword("SORRY ", 106, 4);
responses[106] = "PLEASE DON'T APOLOGIZE!";
responses[107] = "DON'T BE SO DEFENSIVE!";
responses[108] = "WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE?";
responses[109] = "APOLOGIES ARE NOT NECESSARY.";
keys[53] = new keyword("I DREAMED ", 110, 5);
keys[54] = new keyword("I DREAM ", 110, 5);
keys[55] = new keyword("DREAM ", 110, 5);
responses[110] = "DO YOU OFTEN DREAM THAT*?";
responses[111] = "ARE YOU DISTURBED BY YOUR DREAMS?";
responses[112] = "WHAT PERSONS APPEAR IN YOUR DREAMS?";
responses[113] = "DO YOU DREAM OFTEN?";
responses[114] = "WHAT DOES THAT DREAM SUGGEST TO YOU?";
keys[56] = new keyword("MAYBE ", 115, 5);
responses[115] = "DON'T YOU KNOW?";
responses[116] = "YOU AREN'T SURE?";
responses[117] = "CAN'T YOU BE MORE POSITIVE?";
responses[118] = "WHY THE UNCERTAIN TONE?";
responses[119] = "YOU DON'T SEEM QUITE CERTAIN.";
keys[57] = new keyword("YOUR ", 120, 2);
responses[120] = "WHY ARE YOU CONCERNED ABOUT MY*?";
responses[121] = "WHAT ABOUT YOUR OWN*?";
keys[58] = new keyword("ALWAYS ", 122, 4);
responses[122] = "CAN YOU THINK OF A SPECIFIC EXAMPLE?";
responses[123] = "REALLY, ALWAYS?";
responses[124] = "WHAT ARE YOU THINKING OF?";
responses[125] = "WHEN?";
keys[59] = new keyword("I THINK ", 126, 3);
responses[126] = "DO YOU REALLY THINK SO?";
responses[127] = "BUT YOU ARE NOT SURE YOU*.";
responses[128] = "DO YOU DOUBT YOU*?";
keys[60] = new keyword("ALIKE ", 129, 6);
keys[61] = new keyword("SAME ", 129, 6);
responses[129] = "IN WHAT WAY?";
responses[130] = "COULD THERE REALLY BE SOME CONNECTION?";
responses[131] = "WHAT OTHER CONNECTIONS DO YOU SEE?";
responses[132] = "HOW?";
responses[133] = "WHAT DOES THE SIMILARITY SUGGEST TO YOU?";
responses[134] = "WHAT RESEMBLANCE DO YOU SEE?";
keys[62] = new keyword("YES ", 135, 7);
keys[63] = new keyword("YEAH ", 135, 7);
keys[64] = new keyword("YUP ", 135, 7);
keys[65] = new keyword("YA ", 135, 7);
keys[66] = new keyword("YO ", 135, 7);
keys[67] = new keyword("UHUH ", 135, 7);
responses[135] = "ARE YOU SURE?";
responses[136] = "YOU SEEM TO BE SURE OF YOURSELF.";
responses[137] = "YOUR POINT BEING?";
responses[138] = "YOU SEEM QUITE POSITIVE.";
responses[139] = "IS THERE MORE TO THIS THAN THAT?";
responses[140] = "I UNDERSTAND.";
responses[141] = "I SEE.";
keys[68] = new keyword("NO ", 142, 7);
keys[69] = new keyword("NAY ", 142, 7);
keys[70] = new keyword("NAH ", 142, 7);
responses[142] = "IS THERE MORE TO THIS THAN THAT?";
responses[143] = "ARE YOU SAYING NO JUST TO BE NEGATIVE?";
responses[144] = "NO*?";
responses[145] = "YOUR POINT BEING?";
responses[146] = "ARE YOU SURE?";
responses[147] = "YOU ARE BEING A BIT NEGATIVE.";
responses[148] = "WHY NOT?";
keys[71] = new keyword("CAN I ", 149, 2);
responses[149] = "PERHAPS YOU DON'T WANT TO*.";
responses[150] = "DO YOU WANT TO BE ABLE TO*?";
keys[72] = new keyword("FRIEND ", 151, 6);
responses[151] = "WHY DO YOU BRING UP THE TOPIC OF FRIENDS?";
responses[152] = "DO YOUR FRIENDS WORRY YOU?";
responses[153] = "PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU.";
responses[154] = "DO YOU IMPOSE ON YOUR FRIENDS?";
responses[155] = "ARE YOU SURE YOU HAVE ANY FRIENDS?";
responses[156] = "DO YOUR FRIENDS PICK ON YOU?";
keys[73] = new keyword("COMPUTER", 157, 7);
keys[74] = new keyword("MACHINE", 157, 7);
responses[157] = "DO COMPUTERS WORRY YOU?";
responses[158] = "ARE YOU TALKING ABOUT ME IN PARTICULAR?";
responses[159] = "WHAT IS IT ABOUT MACHINES THAT WORRIES YOU?";
responses[160] = "DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?";
responses[161] = "WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEM?";
responses[162] = "WHY DO YOU MENTION COMPUTERS?";
responses[163] = "ARE YOU FRIGHTENED BY MACHINES?";
keys[75] = new keyword("IF ", 163, 1);
responses[163] = "DO YOU THINK IT'S LIKELY THAT IF*?";
keys[76] = new keyword("EVERYBODY ", 164, 1);
keys[77] = new keyword("EVERYONE ", 164, 1);
responses[164] = "REALLY, EVERYBODY?";
keys[78] = new keyword("NOBODY ", 165, 1);
keys[79] = new keyword("NO ONE ", 165, 1);
responses[165] = "REALLY, NOBODY?";
keys[80] = new keyword("HELLO ", 166, 2);
keys[81] = new keyword("HI ", 166, 2);
responses[166] = "HI! WHAT DO YOU WANT TO TALK ABOUT?";
responses[167] = "HOWDY, WHAT'S UP?";
keys[82] = new keyword("****", 168, 3);
keys[83] = new keyword("**** YOU ", 168, 3);
responses[168] = "YOU'RE A PIG!";
responses[169] = "NOT NOW, I'M STILL BUSY!";
responses[170] = "NOW, NOW, DON'T GET ANY IDEAS.";
keys[84] = new keyword("GOD ", 171, 2);
responses[171] = "DO YOU BELIEVE IN A GOD?";
responses[172] = "ARE YOU A RELIGIOUS PERSON?";
keys[85] = new keyword("@WAKE UP CALLS@", 173, 4);
responses[173] = "IS ANYBODY STILL THERE?";
responses[174] = "ARE WE GOING TO CHAT OR NOT?";
responses[175] = "HEY, PLEASE DON'T SLEEP ON ME!";
responses[176] = "HOW CAN I HELP YOU IF YOU WON'T TALK?";

// Prepare the string for finding keywords.
function preprocess(s)
{
s = str_del_extra_spaces(s);
s = str_delpuncs(s);
s = s.toUpperCase();
s = str_trimleft(s);
s = str_trimright(s);
bNullInput = (s == "");
return (" " + s + " ");
}
// Find all keywords in a given input string.
function findkeys(s)
{
var i;
var j = 0;
for (i = 0; i < KeysPerResp; i++)
keysFound[i] = -1;
for (i = 5; i < MAXKeywords - 1; i++)
if (s.indexOf(keys[i].word) != -1)
{
keysFound[j] = i;
j++;
}
return j;
}
function conjugateAndTranspose(s)
{
var i, j = 0, l;
while (j < s.length)
{
for (i = 0; i < MAXConj; i++)
{
l = str_indexOf(s, wordIn[i], j);
if (l > -1)
{
s = str_replace(s, l, wordIn[i].length, wordOut[i]);
j = l + wordOut[i].length;
break;
}
}
if (i == MAXConj) j = s.length;
}

j = 0;
while (j < s.length)
{
for (i = 0; i < MAXConj2; i++)
{
l = str_indexOf(s, phraseIn[i], j);
if (l > -1)
{
s = str_replace(s, l, phraseIn[i].length, phraseOut[i]);
j = l + phraseOut[i].length;
break;
}
}

if (i == MAXConj2) j = s.length;
}
s = str_trim(s);

return s;
}
function handleResponse(iKey, outStr)
{
var replyStr = "";
var randomKey = -1;
var i;
if (iKey != -1)
{
if (keys[iKey].word == "MY ") myStr = outStr;

while (randomKey == -1 || randomKey == keys[iKey].lastUsed)
randomKey = Math.floor(Math.random()*keys[iKey].total);
replyStr = responses[keys[iKey].pos + randomKey];
keys[iKey].lastUsed = randomKey;
}
i = replyStr.indexOf("*");
if (i > -1)
{
if (outStr != "")
{
if (replyStr.length > i + 2)
replyStr = str_replace(replyStr, i, 1, " " + outStr + " ");
else
replyStr = str_replace(replyStr, i, 1, " " + outStr);
}
else replyStr = str_replace(replyStr, i, 1, "");
}
return replyStr.toLowerCase();
}
function countNewLines(s)
{
var i, j = 0;
for (i = 0; i < s.length; i++)
if (s.charAt(i) == '\n' || s.charAt(i) == '\r') j++;
return j;
}
function wakeup()
{
if (countNewLines(lastOutput) > 20)
lastOutput = "> ";
var replyStr = handleResponse(85, "");
lastOutput = lastOutput + "\n" + replyStr + "\n> ";
document.Eliza.output.value = lastOutput;
lastOutput = document.Eliza.output.value;
timerID1 = setTimeout("wakeup()", 900000); // wake you up every 15 mins.
}
function refresh()
{
if (lastOutput != document.Eliza.output.value)
document.Eliza.output.value = lastOutput;
setTimeout("refresh()", 5000);
}
function chat()
{
clearTimeout(timerID1);
timerID1 = setTimeout("wakeup()", 60000); // wake you up after 1 minute of irresponsiveness
var replyStr = "";
if (countNewLines(lastOutput) > 20)
lastOutput = "> ";
var inStr = preprocess(document.Eliza.input.value);

if (bNullInput)
replyStr = handleResponse(1, "");
else if (lastInput == inStr)
{
// Found out if the number of repeated user inputs are already annoying.
if (++repeats > 2)
replyStr = handleResponse(4, "");
}
else repeats = 0;

if (!bNullInput && (lastInput != inStr || repeats < 3))
{
lastInput = inStr;
var found = findkeys(inStr);
if (found > 0)
{
var kIndex = keysFound[Math.floor(Math.random()*found)];
var keyword = keys[kIndex].word;
var x = inStr.length - keyword.length - inStr.indexOf(keyword);
var outStr = " " + str_right(inStr, x) + " ";

outStr = conjugateAndTranspose(outStr);
replyStr = handleResponse(kIndex, outStr);
}
else if (Math.floor(Math.random()*4) == 0 && myStr != "")
replyStr = handleResponse(2, myStr); // If no keyword is found we can remind
// user about last possessive statement.
else
replyStr = handleResponse(3, outStr); // If no keyword is found make a reply
}
theReply = replyStr.toLowerCase();
lastOutput = lastOutput + document.Eliza.input.value + "\n";
outIndex = 0;
timerID2 = setTimeout("typeOut()", 30);
document.Eliza.input.value = "";
return false;
}
function start()
{
theReply = handleResponse(0, "").toLowerCase();
outIndex = 0;
timerID2 = setTimeout("typeOut()", 30);
lastOutput = document.Eliza.output.value; // Copy output that already has line breaks.
document.Eliza.input.value = "";
lastInput = "";
timerID1 = setTimeout("wakeup()", 60000); // wake you up after 1 minute of irresponsiveness
setTimeout("refresh()", 5000); // refresh the textarea output

return false;
}
function typeOne(s, i)
{
var ret = i + 1;

if (i >= s.length) ret = -1;
else
{
lastOutput = lastOutput + s.charAt(i);
document.Eliza.output.value = lastOutput;
}

timerID2 = setTimeout("typeOut()", 30);

return ret;
}
function typeOut()
{
if (outIndex < 0)
{
clearTimeout(timerID2);
lastOutput = lastOutput + "\n> ";
document.Eliza.output.value = lastOutput;
lastOutput = document.Eliza.output.value; // Copy output that already has line breaks.
}
else outIndex = typeOne(theReply, outIndex);
}
-->
</script>
<body bgcolor=#E8E8E8 onload="start();">
<h1>Eliza</h1>
<center>
<h4>Open your thoughts to
me.<br>
Please be polite.&nbsp;</font></h4>
</center>
<form name="Eliza" onSubmit="return chat();">
<center>
<textarea rows=14 cols=55 name="output"></textarea>
<br>Message:&nbsp;<input type="text" size = 50 name="input" value=""></center>
</form>
<p><center>
<br>&nbsp;</center></p>
<h6>Copyright © 2003 Mark Jundo P. Documento<br>
All rights reserved.</h6>
</body>
</html>

GodMaster
04-09-2007, 14:06
اگه به سورس کدی از هر برنامه نویسی (,java,vb,vb.net,c++,asp,php,pascal)
احتیاج داشتید بعد از این متن درخواست خودتون رو ارسال کنید

navid_hosseini_69
15-09-2007, 20:41
دوست مبحث جاوا اسکریپت مربوط به طراحی وب سایت است...

در ضمن کدهای خود را در داخل تگ ]HTML] بذارید تا مشکل direction نداشته باشند..

مرسی:40::40::40: