Tillbaka till svenska Fidonet
English   Information   Debug  
VATICAN   0/2740
VIETNAM_VETS   0/14
VIRUS   0/378
VIRUS_INFO   0/201
VISUAL_BASIC   0/473
WHITEHOUSE   0/5187
WIN2000   0/101
WIN32   0/30
WIN95   0/4288
WIN95_OLD1   0/70272
WINDOWS   0/1517
WWB_SYSOP   0/419
WWB_TECH   0/810
ZCC-PUBLIC   0/1
ZEC   4

 
4DOS   0/134
ABORTION   0/7
ALASKA_CHAT   0/506
ALLFIX_FILE   0/1313
ALLFIX_FILE_OLD1   0/7997
ALT_DOS   0/152
AMATEUR_RADIO   0/1039
AMIGASALE   0/14
AMIGA   0/331
AMIGA_INT   0/1
AMIGA_PROG   0/20
AMIGA_SYSOP   0/26
ANIME   0/15
ARGUS   0/924
ASCII_ART   0/340
ASIAN_LINK   0/651
ASTRONOMY   0/417
AUDIO   0/92
AUTOMOBILE_RACING   0/105
BABYLON5   0/17862
BAG   135
BATPOWER   0/361
BBBS.ENGLISH   0/382
BBSLAW   0/109
BBS_ADS   0/5290
BBS_INTERNET   0/507
BIBLE   0/3563
BINKD   0/1119
BINKLEY   0/215
BLUEWAVE   0/2173
CABLE_MODEMS   0/25
CBM   0/46
CDRECORD   0/66
CDROM   0/20
CLASSIC_COMPUTER   0/378
COMICS   0/15
CONSPRCY   0/899
COOKING   32712
COOKING_OLD1   0/24719
COOKING_OLD2   0/40862
COOKING_OLD3   0/37489
COOKING_OLD4   0/35496
COOKING_OLD5   9370
C_ECHO   0/189
C_PLUSPLUS   0/31
DIRTY_DOZEN   0/201
DOORGAMES   0/2053
DOS_INTERNET   0/196
duplikat   6002
ECHOLIST   0/18295
EC_SUPPORT   0/318
ELECTRONICS   0/359
ELEKTRONIK.GER   1534
ENET.LINGUISTIC   0/13
ENET.POLITICS   0/4
ENET.SOFT   0/11701
ENET.SYSOP   33888
ENET.TALKS   0/32
ENGLISH_TUTOR   0/2000
EVOLUTION   0/1335
FDECHO   0/217
FDN_ANNOUNCE   0/7068
FIDONEWS   24100
FIDONEWS_OLD1   0/49742
FIDONEWS_OLD2   0/35949
FIDONEWS_OLD3   0/30874
FIDONEWS_OLD4   0/37224
FIDO_SYSOP   12852
FIDO_UTIL   0/180
FILEFIND   0/209
FILEGATE   0/212
FILM   0/18
FNEWS_PUBLISH   4393
FN_SYSOP   41678
FN_SYSOP_OLD1   71952
FTP_FIDO   0/2
FTSC_PUBLIC   0/13599
FUNNY   0/4886
GENEALOGY.EUR   0/71
GET_INFO   105
GOLDED   0/408
HAM   0/16069
HOLYSMOKE   0/6791
HOT_SITES   0/1
HTMLEDIT   0/71
HUB203   466
HUB_100   264
HUB_400   39
HUMOR   0/29
IC   0/2851
INTERNET   0/424
INTERUSER   0/3
IP_CONNECT   719
JAMNNTPD   0/233
JAMTLAND   0/47
KATTY_KORNER   0/41
LAN   0/16
LINUX-USER   0/19
LINUXHELP   0/1155
LINUX   0/22090
LINUX_BBS   0/957
mail   18.68
mail_fore_ok   249
MENSA   0/341
MODERATOR   0/102
MONTE   0/992
MOSCOW_OKLAHOMA   0/1245
MUFFIN   0/783
MUSIC   0/321
N203_STAT   926
N203_SYSCHAT   313
NET203   321
NET204   69
NET_DEV   0/10
NORD.ADMIN   0/101
NORD.CHAT   0/2572
NORD.FIDONET   189
NORD.HARDWARE   0/28
NORD.KULTUR   0/114
NORD.PROG   0/32
NORD.SOFTWARE   0/88
NORD.TEKNIK   0/58
NORD   0/453
OCCULT_CHAT   0/93
OS2BBS   0/787
OS2DOSBBS   0/580
OS2HW   0/42
OS2INET   0/37
OS2LAN   0/134
OS2PROG   0/36
OS2REXX   0/113
OS2USER-L   207
OS2   0/4786
OSDEBATE   0/18996
PASCAL   0/490
PERL   0/457
PHP   0/45
POINTS   0/405
POLITICS   0/29554
POL_INC   0/14731
PSION   103
R20_ADMIN   1121
R20_AMATORRADIO   0/2
R20_BEST_OF_FIDONET   13
R20_CHAT   0/893
R20_DEPP   0/3
R20_DEV   399
R20_ECHO2   1379
R20_ECHOPRES   0/35
R20_ESTAT   0/719
R20_FIDONETPROG...
...RAM.MYPOINT
  0/2
R20_FIDONETPROGRAM   0/22
R20_FIDONET   0/248
R20_FILEFIND   0/24
R20_FILEFOUND   0/22
R20_HIFI   0/3
R20_INFO2   3207
R20_INTERNET   0/12940
R20_INTRESSE   0/60
R20_INTR_KOM   0/99
R20_KANDIDAT.CHAT   42
R20_KANDIDAT   28
R20_KOM_DEV   112
R20_KONTROLL   0/13260
R20_KORSET   0/18
R20_LOKALTRAFIK   0/24
R20_MODERATOR   0/1852
R20_NC   76
R20_NET200   245
R20_NETWORK.OTH...
...ERNETS
  0/13
R20_OPERATIVSYS...
...TEM.LINUX
  0/44
R20_PROGRAMVAROR   0/1
R20_REC2NEC   534
R20_SFOSM   0/340
R20_SF   0/108
R20_SPRAK.ENGLISH   0/1
R20_SQUISH   107
R20_TEST   2
R20_WORST_OF_FIDONET   12
RAR   0/9
RA_MULTI   106
RA_UTIL   0/162
REGCON.EUR   0/2056
REGCON   0/13
SCIENCE   0/1206
SF   0/239
SHAREWARE_SUPPORT   0/5146
SHAREWRE   0/14
SIMPSONS   0/169
STATS_OLD1   0/2539.065
STATS_OLD2   0/2530
STATS_OLD3   0/2395.095
STATS_OLD4   0/1692.25
SURVIVOR   0/495
SYSOPS_CORNER   0/3
SYSOP   0/84
TAGLINES   0/112
TEAMOS2   0/4530
TECH   0/2617
TEST.444   0/105
TRAPDOOR   0/19
TREK   0/755
TUB   0/290
UFO   0/40
UNIX   0/1316
USA_EURLINK   0/102
USR_MODEMS   0/1
Möte WIN95_OLD1, 70272 texter
 lista första sista föregående nästa
Text 46870, 440 rader
Skriven 2008-06-24 17:32:19 av Dustin Cook (1:129/305)
     Kommentar till en text av Ed Vance
Ärende: Re: Emergence BASIC v1.62
=================================
EV> Dustin,

Hi Ed, are you by chance the same Ed who used to run EBBS?

EV> On my 486 pc I can run QBasic type programs, but I don't have the
EV> VisualBasic software, in fact VisualBasic is hard for me to understand.


It's visualbasic like oriented, but you can get a grasp on it pretty easily, 
the online help system is awesome.

EV> From my reading in the QuikBasic Echo I have learned how to do a little
EV> Structured Basic that has No Line Numbers like BASICA has.
EV> 


Exactly. :) All basic like languages of today ignore line numbers, if you've 
gotten used to quickbasic, and it sounds like you have, you should be able to 
enter Emergence Basic well.

EV> Tell me a little more about Emergence BASIC v1.62, thanks.

Well, here's source code to eliza program:

http://www.ionicwind.com/forums/index.php/topic,2412.0.html

'Simple version of Eliza the AI psyschiatrist
'IBPro console programme
'Jolly Roger April 2005
'Speech added on April 2008 ^^_

AUTODEFINE "OFF"

IDispatch speech
string text[10]

speech = CreateComObject("Sapi.SpVoice","")
if speech <> NULL
    goto startprog
else
    PRINT "Sapi object not available"
    do:until inkey$ <> ""
    END
endif

label startprog

DEF inputtext$,response$:STRING
DEF 
pronounsearchstring$[100],pronounreplacement$[100],responsestartphrase$[100]:S
TRING
DEF randomresponse$[100],keyphrase$[100],keyphraseresponse$[100]:STRING
DEF preprocesssearchstring$[100],preprocessreplacement$[100]:STRING
DEF previousresponses$[10],lastinputtext$:STRING
DEF numberofpronounreplacementstrings,numberofpreprocessstrings:UINT
DEF numberofrandomresponses,numberofkeyphrases,nextrandomresponse,n:UINT
DEF numberofresponsestartphrases,repetition:UINT
nextrandomresponse=0
lastinputtext$=""
FOR n=0 TO 9
  previousresponses$[n]=""
NEXT n
OPENCONSOLE
GOSUB readdata

text = "Type what you want to say then press return."
textTospeech(text)

text = "Press return without entering any text to exit."
textTospeech(text)
PRINT:PRINT
text = "Hello, I am Eliza your computer psychiatrist. How can I help you?"
textTospeech(text)

DO
  INPUT inputtext$
  'Strip spaces from start and end
  inputtext$=LTRIM$(RTRIM$(inputtext$))
  'Check if user entered the same text last time
  repetition=0
  IF inputtext$=lastinputtext$ and inputtext$<>""
     text = "You just said that."
     
     textTospeech(text)
     repetition=1
  ENDIF
  lastinputtext$=inputtext$
  IF inputtext$<>"" & repetition=0
    'Preprocess inputtext$ so easier to analyse
    GOSUB preprocessinputtext
    'Try to find response based on keyphrase
    response$=searchforkeyphrases()
    IF response$=""
       'Can't find response related to user input so use random response
       'Use these in order to avoid repetition
       response$=randomresponse$[nextrandomresponse]
       nextrandomresponse=nextrandomresponse+1
       IF nextrandomresponse>numberofrandomresponses-1 THEN 
nextrandomresponse=0
    ENDIF
    'Print the response
    'PRINT LTRIM$(response$)
     text = LTRIM$(response$)
     textTospeech(text)
    'Update the list of the ten most recent responses
    FOR n=8 TO 0 STEP -1
       previousresponses$[n+1]=previousresponses$[n]
    NEXT n
    previousresponses$[0]=response$
  ENDIF
UNTIL inputtext$=""
textTospeech("bye bye!")
speech->release()
CLOSECONSOLE
END
 
SUB preprocessinputtext
   'Pre process inputtext$ to make analysis easier
   DEF searchstring,position,charactercode,searchstringlength:UINT
   'Remove all characters bar numbers and letters from end of inputtext$
   FOR position=LEN(inputtext$) TO 1 STEP -1
      charactercode=ASC(MID$(UCASE$(inputtext$),position,1))
      IF (charactercode<48 | (charactercode>57 & charactercode<65) | 
charactercode>90)
         'Found non alphanumeric character
         inputtext$=LEFT$(inputtext$,LEN(inputtext$)-1)
      ELSE
         position=1
      ENDIF
   NEXT position
   'Add space to beginning and end (required for string searches)
   inputtext$=" "+inputtext$+" "
   'Replace all characters bar numbers,letters or apostrophe with 
space+character+space
   position=1
   DO
      charactercode=ASC(MID$(UCASE$(inputtext$),position,1))
      IF charactercode<48 | (charactercode>57 & charactercode<65) | 
charactercode>90
         'Found non alphanumeric character
         IF charactercode<>39
           'Character isn't an apostrophe so replace
           inputtext$=LEFT$(inputtext$,position-1)+" "+CHR$(charactercode)+" 
"+MID$(inputtext$,position+1)
           position=position+2
         ENDIF
      ENDIF
      position=position+1
   UNTIL position>LEN(inputtext$)
   'Replace all double spaces with a single space
   DO
     position=INSTR(inputtext$,"  ")
     IF position>0
        inputtext$=LEFT$(inputtext$,position)+MID$(inputtext$,position+2)
     ENDIF
   UNTIL position=0
  'Find any preprocessing search strings and replace them
  position=1
  DO
    FOR searchstring=0 TO numberofpreprocessstrings-1
       searchstringlength=LEN(preprocesssearchstring$[searchstring])
       IF 
MID$(UCASE$(inputtext$),position,searchstringlength)=preprocesssearchstring$[s
earchstring]
          'Found a search string.Replace it with corresponding replacement 
string
          
inputtext$=LEFT$(inputtext$,position-1)+preprocessreplacement$[searchstring]+R
IGHT$(inputtext$,(LEN(inputtext$)-searchstringlength-position+1))
          position=position+LEN(preprocessreplacement$[searchstring])-2
          searchstring=numberofpreprocessstrings-1 :'Leave FOR-NEXT loop when 
get to NEXT
       ENDIF
    NEXT searchstring
    position=INSTR(inputtext$," ",position+1)
  UNTIL position=0 :'No more spaces
RETURN
ENDSUB

SUB replacepronouns(texttoalter$:STRING),STRING
  'Replaces pronouns (eg I am->you are) in texttoalter$ to form end of 
response
  DEF currentposn,pronoun:UINT
  DEF pronounsearchstringlength,position:UINT
  DEF alteredtext$:STRING
  alteredtext$=texttoalter$
  'Check for a full stop-only use text before it
  position=INSTR(alteredtext$,".")
  IF position<>0 THEN alteredtext$=LEFT$(alteredtext$,position-1)
  'Scan alteredtext$ for pronouns
  currentposn=1
  DO
    FOR pronoun=0 TO numberofpronounreplacementstrings-1
       pronounsearchstringlength=LEN(pronounsearchstring$[pronoun])
       IF 
MID$(UCASE$(alteredtext$),currentposn,pronounsearchstringlength)=pronounsearch
string$[pronoun]
          'Found a pronoun search string.Replace it with corresponding 
replacement pronoun string
          
alteredtext$=LEFT$(alteredtext$,currentposn-1)+pronounreplacement$[pronoun]+MI
D$(alteredtext$,currentposn+pronounsearchstringlength)
          currentposn=currentposn+LEN(pronounreplacement$[pronoun])-2
          pronoun=numberofpronounreplacementstrings-1 :'Leave FOR-NEXT loop 
when get to NEXT
       ENDIF
    NEXT pronoun
    currentposn=INSTR(alteredtext$," ",currentposn+1)
  UNTIL currentposn=0 | currentposn=LEN(alteredtext$):'No more spaces
  RETURN LTRIM$(alteredtext$)
ENDSUB

SUB searchforkeyphrases(),STRING
  DEF responsetext$:STRING
  DEF phrase,position,responserecentlyused,startphrase:UINT
  responsetext$=""
    FOR phrase=0 TO numberofkeyphrases-1
       position=INSTR(UCASE$(inputtext$),keyphrase$[phrase])
       IF position<>0
          'Found a keyphrase string
          IF LEFT$(keyphraseresponse$[phrase],1)=" "
             'Space at beginning means add a response start phrase here
             FOR startphrase=0 TO numberofresponsestartphrases-1
                responserecentlyused=0
                
responsetext$=responsestartphrase$[startphrase]+keyphraseresponse$[phrase]
                'Check if this response been used recently
                FOR n=0 TO 9
                 IF INSTR(previousresponses$[n],responsetext$)
                   responserecentlyused=1:n=9:responsetext$=""
                 ENDIF
                NEXT n
                IF responserecentlyused=0 THEN 
startphrase=numberofresponsestartphrases-1:'Exit FOR-NEXT loop
             NEXT startphrase
          ELSE
             responsetext$=keyphraseresponse$[phrase]
             'Check if this response been used recently
             responserecentlyused=0
             FOR n=0 TO 9
               IF INSTR(previousresponses$[n],responsetext$)
                 responserecentlyused=1:n=9:responsetext$=""
               ENDIF
            NEXT n
          ENDIF
          IF responserecentlyused=0
            IF RIGHT$(keyphraseresponse$[phrase],1)=" "
              'Response uses part of inputtext$.Alter any pronouns in it
               
responsetext$=responsetext$+replacepronouns(RIGHT$(inputtext$,(LEN(inputtext$)
-position+2-LEN(keyphrase$[phrase]))))
               'Add question mark to end
               responsetext$=RTRIM$(responsetext$)
               responsetext$=responsetext$+"?"
            ENDIF
            phrase=numberofkeyphrases-1 :'Leave FOR-NEXT loop when get to NEXT
          ENDIF
       ENDIF
    NEXT phrase
RETURN responsetext$
ENDSUB

SUB readdata
  DEF text$:STRING
  'Read preprocess strings (used in SUB preprocessinputtext)
  numberofpreprocessstrings=0
  DO
    GETDATA inputpreprocessdata,text$
    IF text$<>""
      preprocesssearchstring$[numberofpreprocessstrings]=" "+text$+" "
      GETDATA inputpreprocessdata,text$
      preprocessreplacement$[numberofpreprocessstrings]=" "+text$+" "
      numberofpreprocessstrings=numberofpreprocessstrings+1
    ENDIF
  UNTIL text$=""
  'Read pronoun replacement strings data (used in SUB replacepronouns)
  numberofpronounreplacementstrings=0
  DO
    GETDATA replacepronoundata,text$
    IF text$<>""
      pronounsearchstring$[numberofpronounreplacementstrings]=" "+text$+" "
      GETDATA replacepronoundata,text$
      pronounreplacement$[numberofpronounreplacementstrings]=" "+text$+" "
      numberofpronounreplacementstrings=numberofpronounreplacementstrings+1
    ENDIF
  UNTIL text$=""
  'Read keyphrase data (used in SUB searchforkeyphrases)
  numberofkeyphrases=0
  DO
    GETDATA keyphrasedata,text$
    IF text$<>""
      keyphrase$[numberofkeyphrases]=text$
      GETDATA keyphrasedata,text$
      keyphraseresponse$[numberofkeyphrases]=text$
      numberofkeyphrases=numberofkeyphrases+1
    ENDIF
  UNTIL text$=""
  'Read response start phrases (used in SUB searchforkeyphrases)
  numberofresponsestartphrases=0
  DO
    GETDATA responsestartphrasedata,text$
    IF text$<>""
      responsestartphrase$[numberofresponsestartphrases]=text$
      numberofresponsestartphrases=numberofresponsestartphrases+1
    ENDIF
  UNTIL text$=""
  'Read random responses (used in main loop)
  numberofrandomresponses=0
  DO
    GETDATA randomresponses,text$
    IF text$<>""
      randomresponse$[numberofrandomresponses]=text$
      numberofrandomresponses=numberofrandomresponses+1
    ENDIF
  UNTIL text$=""
RETURN
ENDSUB

'------------------------- DATA -----------------------------
  'Add more data to improve the programme but leave the last line (DATA "","")
as it is the marker for the end of the data
  DATABEGIN inputpreprocessdata
     'If first phrase in pair is found it will be replaced with the second one
     DATA "DONT","don't", "DO NOT","don't"
     DATA "YOUR A","you are a", "YOUR AN","you are an", "YOURE","you are"
     DATA "I'M","I am", "IM","I am"
     DATA "THEYRE","they are", "THEY'RE","they are"
     DATA "CANNOT","can't", "CANT","can't"
     DATA "THEYLL","they will","THEY'LL","they will"
     DATA "THEYD","they would", "THEY'D","they would"
     DATA "YOULL","you will", "YOU'LL","you will"
     DATA "WE'RE","we are", "IVE","I have", "I'VE","I have"
     DATA "YOUD","you would", "YOU'D","you would"
     DATA "I'D","I would", "I'LL","I will"
     DATA "ITS","it is", "IT'S","it is", "SHES","she is"
     DATA "SHE'S","she is", "HE'S","he is", "HES","he is"
     DATA "SHE'LL","she will", "HE'LL","he will"
     DATA "MUM","mother", "DAD","father"
     DATA "",""
  DATAEND
  DATABEGIN replacepronoundata
    'First phrase in each pair (upper case) will be replaced by second phrase 
in each pair
    DATA "I AM","you are", "I WAS","you were"
    DATA "YOU ARE","I am", "ARE YOU","I am", "YOU WERE","I was"
    DATA "WE ARE","you're", "I","you", "ME","you"
    DATA  "MY","your", "YOUR","my"
    DATA "MINE","yours", "YOURS","mine", "OUR","your"
    DATA "OURS","yours", "YOU","me"
    DATA "MYSELF","yourself", "YOURSELF","myself", "AM","are"
    DATA "COLOR","colour"
    DATA "",""
  DATAEND
  DATABEGIN randomresponses
     DATA "Tell me more."
     DATA "Interesting. Go on."
     DATA "Please elaborate."
     DATA "What makes you say that?"
     DATA "I am not sure I understand you fully."
     DATA "",""
  DATAEND
  DATABEGIN responsestartphrasedata
    DATA "Why do you think","Does it worry you that","Are you sure that"
    DATA "What leads you to believe","How can you be sure"
    DATA "",""
  DATAEND
  DATABEGIN keyphrasedata
    'If first phrase (key phrase) is found then the response is the second 
phrase.
    'If the response (second) phrase ends with a space then the user input 
after the
    'keyphrase will have it's pronouns altered then will be added after it.
    'If the response phrase starts with a space then a response start phrase 
(see just above)
    'will be added before it.
    DATA " I WANT A ","Why do you think you'd be happy if you had a "
    DATA " I WANT TO BE ","Why do you think you'd be happier if you were "
    DATA " I WISH ","Be careful what you wish for."
    DATA " I AM ","How long have you been "
    DATA " DO YOU ","Why do you ask that?"
    DATA " I CAN'T ","Try harder."
    DATA " CAN YOU ","Do you wish that you could "
    DATA " I HATE ","Why do you hate "
    DATA " I NEED ","Why do you think you'd be happier if you had "
    DATA " I LOVE ","What do you love most about "
    DATA " MY GIRLFRIEND "," she "
    DATA " MY BOYFRIEND "," he "
    DATA " MUSIC","What sorts of music do you like?"  :'Because there is no 
space at the end  of the keyphrase it will detect "music","musician","musical"
etc.
    DATA " SEX","It alway seems to come down to sex with you humans."
    DATA " DRUNK ","People often do foolish things when under the influence of
alcohol."
    DATA " MY MOTHER ","Tell me about your relationship with your mother."
    DATA " MY FATHER ","Tell me about your relationship with your father."
    DATA " HE HATES ME ","Do you hate him?"
    DATA " SHE HATES ME ","Do you hate her?"
    DATA " YOU HATE ME ","I don't hate you."
    DATA " THEY HATE ME ","Why do you think that is?"
    DATA " LUCK","Some people believe we make our own luck."
    DATA " I WAS ","Do you wish you were still "
    DATA " YOU WERE ","Do you wish I was still "
    DATA " FOREVER ","Forever is a long time."
    DATA " NEVER ","Are you sure you mean never?"
    DATA " I LIKE "," you like "
    DATA " DREAM ","Do you often remember your dreams?"
    DATA " DREAM ","Dreams are a window into the subconscious."
    DATA " BAD DREAM","Do you often have bad dreams?"
    DATA " NIGHTMARE","Nightmares are often caused by unresolved issues in 
your subconscious."
    DATA " FANTASY ","Some fantasies are unhealthy."
    DATA " FANTASISE ","Perhaps you should concentrate more on the real 
world."
    DATA " I DON'T ","Why don't you "
    DATA " WHY DON`T YOU ","Why would you want me to "
    DATA " WHY CAN`T I ","What makes you think you should be able to "
    DATA " ARE YOU ","Why are you interested in whether I'm "
    DATA " ALWAYS ","Can you think of a specific example?"
    DATA " YOU ARE "," I am "
    DATA " YOUR ","Why are you concerned about my "
    DATA " BECAUSE ","Are you sure that's the reason?"
    DATA " ALIKE ","In what way?"
    DATA " I "," you "
    DATA " HE "," he "
    DATA " SHE "," she "
    DATA " THEY "," they "
    DATA " WE "," we "
    DATA "",""
  DATAEND

SUB textTospeech(string text$)
  PRINT text$
  CallObjectMethod(speech,".Speak(%s)",text$)
 RETURN
ENDSUB

... Installation recommended (not included)

--- Renegade v01-28.8/Alpha
 * Origin: The Titantic BBS Telnet - ttb.slyip.com (1:129/305)