10 REM CONUNDRUM by L Knight March 1995 20 ONERROR GOTO1300 30 MODE7:X%=RND(22):DIMA%(9):DIMB%(9):FORN%=1TO9:READO%:A%(N%)=O%:NEXT:VDU23,1,0;0;0;0;:*FX11,0 90 PROCintro:PROCsetup 110 PROCselect:PROCtime:IFT%>74PROCdisplay(Y$,12,14):t%=1:GOTO160 140 PROCinput:PROCdelay 160 PROCdisplay(C$,12,18):PROCdelay:PROCcomment:PROCspace:GOTO110 200 *FX12,0 210 VDU23,1,1;0;0;0;:CLS:END 250 DEFPROCintro:PROCheading:PRINT"This program sees how quickly you can solve 9-letter anagrams like the 'conundrums' on the Channel-4 COUNTDOWN game." 280 PRINT'"Press SPACE to stop the clock when you have solved an anagram and enter your solution - or press Z if you give up." 290 PRINT'"If you haven't stopped the clock after 30 seconds the computer will help you with the first, and later the 2nd and 3rd letters of the answer." 300 PRINT'"If you haven't stopped the clock after 75 seconds the computer will assume you can't solve it and will offer you another anagram.":PRINT'"Press SPACE to start.":PROCspace:ENDPROC 340 DEFPROCsetup:CLS:PROCheading:FORN%=5TO17STEP4:PRINTTAB(0,N%)CHR$130;CHR$157;CHR$132:FORE%=1TO2:PRINTCHR$130;CHR$157;CHR$135;CHR$141:NEXT:NEXT:PRINTTAB(17,5)"SECONDS":PRINTTAB(17,9)"ANAGRAM":PRINTTAB(14,13)"YOUR SOLUTION":PRINTTAB(12,17)"CORRECT SOLUTION":ENDPROC 470 DEFPROCtime:PROCmessage(1,1,"Press SPACE when you have solved it"):PROCmessage(3,0,"- or press Z if you give up."):O%=TIME:Y$="":REPEATQ$=INKEY$0:IFQ$="Z"ORQ$="z"Q%=-1ELSEQ%=9 530 T%=(TIME-O%)DIV100:T$=RIGHT$("0"+STR$(T%),2):PROCdisplay(T$,19,6):IFT%>29 Y$=LEFT$(C$,1) 570 IFT%>44 Y$=LEFT$(C$,2) 575 IFT%>59 Y$=LEFT$(C$,3) 580 IFQ$=" "ORT%>74PROCmessage(1,1," ") 590 PROCdisplay(Y$,12,14):UNTILQ$=" "ORT%>74ORQ%=-1:IFT%>74ORQ%=-1ENDPROC 620 IFQ$=" "IFT%<30PROCmessage(1,6,"Enter your solution")ELSEPROCmessage(1,6,"Complete your solution") 625 PROCmessage(3,0," "):ENDPROC 640 DEFPROCinput:O%=TIME:*FX15,1 670 REPEATI%=INKEY0:R%=I%:IFI%>90I%=I%-32 710 IFI%>64ANDI%<91 Q$=CHR$I%ELSEQ$="" 720 Y$=Y$+Q$:len%=LENY$:IFR%=127 Y$=LEFT$(Y$,len%-1) 750 PROCdisplay(Y$,12,14):t%=(TIME-O%)DIV100:UNTILlen%=9ORt%>Q%:PROCmessage(1,1," "):PROCmessage(3,0," "):ENDPROC 800 DEFPROCselect:PROCmessage(3,0," "):X%=X%MOD22+1:Y%=RND(18)*10+1310:RESTOREY%:FORN%=1TOX%:READC$:NEXT:FORN%=1TO9:B%(N%)=A%(N%):NEXT:I%=RND(7)+1:J%=RND(7)+1:B%(1)=B%(I%):B%(I%)=1:B%(9)=B%(J%):B%(J%)=9:A$="":FORN%=1TO9:A$=A$+MID$(C$,B%(N%),1):NEXT:PROCdisplay(A$,12,10) 930 PROCdisplay(" ",12,14):PROCdisplay(" ",12,18):ENDPROC 960 DEFPROCcomment:IFQ%=-1PROCmessage(1,0," "):GOTO1000 980 IFY$=C$PROCsuccessELSEPROCfail 990 PROCdelay 1000 PROCmessage(3,0,"Press SPACE to go on or ESCAPE to quit"):ENDPROC 1020 DEFPROCsuccess:IFT%<10PROCmessage(1,1,"Congratulations! Less than 10 seconds"):ENDPROC 1040 IFT%<30PROCmessage(1,1,"Very Good!"):ENDPROC 1050 IFT%<45PROCmessage(1,1,"Well done!"):ENDPROC 1060 IFT%<60PROCmessage(1,1,"Good! You got there with some help")ELSEPROCmessage(1,1,"You finally got it with some help.") 1070 ENDPROC 1080 DEFPROCfail:IFt%>9PROCmessage(1,4,"Sorry! You were too slow typing in"):ENDPROC 1100 IFRND(8)>3PROCmessage(1,4,"Hard luck! It wasn't an easy one")ELSEPROCmessage(1,4,"Hard luck! Try another.") 1110 ENDPROC 1120 DEFPROCmessage(L%,C%,X$):PRINTTAB(0,20+L%)CHR$(130+C%);X$;SPC(38-LENX$):ENDPROC 1150 DEFPROCdisplay(X$,U%,D%):DI$="":FORP%=1TO9:DI$=DI$+MID$(X$,P%,1)+" ":NEXT:FORP%=1TO2:PRINTTAB(U%,D%+P%-1)DI$:NEXT:ENDPROC 1240 DEFPROCdelay:FORZ%=1TO3000:NEXT:ENDPROC 1250 DEFPROCheading:FORN%=1TO2:PRINTTAB(10,N%)CHR$(132-N%);CHR$141;"9-LETTER ANAGRAMS":NEXT:PRINTTAB(11,3)CHR$130;STRING$(17,"="):ENDPROC 1290 DEFPROCspace:REPEATG%=GET:UNTILG%=32:ENDPROC 1300 IFERR=17GOTO200ELSEGOTO30 1310 DATA1,8,4,7,6,3,5,2,9 1320 DATAINTERLUDE,ARTHRITIS,FORETASTE,LIVESTOCK,RENOVATED,CONSULTED,NEWSPAPER,HONEYMOON,ARCHITECT,AUTOMATIC,DELIVERED,FAVOURITE,GASOMETER,HOROSCOPE,PARAMOUNT,CATAMARAN,INFECTION,INSURANCE,ASTROLOGY,ASTRONOMY,COWARDICE,DISCLOSED 1330 DATAOBTRUSIVE,ADVERSITY,ADVERTISE,BIOGRAPHY,VEGETABLE,DIVERSION,GEOGRAPHY,PENINSULA,UPPERMOST,VOLUNTEER,CONSPIRED,MARSUPIAL,SATELLITE,SPORTSMEN,TELEPATHY,PENSIONER,REFLECTED,BILINGUAL,BRILLIANT,LAMINATED,NOMINATED,GLYCERINE 1340 DATAARBITRARY,RETURNING,RUMINATED,SCOUNDREL,SERVIETTE,SOUTHERLY,TOMBSTONE,WAREHOUSE,BLUEPRINT,INVENTION,DIFFICULT,FIFTEENTH,POCKETFUL,HINDRANCE,PERISHING,OBSERVING,PESSIMIST,SANDPAPER,WATERFALL,APPOINTED,CLUMSIEST,ELOCUTION 1350 DATAEVERYBODY,HILARIOUS,KILOMETRE,PLUTONIUM,FRIVOLOUS,SPECTATOR,ASSEMBLED,CAFETERIA,MOUSETRAP,PATRONISE,PETTICOAT,SEMAPHORE,GREATNESS,BOOKMAKER,CARPENTER,CATHEDRAL,CHOPSTICK,HAILSTONE,HISTORIAN,LIMOUSINE,MISTLETOE,OUTNUMBER 1360 DATAPATCHWORK,PENTHOUSE,REVOLTING,POPULATED,SUPERVISE,CARNIVORE,COLOURFUL,INVESTING,CORROSIVE,LANDSLIDE,PARACHUTE,AFTERNOON,RESURGENT,RIGHTEOUS,SOMETHING,TIGHTROPE,VANISHING,BLACKBIRD,EAGERNESS,FOREIGNER,FURNITURE,INFLUENCE 1370 DATAPROSECUTE,ACROBATIC,AEROBATIC,ANTIPODES,CIRCULATE,BREAKFAST,PROTECTED,NAVIGATOR,ORANGEADE,HARMONICA,CERTAINLY,DELIGHTED,ENLIGHTEN,GUTTERING,STRATEGIC,DESIGNATE,POLITICAL,AUTOGRAPH,TELEPHONE,GODMOTHER,POLLUTION,SAFEGUARD 1380 DATAUNDERHAND,CAREFULLY,TELESCOPE,MEGAPHONE,FOOLHARDY,SURCHARGE,PURCHASED,CONFUSION,PANTOMIME,PETRIFIED,PRECISELY,RHEUMATIC,PERIMETER,WAISTCOAT,AMBITIOUS,COMPOSITE,HOMESTEAD,INOCULATE,HEARTACHE,GRATITUDE,RESIDENCE,STRONGEST 1390 DATAUNDERCOAT,MOUSTACHE,CONSTABLE,DEBUTANTE,LIGHTNING,MINIATURE,CONDUCTOR,OSTEOPATH,SENSATION,SPARKLING,UNTENABLE,CORNFLOUR,AEROPLANE,CHRONICLE,CLOCKWISE,COSMONAUT,CUSTOMARY,FIREPLACE,FISHERMAN,IMPORTANT,LABORIOUS,OTHERWISE 1400 DATASANCTUARY,SOLICITOR,CASCADING,TARNISHED,BOTHERING,CHEMISTRY,DIAGNOSIS,GREYHOUND,GYMNASIUM,HOPEFULLY,MURMURING,LANDSCAPE,MOONLIGHT,SPHERICAL,NUMERICAL,PERCOLATE,POINTLESS,PRAGMATIC,PREDICTED,FASTENING,ABORIGINE,ADMIRABLE 1410 DATAANIMOSITY,BADMINTON,GUNPOWDER,FEROCIOUS,INCLUSIVE,INSOLUBLE,MONASTERY,OBSCENITY,PROMISING,SHRINKAGE,SPOKESMAN,CRUMBLING,DEVIATION,DIPLOMACY,ESPIONAGE,RESPECTED,MARKETING,NEIGHBOUR,SUGGESTED,PNEUMONIA,TENACIOUS,FINANCIAL 1420 DATABREAKDOWN,BUTTERFLY,DECOMPOSE,FORBIDDEN,KNOWLEDGE,LOCKSMITH,MASCULINE,MELODIOUS,EMOTIONAL,OVERSIGHT,PASSENGER,BOUNDLESS,DELICIOUS,ESCORTING,MALICIOUS,MASTERFUL,PAROCHIAL,RECORDING,STURDIEST,SUBNORMAL,GALLANTRY,TWENTIETH 1430 DATAUNKINDEST,AGREEMENT,FINISHING,CROCODILE,FRUITLESS,FASCINATE,GABERDINE,OBSTINATE,PROMINENT,PROVIDENT,RACEHORSE,SPAGHETTI,TEMPORARY,UNTIDIEST,UPHOLDING,AMBULANCE,NIGHTGOWN,BRIEFCASE,BLINDFOLD,SCREAMING,CONFIDENT,DANDELION 1440 DATAFORMALITY,DISPLAYED,GERMINATE,HOLLYHOCK,HURRICANE,IDENTICAL,LONGEVITY,NIGHTMARE,CORKSCREW,POLICEMAN,SCEPTICAL,SEMICOLON,SUSPICION,TERMINATE,BEAUTIFUL,ESTIMATED,BLAMELESS,DECREASED,GONDOLIER,HAMMERING,INCREASED,EVERGREEN 1450 DATAPICTORIAL,PREMATURE,SPACESHIP,UNEATABLE,APARTMENT,APPEARING,DUPLICATE,HUMILIATE,INCORRECT,TOOTHACHE,EIDERDOWN,ABOMINATE,SUPPORTER,CHIPOLATA,CLERGYMAN,DESPERATE,ENCOURAGE,EVOCATIVE,FILTHIEST,TERRORIST,MEDALLION,WHOLEMEAL 1460 DATAWONDERFUL,AMBIGUOUS,BYSTANDER,CANDIDATE,CHAMPAGNE,LOATHSOME,NURSEMAID,PORCELAIN,PRACTICAL,SELECTION,SYNDICATE,UNDERWEAR,CELEBRATE,COMPARING,PRIVILEGE,FANTASTIC,RIGMAROLE,SPECIFIED,CULTIVATE,DRAGONFLY,DWINDLING,GUARANTEE 1470 DATALEGENDARY,LUDICROUS,PLAUSIBLE,SALVATION,SNOWFLAKE,VULGARITY,AVOIDABLE,HAMBURGER,FACSIMILE,INDULGENT,LEASEHOLD,MAGNESIUM,REFERENCE,SCAPEGOAT,LUCRATIVE,BROADCAST,ENDEAVOUR,STAIRCASE,TECHNICAL,DECEPTION,MARMALADE,ANIMATION 1480 DATAMICROWAVE,ORIGINATE,PRESIDENT,SYNTHETIC,STABILITY,TRANSLATE,AFFECTION,IMMEDIATE,SPASMODIC,ALCHEMIST,CHECKMATE,DEMOCRACY,EMERGENCY,COMMUNIST,MACHINERY,MELODRAMA,SACRILEGE,DIFFERENT,INFLATION,RELUCTANT,SEDUCTIVE,TREMBLING 1490 DATAAVAILABLE,ELEVATION,OPERATION,BALANCING,RECEPTION,HOUSEHOLD,RAPTUROUS,ATTEMPTED,GODFATHER,PACKAGING,SCIENTIST,SEARCHING,MIGRATION,SUBMARINE,ARTICHOKE,CRINOLINE,PREVALENT,RASPBERRY,HOLOCAUST,DORMITORY,OVERDRAWN,RADIATION