From: simvlad@bwalk.dm.com (Artificial Intellect)
Newsgroups: soc.culture.soviet,talk.politics.soviet,comp.ai
Subject: SIMVLAD source code posted
Date: 26 Jan 93 18:24:26 GMT
Followup-To: soc.culture.soviet
Organization: Brighton Beach Artificial Intelligence Lab

Because of the overwhelming positive response to the outputs from the SIMVLAD
program, I'm posting its source code.  I'd normally use LISP for such projects,
but it's clearly too high-level for simulating Vlad, so I used BASIC. Enjoy!
(The stuff between "'s comes mostly verbatim from Vlad's postings.)

---

DEFINT A-Z
RANDOMIZE TIMER
O$ = ""
s$ = "This program, 'SimVlad', is an artificial intelligence ": GOSUB O
s$ = "(stupidity?) simulation of a typical Soviet emigre": GOSUB O
GOSUB period
FOR i = 1 TO 35
GOSUB badguy
GOSUB bgaction
GOSUB period
NEXT i
GOSUB par
END

par:
s$ = "": GOSUB O
RETURN

period:
a = INT(RND * 6)
IF a = 0 THEN
s$ = "!!! ": GOSUB O
ELSEIF a = 1 THEN
s$ = "! ": GOSUB O
ELSE
s$ = ". ": GOSUB O
END IF

a = INT(RND * 20)
IF a = 0 THEN
GOSUB par
END IF

RETURN

badguy:

x = INT(RND * 19)
IF abadguy = x THEN GOTO badguy
abadguy = x

IF abadguy = 0 THEN
s$ = "Dimitri": GOSUB O
ELSEIF abadguy = 1 THEN
s$ = "Dmitry": GOSUB O
ELSEIF abadguy = 2 THEN
s$ = "Vulvis": GOSUB O
ELSEIF abadguy = 3 THEN
s$ = "Vulgaris": GOSUB O
ELSEIF abadguy = 4 THEN
s$ = "Vilus": GOSUB O
ELSEIF abadguy = 5 THEN
s$ = "Dima": GOSUB O
ELSEIF abadguy = 6 THEN
s$ = "Dimochka": GOSUB O
ELSEIF abadguy = 7 THEN
s$ = "The wonder child from CUNY": GOSUB O
ELSEIF abadguy = 8 THEN
s$ = "Yasser 'Vulis' Arafat": GOSUB O
ELSEIF abadguy = 9 THEN
s$ = "The typical Soviet emigre": GOSUB O
ELSEIF abadguy = 10 THEN
s$ = "Doghead": GOSUB O
ELSEIF abadguy = 11 THEN
s$ = "That stupid faggot": GOSUB O
ELSEIF abadguy = 12 THEN
s$ = "'Goy Boy'": GOSUB O
ELSEIF abadguy = 13 THEN
s$ = "Fucking 'mudak'": GOSUB O
ELSEIF abadguy = 14 THEN
s$ = "That shiksa": GOSUB O
ELSEIF abadguy = 15 THEN
s$ = "Dimitri 'Agric' Vulis": GOSUB O
ELSEIF abadguy = 16 THEN
s$ = "Vladimir Ulyanov (Vulis)": GOSUB O
ELSEIF abadguy = 17 THEN
s$ = "The incomparable Mr. Vulis": GOSUB O
ELSEIF abadguy = 18 THEN
s$ = "Arf-Vulis": GOSUB O
END IF

RETURN

bgaction:

x = INT(RND * 40)
IF abgaction = x THEN GOTO bgaction
abgaction = x

IF abgaction = 0 THEN
s$ = " don't speak the English": GOSUB O
ELSEIF abgaction = 1 THEN
s$ = " can and will to use anything I say against me": GOSUB O
ELSEIF abgaction = 2 THEN
s$ = " prevented me from getting job at CUNY": GOSUB O
ELSEIF abgaction = 3 THEN
s$ = " clearly hates me": GOSUB O
ELSEIF abgaction = 5 THEN
s$ = " has vowed to urinate on my grave": GOSUB O
ELSEIF abgaction = 4 THEN
s$ = " should learn some English by now": GOSUB O
ELSEIF abgaction = 5 THEN
s$ = " cheats on welfare": GOSUB O
ELSEIF abgaction = 6 THEN
s$ = " buys caviar with foodstamps": GOSUB O
ELSEIF abgaction = 7 THEN
s$ = " snorts speed and seaweeds": GOSUB O
ELSEIF abgaction = 8 THEN
s$ = " violates Usenet etiquette": GOSUB O
ELSEIF abgaction = 9 THEN
s$ = " has sold his soul to anti-Semitic yellow press": GOSUB O
ELSEIF abgaction = 10 THEN
s$ = " voted for Bush": GOSUB O
ELSEIF abgaction = 11 THEN
s$ = " voted for Clintor": GOSUB O
ELSEIF abgaction = 12 THEN
s$ = " discusses his genitals in his Usenet postings": GOSUB O
ELSEIF abgaction = 13 THEN
s$ = " has applied for a job here, but I turned him down": GOSUB O
ELSEIF abgaction = 14 THEN
s$ = " was conceived during an anal intercourse": GOSUB O
ELSEIF abgaction = 15 THEN
s$ = " epitomizes Zionist aggression": GOSUB O
ELSEIF abgaction = 16 THEN
s$ = " buys vodka with counterfeit money he makes": GOSUB O
ELSEIF abgaction = 17 THEN
s$ = " picks his nose and posts the findings to Usenet": GOSUB O
ELSEIF abgaction = 18 THEN
s$ = " should be tarred and feathered": GOSUB O
ELSEIF abgaction = 19 THEN
s$ = " must be silenced": GOSUB O
ELSEIF abgaction = 20 THEN
s$ = "'s Usenet account should be taken away": GOSUB O
ELSEIF abgaction = 21 THEN
s$ = " proudly boasts of his oversized penis": GOSUB O
ELSEIF abgaction = 22 THEN
s$ = " forges Usenet postings from unsuspecting victims": GOSUB O
ELSEIF abgaction = 23 THEN
s$ = " lies in his resume": GOSUB O
ELSEIF abgaction = 24 THEN
s$ = ", eat shit and die from AIDS": GOSUB O
ELSEIF abgaction = 25 THEN
s$ = " pollutes Usenet with his profane writings": GOSUB O
ELSEIF abgaction = 26 THEN
s$ = " terrifies people with his foul language": GOSUB O
ELSEIF abgaction = 27 THEN
s$ = " provokes others into vicious flame wars": GOSUB O
ELSE
s$ = " is": GOSUB O
GOSUB bgis
END IF

RETURN

bgis:

x = INT(RND * 17)
IF abgis = x THEN GOTO bgis
abgis = x


IF abgis = 0 THEN
s$ = " a KGB agent": GOSUB O
ELSEIF abgis = 1 THEN
s$ = " a rabid dog": GOSUB O
ELSEIF abgis = 2 THEN
s$ = " an antisemite": GOSUB O
ELSEIF abgis = 3 THEN
s$ = " a card carrying member of PLO and der Shalom Achshav": GOSUB O
ELSEIF abgis = 4 THEN
s$ = " 'gavno'": GOSUB O
ELSEIF abgis = 5 THEN
s$ = " an uncircumcized hazer": GOSUB O
ELSEIF abgis = 6 THEN
s$ = " a drug pusher": GOSUB O
ELSEIF abgis = 7 THEN
s$ = " just a zhlob from Odessa": GOSUB O
ELSEIF abgis = 8 THEN
s$ = " too much of a shiksa": GOSUB O
ELSEIF abgis = 9 THEN
s$ = " a typical 'sovok'": GOSUB O
ELSEIF abgis = 10 THEN
s$ = " too stupid to appreciate my postings": GOSUB O
ELSEIF abgis = 11 THEN
s$ = " full of shit, and smells like it too": GOSUB O
ELSEIF abgis = 12 THEN
s$ = " mentally retarded": GOSUB O
ELSEIF abgis = 13 THEN
s$ = " a kikeface": GOSUB O
ELSEIF abgis = 14 THEN
s$ = " what you get when you cross a vulva and a penis": GOSUB O
ELSEIF abgis = 15 THEN
s$ = " a reform devil worshipper": GOSUB O
ELSEIF abgis = 16 THEN
s$ = " a typical product of anal intercourse": GOSUB O
END IF

RETURN

O:
IF s$ = "" THEN
PRINT O$
PRINT ""
O$ = s$
ELSE
O$ = O$ + s$
WHILE LEN(O$) > 79
N = 79
WHILE (N > 40) AND MID$(O$, N, 1) <> " "
N = N - 1
WEND
s$ = LEFT$(O$, N)
PRINT s$;
O$ = MID$(O$, N + 1)
WEND
END IF
RETURN