Swordsman


Choose your moment, then swiftly thrust your sturdy blade into the gaping jaws of some hideous monster. Beastmaster you'll never be, these nasties are definitively untameable, but swordsman you might just about manage. It's all quite simple. You just have to survive and get as many points as possible before some hideous creature does for you. Maybe the Vampire Cat will get to chew on your jugular. Who can tell? Quick, Lunge and thrust, missed . . . back to the left quickly . . . missed again . . . Aaargh . . . !

    1 REM *** BBC VERSION ***
    5  REM**SWORDSMAN**BBC VERSION* ORIGINAL 
@ WALWYN*CONVERSION I.THOMAS
   10 MODE1:VDU28,4,27,35,4
   20 VDU23:FORI=0TO8:VDU255:NEXT
   30 MZ=0
   40 DIME$(4),V(9),V$(9),D$(4,3),M$(9,4,3)
   50 E$(1)="You are unharmed and raring to g
o                               "
   60 E$(2)="You are slightly wounded now.   
"
   70 E$(3)="You have received multiple      
lacerations.                    "
   80 E$(4)="It's your last chance now.      
Good luck...                    "
   90 FORJ=1TO9:READV(J):NEXT
  100 DATA3,4,3,4,2,5,2,2,4
  110 VK=0:PK=1:WK=1
  120 FORK=1TO9:READV$(K):NEXT
  130 DATAGANGRENE GOAT,NORTH-SEA BOIL,VAMPIR
E CAT
  140 DATAPOLITICAL WORM,MAD METER-MAID,SCHOO
L SPINACH
  150 DATADANDRUFFED BEAR,RAMPANT BANKER,PICK
LED ALBATROSS
  160 FORI=1TO4:FORJ=1TO3:READD$(I,J)
  170   NEXT,
  180   DATA" O|"," O "," ))"
  190   DATA" O|"," O ","(("
  200   DATA" O /"," O-"," X"
  210   DATA" O"," O--","/ )"
  220   FORK=1TO9:FORJ=1TO4:FORI=1TO3
  230         READA$
  240         IFINSTR(A$,"255")>0 M$(K,J,I)=E
VAL(A$) ELSE M$(K,J,I)=A$
  250       NEXT,,
  260       DATA" O ",CHR$255+CHR$255+"-","))
"
  270       DATA"  O ","  "+CHR$255+" _","'\\
"
  280       DATA" O ",CHR$255+CHR$255+"-","'\
"
  290       DATA"O /","  \","("
  300       DATA"***","*O:O*","* "+CHR$255+" 
*"
  310       DATA"***","*O:O*","* "+CHR$255+" 
*"
  320       DATA"***","*O:O*",""
  330       DATA"***","*O:O*","* "+CHR$255+" 
*"
  340       DATA"","O- "," X"
  350       DATA"","O- "," |"
  360       DATA"","O--","\\"
  370       DATA"","O- ","//"
  380       DATA"",CHR$255+"OO  O"," OO O"
  390       DATA"",CHR$255+"O  OO"," OO  O"
  400       DATA"","OO O",CHR$255+"OO  O"
  410       DATA"","O O  ",CHR$255+"OO OO"
  420       DATA"$$$$$","$O.O$","<< >>"
  430       DATA"$$$$$","$O.O$"," X X"
  440       DATA"$$$$$","$O.O$","<< >>"
  450       DATA"$$$$$","$O.O$"," X X"
  460       DATACHR$255+CHR$255+" "+CHR$255,C
HR$255+"O"+CHR$255+CHR$255," "+CHR$255+CHR$25
5
  470       DATA"STRING$(3,CHR$255)","STRING$
(4,CHR$255)","O"+CHR$255+CHR$255
  480       DATA" "+"STRING$(2,CHR$255)","STR
ING$(3,CHR$255)",CHR$255+" "+CHR$255
  490       DATACHR$255+" "+CHR$255,CHR$255+C
HR$255+" "+CHR$255,CHR$255+"O"+CHR$255
  500       DATA"*OO*.","   "," B  "
  510       DATA"*OO*","   ."," E  "
  520       DATA"*OO*","  "," A  ."
  530       DATA"*OO*","  "," R  "
  540       DATA" O","-:-","X"
  550       DATA" O"," : ","( )"
  560       DATA" O","|:|","< >"
  570       DATA" O","STRING$(3,CHR$255)","/ 
\"
  580       DATA"  "+CHR$255+" ","O -<","''"
  590       DATA"O--<","''",""
  600       DATA"O\\<"," "+CHR$255+" ",""
  610       DATA"","O--<","''"
  620       CLS
  630       GOSUB720
  640       GOTO620
  650       FORL=1TO500:NEXT:RETURN
  660       PRINTTAB(0,10)"The "V$(MZ)" cut y
ou up"
  670       GOTO650
  680       PRINTTAB(0,0)SPC(100);SPC(100);SP
C(100);SPC(52);TAB(0,0):RETURN
  690       MR=MZ
  700       MZ=RND(9):IFMZ=MR GOTO700
  710       RETURN
  720       GOSUB690
  730       PRINTTAB(0,9)SPC(96);
  740       PRINT"  IT'S THE "V$(MZ)" !  "
  750       PRINT" (DEGREE OF DIFFICULTY TO K
ILL                                  ";TAB(0,
14)"= ";V(MZ);")"
  760       PRINTE$(WK)
  770       M7=4:D7=2:M8=19+RND(6):D8=15:M6=4
:D6=2:M9=M8:D9=D8
  780       PRINTTAB(0,0)"TOTAL POINTS=";PK
  790       IFINKEY(-26) D8=D8-1:D7=1:IFD8<4 
D8=4
  800       IFINKEY(-122) D8=D8+1:D7=2:IFD8>2
7 D8=27
  810       IFINKEY(-42) D7=D7+1:IFD7>3 D7=4:
D8=D8+1:IFD8>27 D8=27
  820       IFINKEY(-58) ANDD7=2 D7=3
  830       PRINTTAB(D9-1,6)"     ";TAB(D9-1,
7)"     ";TAB(D9-1,8)"     "
  840       FORX=0TO2:PRINTTAB(D9,6+X)D$(D7,X
+1):NEXT
  850       D9=D8:D6=D7
  860       IFD7=4 GOTO880
  870       GOTO940
  880       FORX=0TO2:PRINTTAB(D9,6+X)M$(MZ,M
6,X+1):NEXT
  890       F=0:FORZ=0TO1
  900         Z1=FNAT(1+D8+Z,7):IFZ1<>32 ANDZ
1<>43 ANDZ1<>45 F=1
  910         IFF=0 PRINTTAB(2+D8,7)"+"
  920       NEXTZ:IFF=1 GOTO990
  930       D7=2
  940       M7=M7+1:IFM7=5 M7=1
  950       IFRND(1)>.35 M8=M8-1
  960       PRINTTAB(M9-1,6)"      ";TAB(M9-1
,7)"      ";TAB(M9-1,8)"      "
  970       FORX=0TO2:PRINTTAB(M8,6+X)M$(MZ,M
6,X+1):NEXT:IFM8<D8+2 GOTO1040
  980       M9=M8:M6=M7:GOTO790
  990       PRINTTAB(0,10)"WELL DONE! You got
 the           "V$(MZ)"                 "
 1000       P5=INT(V(MZ)*D8):VK=VK+1:WK=WK-1:
IFWK<1 WK=1
 1010       PRINTTAB(0,0)"Points for kill = "
;P5:PK=PK+P5:GOSUB650
 1020       GOSUB680
 1030       RETURN
 1040       WK=WK+1
 1050       IFWK<5 PRINTTAB(0,0)"Try again...
":GOSUB660:GOSUB680:GOTO730
 1060       CLS
 1070       PRINT'''':FORI=1TO3:PRINT"OH DEAR
...":SOUND1,-15,100-I*20,4:FORJ=0TO200:NEXT,
 1080         PRINT'"AAAAAAAAAARGH!!!!"
 1090         PRINT'"Another hero bites the d
ust."
 1100         PRINT'"You skilled ";VK;" monst
ers"'"Scoring ";PK" points."
 1110         PRINT''"Press 'Y' to play again
,'N' to         finish."
 1120         A$=GET$:IFA$="Y" RUN ELSEIFA$<>
"N" GOTO1120
 1130         END
 1140         DEFFNAT(X%,Y%)
 1150         VDU31,X%,Y%
 1160         A%=135:A%=USR&FFF4 AND&FFFF
 1170         =A% DIV256