Computer Dating

Developer(s): John Riley
Date: 198x
Type: Program
Platform(s): TS 2068

A joke computer dating service. It opens on a screen of scrolling hearts with a two-tone tune and “YOUR IDEAL COMPUTER DATE”, then fills in a boxed questionnaire as you answer: name, sex (male, female or other, ticked in UDG boxes), age and eye colour. Ages under 12 and over 70 get a quip, and any eye colour other than blue, green, hazel or brown marks the subject as “extremely bizzare”. Men are matched with a random name from 28 famous and cartoon women such as Mary Poppins, and women with one of 30 men such as Darth Vader, shown flashing with a run of beeps. Answering “other” notes that the subject is a smart-aleck and ends with a red screen saying nothing in the memory bank fits your type.

The REM lines read “computer dating” and “by John Riley”.

Program Analysis

Structure

  • Lines 30–100: the main loop. It POKEs the UDGs (line 840), shows the opening screen (700), asks the questions (430), picks a match, thanks you and starts again.
  • Lines 110–230: the red screen for “other”, filled cell by cell with a beep per row and followed by 100 random beeps.
  • Lines 240–320 and 330–420: the two matching routines, each holding its list of names in DATA.
  • Lines 430–690: the questionnaire, drawn with PLOT and DRAW.

Picking a Match

Each matching routine does RESTORE to its DATA line and reads a random number of names, from 1 to the length of its list, keeping the last one read. The name is printed with FLASH 1 and roughly centred with AT 12,(14-(LEN w$/2)). The heading reads “You’re Ideal Computer Date Is:”, and the lists spell some names as Napolean, Carol Burnette, Miss Piggie and Little Miss Muffitt.

Notable Techniques

  • Five UDGs are POKEd from DATA. Four make the two halves of a heart, top and bottom, and the fifth is the tick box. The DATA uses u, the variable being read, to repeat the previous value.
  • The opening screen prints a 64-character string of heart halves eleven times to fill the screen, and repeats it ten times with a CLS between, so the hearts appear to flicker.
  • Line 800 crosses its loops (NEXT s: NEXT t for FOR s then FOR t). Rather than an error, this gives a rising scale over a fixed note and then a falling one; it may not be the tune that was intended.

Potential Issues

  • Answers are compared exactly and in lower case. A sex typed as “Male” or “M” matches none of the three choices, so no date is offered and the program goes straight to “Thank you for your patronage”. “Blue” with a capital is flagged as a bizarre eye colour.

This program came from an Oliger (JLO SAFE) disk in the SNUG library set and was converted to load from tape: the Oliger slash was removed from SAVE / in line 940. It was tested in ZEsarUX on a stock TS2068 through the opening screen and a match.

Image Gallery

Source Code

   10 REM computer dating
   20 REM by John Riley
   30 GO SUB 840
   40 GO SUB 700
   50 GO SUB 430
   60 IF s$="other" THEN GO SUB 110
   70 IF s$="male" THEN GO SUB 330
   80 IF s$="female" THEN GO SUB 240
   90 CLS : PRINT AT 10,1;"Thank you for your patronage.     Come back and try again"," sometime."
  100 PAUSE 200: CLS : GO TO 40
  110 REM  weird response 
  120 CLS : BORDER 2
  130 FOR x=0 TO 21
  140 FOR y=0 TO 31
  150 PRINT PAPER 2;AT x,y;"::"
  160 NEXT y
  170 BEEP .03,3: NEXT x
  180 PRINT AT 12,2;"SORRY, NOTHING IN MY MEMORY";AT 13,2;"BANK SEEMS TO FIT YOUR TYPE"
  190 FOR b=1 TO 100
  200 BEEP (RND*.05),(RND*1)
  210 NEXT b
  220 PAUSE 500
  230 RETURN 
  240 RESTORE 260: CLS : FOR a=1 TO INT (RND*30)+1
  250 READ w$: NEXT a
  260 DATA "Peter Pan","Jabba the Hutt","Attila the Hun","Groucho Marx","Elmer Fudd","The Hunchback of Notre Dame","Mister Rogers","King Kong","Captain Kangaroo","Hagar the Horrible","Godzilla","Jack the Ripper","Boy George","Levi Strauss","Napolean Bonaparte","Robinson Crusoe","Thor, God of Thunder","See-Threepio","The Elephant Man","Yosemite Sam","Xerox Snorge","Mr. T","Mr. Spock","Mohammed Ali","Darth Vader","Truman Capote","E.T.","Buster Brown","Little Boy Blue","Ronald Reagan"
  270 BORDER 6: PAPER 6
  280 PRINT AT 10,1;"You're Ideal Computer Date Is:"
  290 FOR s=1 TO 69 STEP 2
  300 BEEP .01,s: NEXT s
  310 PRINT AT 12,(14-(LEN w$/2)); FLASH 1;w$
  320 PAUSE 300: CLS : RETURN 
  330 RESTORE 360: CLS 
  340 FOR a=1 TO INT (RND*28)+1
  350 READ w$: NEXT a
  360 DATA "Mary Poppins","Grandma Moses","Minnie Mouse","Carol Burnette","Olive Oyl","The Flying Nun","The Bride of Frankenstein","Broom Hilda","Miss Piggie","Sarah Sota","Mother Goose","Florence Nightingale","Tinkerbell","Betsy Ross","Lucretia Borgia","Little Miss Muffitt","Flutie Mae Shagnastie","Mrs. Butterworth","Raggedy Ann","Strawberry Shortcake","Marie Antoinette","Lizzie Borden","Rebecca of Sunnybrook Farm","Annie Oakley","Little Orphan Annie","Phyllis Diller","Smurfette","Lottie Moon"
  370 BORDER 6: PAPER 6
  380 PRINT AT 10,1;"You're Ideal Computer Date Is:"
  390 FOR s=69 TO -10 STEP -2
  400 BEEP .01,s: NEXT s
  410 PRINT AT 12,(14-(LEN w$/2)); FLASH 1;w$
  420 PAUSE 500: CLS : RETURN 
  430 REM  questionnaire 
  440 BORDER 7: PAPER 7: INK 0: CLS 
  450 PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
  460 PLOT 0,159: DRAW 255,0: PLOT 0,87: DRAW 255,0
  470 PRINT AT 1,1;"Name:"
  480 INPUT "What is your name?";n$: BEEP 1,0
  490 PRINT AT 1,8;n$: BEEP 1,50
  500 PRINT " VITAL STATISTICS"
  510 PRINT '" SEX   emale   efemale   eother": BEEP 1,0
  520 INPUT "What is your sex? ";s$
  530 OVER 1: LET n=7: IF s$="male" THEN PRINT AT 4,n;"X": BEEP 1,40
  540 IF s$="female" THEN PRINT AT 4,n+8;"X": BEEP 1,5
  550 IF s$="other" THEN PRINT AT 4,n+18;"X";AT 12,1;"NOTE: subject is a smart-aleck": BEEP 1,-40
  560 INPUT "What is your age?";a: BEEP 1,0
  570 PRINT AT 6,1;"AGE: ";a: BEEP 1,30
  580 IF a<12 THEN PRINT AT 6,10;"Aren't you a little             young for this?"
  590 IF a>70 THEN PRINT AT 6,10;"Aren't you a little             old for this?"
  600 INPUT "What is your eye color?";e$: BEEP 1,0
  610 PRINT AT 8,1;"EYE COLOR: ";e$: BEEP 1,20
  620 LET b$="blue": LET g$="green": LET h$="hazel": LET r$="brown"
  630 IF e$=g$ THEN GO TO 690
  640 IF e$=b$ THEN GO TO 690
  650 IF e$=h$ THEN GO TO 690
  660 IF e$=r$ THEN GO TO 690
  670 PRINT AT 14,1;"NOTE: Subject is extremely","   bizzare when answering","   questions": BEEP 1,-40
  680 PAUSE 200: CLS 
  690 RETURN 
  700 REM  opening SCREEN$ 
  710 BORDER 5: PAPER 5: INK 2
  720 FOR z=1 TO 10
  730 FOR a=1 TO 11
  740 BEEP .01,20
  750 PRINT "ab ab ab ab ab ab ab ab ab ab abcd cd cd cd cd cd cd cd cd cd cd"
  760 NEXT a: BEEP .5,-20: IF z<10 THEN CLS : NEXT z
  770 PRINT AT 10,4; INK 1; OVER 0; BRIGHT 1;"YOUR IDEAL COMPUTER DATE"
  780 FOR s=0 TO 30 STEP 2
  790 FOR t=0 TO -30 STEP -2
  800 BEEP .01,s: BEEP .01,t: NEXT s: NEXT t
  810 PRINT AT 12,5; OVER 0; FLASH 0; BRIGHT 0;"PRESS ANY KEY TO START"
  820 IF INKEY$="" THEN GO TO 820
  830 CLS : RETURN 
  840 RESTORE 880
  850 FOR m=USR "a" TO USR "e"+7
  860 READ u: POKE m,u
  870 NEXT m: RETURN 
  880 DATA 28,62,127,255,u,u,u,u
  890 DATA 56,124,254,255,u,u,u,u
  900 DATA 127,63,31,15,7,3,1,0
  910 DATA 254,252,248,240,224,192,128,0
  920 DATA 255,129,u,u,u,u,u,255
  930 STOP 
  940 SAVE /"date" LINE 10

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.