D&D Character Generator

Date: 198x
Type: Program
Platform(s): TS 1000

Content

Appears On

Assembled by Tim Ward from many sources. Contains programs 10176 – 10210.

Related Products

Related Articles

Related Content

Image Gallery

D&D Character Generator

Source Code

3998 REM % % % % % % %D%£%D%/%G%E%N% % % % % % 
\n3999 REM BY ? LANE
\n4000 CLS 
\n4001 PRINT AT 10,1;"D £ D CHARACTER GENERATOR"
\n4002 PRINT 
\n4003 PRINT 
\n4004 PRINT 
\n4005 PRINT "% % % %P%R%E%S%S% %A%N%Y% %K%E%Y% %T%O% %R%O%L%L% %D%I%C%E% % % "
\n4006 PAUSE 4E4
\n4007 SLOW 
\n4008 CLS 
\n4010 DIM P(4)
\n4020 DIM Q(6)
\n4030 DIM R(1)
\n4040 FOR V=1 TO 6
\n4050 FOR U=1 TO 4
\n4060 LET P(U)=INT (1+6*RND)+1
\n4065 IF P(U)>6 THEN LET P(U)=6
\n4070 NEXT U
\n4080 LET R(1)=P(1)
\n4090 FOR S=2 TO 4
\n4100 IF P(S)<R(1) THEN LET R(1)=P(S)
\n4110 NEXT S
\n4120 LET Q(V)=P(1)+P(2)+P(3)+P(4)-R(1)
\n4130 PRINT Q(V),
\n4140 NEXT V
\n4150 PRINT 
\n4151 PRINT 
\n4152 PRINT 
\n4153 PRINT "DO YOU WANT THESE SCORES?"
\n4154 PRINT "IF SO, PRESS <%E%N%T%E%R>"
\n4155 PRINT "IF NOT, ENTER AN <X>"
\n4156 INPUT Q$
\n4158 IF Q$="X" THEN GOTO 4008
\n4190 GOSUB 5100
\n5000 PRINT AT 20,1;"D £ D PROGRAM"
\n5010 PRINT AT 10,1;"RACE    "
\n5020 INPUT B$
\n5030 PRINT AT 10,1;"CLASS"
\n5040 INPUT C$
\n5045 LET I$=C$
\n5050 PRINT AT 10,1;"SEX    "
\n5060 INPUT F$
\n5070 PRINT AT 10,1;"NAME   "
\n5080 INPUT E$
\n5090 PRINT AT 10,1;"AGE   "
\n5095 INPUT I
\n5099 GOTO 5162
\n5100 PRINT AT 10,1;"STRENGTH"
\n5102 DIM A(9)
\n5105 INPUT A(1)
\n5110 PRINT AT 10,1;"INTELLIGENCE"
\n5115 INPUT A(2)
\n5120 PRINT AT 10,1;"WISDOM      "
\n5125 INPUT A(3)
\n5130 PRINT AT 10,1;"DEXTERITY   "
\n5135 INPUT A(4)
\n5140 PRINT AT 10,1;"CONSTITUTION"
\n5145 INPUT A(5)
\n5150 PRINT AT 10,1;"CHARISMA    "
\n5155 INPUT A(6)
\n5156 RETURN 
\n5162 LET G$=" "
\n5164 DIM R(8)
\n5165 LET HP=0
\n5180 DIM B(6)
\n5200 IF I$<>"RANGER" AND I$<>"FIGHTER" AND I$<>"PALADIN" THEN GOTO 5250
\n5210 IF A(1)<>18 THEN GOTO 5250
\n5220 LET A(7)=INT (1+100*RND)+10
\n5225 IF A(7)>100 THEN LET A(7)=100
\n5250 CLS 
\n5260 PRINT "BETWEEN WHAT LEVELS DO YOU WANT?  (LOW THEN HIGH)"
\n5262 INPUT A
\n5264 INPUT B
\n5270 LET LE=INT (1+((B-A)+1)*RND)+(A-1)
\n5280 IF I$<>"FIGHTER" AND I$<>"PALADIN" THEN GOTO 5310
\n5290 FOR A=1 TO LE
\n5300 LET B=INT (1+10*RND)+2
\n5302 IF B>10 THEN LET B=10
\n5304 LET HP=HP+B
\n5305 NEXT A
\n5310 IF I$<>"RANGER" AND I$<>"CLERIC" AND I$<>"DRUID" THEN GOTO 5340
\n5320 IF I$="RANGER" THEN LET HP=INT (1+8*RND)+2
\n5325 IF HP>8 THEN LET HP=8
\n5330 FOR A=1 TO LE
\n5332 LET B=INT (1+8*RND)+2
\n5334 IF B>8 THEN LET B=8
\n5336 LET HP=HP+B
\n5338 NEXT A
\n5340 IF I$<>"MAGIC-USER" AND I$<>"ILLUSIONIST" THEN GOTO 5360
\n5350 FOR A=1 TO LE
\n5352 LET B=INT (1+4*RND)+1
\n5354 IF B>4 THEN LET B=4
\n5356 LET HP=HP+B
\n5358 NEXT A
\n5360 IF I$<>"THIEF" AND I$<>"ASSASSIN" AND I$<>"MONK" THEN GOTO 5400
\n5365 IF I$="MONK" THEN LET HP=INT (1+6*RND)+2
\n5370 IF HP>6 THEN LET HP=6
\n5380 FOR A=1 TO LE
\n5382 LET B=INT (1+6*RND)+2
\n5384 IF B>6 THEN LET B=6
\n5386 LET HP=HP+B
\n5388 NEXT A
\n5400 IF A(5)>14 THEN LET A(9)=1
\n5405 IF A(5)>15 THEN LET A(9)=A(9)+1
\n5410 IF I$<>"FIGHTER" AND I$<>"RANGER" AND I$<>"PALADIN" THEN GOTO 5430
\n5415 IF A(5)>16 THEN LET A(9)=A(9)+1
\n5420 IF A(5)>17 THEN LET A(9)=A(9)+1
\n5440 IF A(4)>14 THEN LET A(8)=A(8)+1
\n5445 IF A(4)>15 THEN LET A(8)=A(8)+1
\n5450 IF A(4)>16 THEN LET A(8)=A(8)+1
\n5455 IF A(4)>17 THEN LET A(8)=A(8)+1
\n5460 IF A(5)<15 THEN GOTO 5485
\n5470 LET HP=(LE*A(9))+HP
\n5471 IF I$<>"RANGER" AND I$<>"MONK" THEN GOTO 5485
\n5472 IF I$="MONK" AND A(5)=15 THEN LET A(9)=A(9)+1
\n5473 IF I$="MONK" AND A(5)>=16 THEN LET A(9)=A(9)+2
\n5476 IF I$="RANGER" AND A(5)=17 THEN LET A(9)=A(9)+3
\n5477 IF I$="RANGER" AND A(5)=18 THEN LET A(9)=A(9)+4
\n5478 IF I$="RANGER" AND A(5)=16 THEN LET A(9)=A(9)+2
\n5479 IF I$="RANGER" AND A(5)=15 THEN LET A(9)=A(9)+1
\n5480 LET HP=A(9)+HP
\n5485 IF I$="MONK" OR I$="RANGER" THEN LET A(9)=A(9)/2
\n5500 REM GOLD
\n5505 IF I$="CLERIC" OR I$="DRUID" THEN LET GO=(INT (1+6*RND)+INT (1+6*RND)+INT (1+6*RND))*10
\n5510 IF I$="FIGHTER" OR I$="RANGER" OR I$="PALADIN" THEN LET GO=(INT (1+4*RND)+INT (1+4*RND)+INT (1+4*RND)+INT (1+4*RND)+INT (1+4*RND))*10
\n5515 IF I$="MAGIC-USER" OR I$="ILLUSIONIST" THEN LET GO=(INT (1+4*RND)+INT (1+4*RND))*10
\n5520 IF I$="THIEF" OR I$="ASSASSIN" THEN LET GO=(INT (1+6*RND)+INT (1+6*RND))*10
\n5525 IF I$="MONK" THEN LET GO=(INT (1+4*RND)+INT (1+4*RND)+INT (1+4*RND)+INT (1+4*RND)+INT (1+4*RND))
\n5530 IF LE>1 THEN LET GO=GO*10
\n5535 IF LE>2 THEN LET GO=GO*1.5
\n5540 IF LE>3 THEN LET GO=GO*1.5
\n5545 IF LE>4 THEN LET GO=GO*1.6
\n5550 IF LE>7 THEN LET GO=GO*1.4
\n5555 IF LE>10 THEN LET GO=GO*1.4
\n5560 IF LE>15 THEN LET GO=GO*1.4
\n5565 IF LE>20 THEN LET GO=GO*1.4
\n5567 LET GO=INT GO
\n5570 IF A(1)<16 THEN GOTO 5600
\n5575 IF A(1)=16 THEN LET G$="  ,+1"
\n5576 IF A(1)=17 THEN LET G$="+1,+1"
\n5577 IF A(1)=18 AND A(7)=0 THEN LET G$="+1,+2"
\n5578 IF A(1)=18 AND A(7)>0 AND A(7)<51 THEN LET G$="+1,+3"
\n5579 IF A(1)=18 AND A(7)>50 AND A(7)<76 THEN LET G$="+2,+3"
\n5580 IF A(1)=18 AND A(7)>75 AND A(7)<91 THEN LET G$="+2,+4"
\n5581 IF A(1)=18 AND A(7)>90 AND A(7)<100 THEN LET G$="+2,+5"
\n5582 IF A(1)=18 AND A(7)=100 THEN LET G$="+3,+6"
\n5590 IF I$<>"MONK" THEN GOTO 5600
\n5592 LET G$=" "
\n5600 IF LE<2 THEN GOTO 6000
\n5601 LET B(1)=0
\n5602 LET B(2)=0
\n5603 LET B(3)=0
\n5604 LET B(4)=0
\n5605 LET B(5)=1
\n5606 LET B(6)=1
\n5607 PRINT "DO YOU WANT MAGIC ITEMS ?  (Y/N)"
\n5608 INPUT A$
\n5609 IF A$="N" THEN GOTO 8000
\n5610 IF LE<>2 THEN GOTO 5615
\n5615 LET B(1)=(LE-1)*10
\n5620 IF LE<3 THEN LET B(5)=1
\n5625 IF LE<7 THEN LET B(5)=2
\n5630 IF LE>=7 THEN LET B(5)=3
\n5635 LET B(2)=(LE-3)*10
\n5640 IF LE<7 THEN LET B(6)=1
\n5645 IF LE>=7 THEN LET B(6)=2
\n5650 LET B(3)=(LE-7)*10
\n5655 LET B(4)=(LE-11)*10
\n5660 IF B(2)<1 THEN LET B(2)=0
\n5665 IF B(3)<1 THEN LET B(3)=0
\n5670 IF B(4)<1 THEN LET B(4)=0
\n5745 DIM R(8)
\n5800 CLS 
\n5805 DIM J$(7,30)
\n5880 IF LE<2 THEN GOTO 6000
\n5881 LET J=4
\n5882 LET G=0
\n5883 LET L=1
\n5884 FOR A=1 TO B(5)
\n5888 LET C=INT (1+100*RND)
\n5890 IF C>B(1) THEN GOTO 5916
\n5892 LET C=INT (1+18*RND)
\n5898 PRINT AT 2,1;"CAN A ";LE;" ";C$;" USE THIS ?"
\n5899 LET H=C
\n5900 PRINT AT 1,1;"Y/N"
\n5902 GOSUB 6990
\n5903 INPUT A$
\n5904 IF A$="N" THEN GOTO 5892
\n5908 LET J$(L)=H$
\n5910 PRINT AT J,1;J$(L)
\n5911 LET J=J+1
\n5912 LET L=L+1
\n5916 LET G=G+1
\n5917 IF C>B(1) THEN LET C=0
\n5918 LET R(G)=C
\n5920 NEXT A
\n5922 LET J=7
\n5924 LET L=4
\n5926 LET G=3
\n5928 FOR A=1 TO B(6)
\n5932 LET C=INT (1+100*RND)
\n5934 IF C>B(2) THEN GOTO 5948
\n5935 LET D=INT (1+16*RND)
\n5937 LET H=D
\n5939 PRINT AT 1,1;"Y/N"
\n5943 GOSUB 7100
\n5944 INPUT A$
\n5945 IF A$="N" THEN GOTO 5935
\n5946 LET J$(L)=H$
\n5947 PRINT AT J,1;J$(L)
\n5948 LET J=J+1
\n5949 LET L=L+1
\n5950 LET G=G+1
\n5951 IF C>B(2) THEN LET D=0
\n5952 LET R(G)=D
\n5953 NEXT A
\n5954 LET L=6
\n5955 LET G=5
\n5956 FOR A=1 TO 1
\n5957 LET J=9
\n5958 LET C=INT (1+100*RND)
\n5959 IF C>B(3) THEN GOTO 5973
\n5960 LET E=INT (1+16*RND)
\n5962 LET H=E
\n5964 PRINT AT 1,1;"Y/N"
\n5966 GOSUB 7200
\n5967 INPUT A$
\n5968 IF A$="N" THEN GOTO 5960
\n5969 LET J$(L)=H$
\n5970 PRINT AT J,1;J$(L)
\n5971 LET J=J+1
\n5972 LET L=L+1
\n5973 LET G=G+1
\n5974 IF C>B(3) THEN LET E=0
\n5976 LET R(G)=E
\n5978 NEXT A
\n5979 LET J=10
\n5980 LET L=7
\n5981 LET G=6
\n5982 FOR A=1 TO 1
\n5983 LET C=INT (1+100*RND)
\n5984 IF C>B(4) THEN GOTO 5994
\n5985 LET F=INT (1+12*RND)
\n5987 LET H=F
\n5989 GOSUB 7300
\n5990 INPUT A$
\n5991 IF A$="N" THEN GOTO 5985
\n5992 LET J$(L)=H$
\n5993 PRINT AT J,1;J$(L)
\n5994 LET J=J+1
\n5995 LET L=L+1
\n5996 LET G=G+1
\n5997 IF C>B(4) THEN LET F=0
\n5998 LET R(G)=F
\n5999 NEXT A
\n6000 GOTO 8000
\n7000 IF H=1 THEN LET H$="POTION, CLIMBING OR FLYING"
\n7005 IF H=2 THEN LET H$="POTION, EXTRA-HEAL OR POLYMORPH"
\n7010 IF H=3 THEN LET H$="POTION, RESIST-FIRE OR SPEED"
\n7015 IF H=4 THEN LET H$="POTION, HEAL OR GIANT STRENGTH"
\n7020 IF H=5 THEN LET H$="POTION, HEROISM OR INVULNRBLITY"
\n7025 IF H=6 THEN LET H$="POTION; HUMAN CONTROL/LEVITATE"
\n7030 IF H=7 THEN LET H$="POT.;S-HEROISM/ANIMAL CONTROL"
\n7035 IF H=8 THEN LET H$="SCROLL; 1 SPELL, LEVEL 1-6"
\n7040 IF H=9 THEN LET H$="SCROLL; 1 PROT. FROM MAGIC"
\n7050 IF H=10 THEN LET H$="1 RING; MAMMAL CONTROL"
\n7055 IF H=11 THEN LET H$="1 RING; +1 PROTECTION"
\n7060 IF H=12 THEN LET H$="ARMOR; +1 LEATHER"
\n7065 IF H=13 THEN LET H$="SHIELD; +1 SHIELD"
\n7070 IF H=14 THEN LET H$="SWORD; +1 SWORD"
\n7075 IF H=15 THEN LET H$="10 ARROWS; +1"
\n7080 IF H=16 THEN LET H$="DAGGER; +1"
\n7090 IF H=17 THEN LET H$="JAVELIN; +2"
\n7095 IF H=18 THEN LET H$="MACE; +1"
\n7096 PRINT AT 12,1;"                                "
\n7097 PRINT AT 12,1;H$
\n7099 RETURN 
\n7100 REM TABLE 2
\n7105 IF H=1 THEN LET H$="1 SCROLL; 3 SPELLS, 2-9 LEVEL"
\n7110 IF H=2 THEN LET H$="1 RING; INVISIBILITY"
\n7115 IF H=3 THEN LET H$="STAFF; STRIKING"
\n7120 IF H=4 THEN LET H$="RING; +3 PROTECTION"
\n7125 IF H=5 THEN LET H$="WAND; ILLUSION"
\n7130 IF H=6 THEN LET H$="WAND; NEGATION"
\n7135 IF H=7 THEN LET H$="BRACERS; AC 4"
\n7140 IF H=8 THEN LET H$="BROOCH OF SHIELDING"
\n7145 IF H=9 THEN LET H$="CLOAK OF ELVENKIND"
\n7150 IF H=10 THEN LET H$="DUST OF APPEARNCE"
\n7155 IF H=11 THEN LET H$="FIGURINE-; ONYX DOG"
\n7160 IF H=12 THEN LET H$="3 JAVELINS OF LIGHTNING"
\n7165 IF H=13 THEN LET H$="ARMOR SET; +1 CHAIN +2 SHIELD"
\n7170 IF H=14 THEN LET H$="ARMOR; +4 SPLINT MAIL"
\n7175 IF H=15 THEN LET H$="SWORD; +3"
\n7180 IF H=16 THEN LET H$="CROSSBOW/SPEED OR +2 HAMMER"
\n7190 PRINT AT 12,1;"                                "
\n7192 PRINT AT 12,1;H$
\n7194 RETURN 
\n7200 REM TABLE 3
\n7205 IF H=1 THEN LET H$="RING OF SPELL STORING"
\n7210 IF H=2 THEN LET H$="ROD OF CANCELLATION"
\n7215 IF H=3 THEN LET H$="STAFF; SERPENT"
\n7220 IF H=4 THEN LET H$="FIGURINE-; SERPENTINE OWL"
\n7225 IF H=5 THEN LET H$="BOOTS OF SPEED"
\n7230 IF H=6 THEN LET H$="BOOTS OF STRIDING/LEAPING"
\n7235 IF H=7 THEN LET H$="CLOAK OF DISPLACEMENT"
\n7240 IF H=8 THEN LET H$="GAUNTLETS OF OGRE POWER"
\n7245 IF H=9 THEN LET H$="PIPES OF THE SEWERS"
\n7250 IF H=10 THEN LET H$="ROBE OF BLENDING"
\n7255 IF H=11 THEN LET H$="ROPE: CLIMBING/ENTANGLEMENT"
\n7260 IF H=12 THEN LET H$="ARMOR SET; +2 PLATE +3 SHIELD"
\n7265 IF H=13 THEN LET H$="+5 SHIELD"
\n7270 IF H=14 THEN LET H$="SWORD; +4 DEFENDER"
\n7275 IF H=15 THEN LET H$="MACE +3"
\n7280 IF H=16 THEN LET H$="SPEAR +3"
\n7285 PRINT AT 12,1;"                                "
\n7290 PRINT AT 12,1;H$
\n7295 RETURN 
\n7300 REM TABLE 4
\n7305 IF H=1 THEN LET H$="RING; REGENERATION"
\n7310 IF H=2 THEN LET H$="RING; SPELL TURNING"
\n7315 IF H=3 THEN LET H$="WAND; OF FIRE"
\n7320 IF H=4 THEN LET H$="WAND; OF FROST"
\n7325 IF H=5 THEN LET H$="EYES OF CHARMING"
\n7330 IF H=6 THEN LET H$="HORN OF VALHALLA"
\n7335 IF H=7 THEN LET H$="BEAKER OF PLENTIFUL POTIONS"
\n7340 IF H=8 THEN LET H$="DUST OF SNEEZING AND CHOKING"
\n7345 IF H=9 THEN LET H$="DUST OF DISAPEARANCE"
\n7350 IF H=10 THEN LET H$="ARMOR SET; +2 FIELD/+4 SHIELD"
\n7355 IF H=11 THEN LET H$="SWORD; +2 GIANT SLAYER"
\n7360 IF H=12 THEN LET H$="ARROW OF SLAYING"
\n7365 PRINT AT 12,1;"                                "
\n7370 PRINT AT 12,1;H$
\n7375 RETURN 
\n8995 SLOW 
\n8999 CLS 
\n9000 PRINT AT 1,1;E$;"   ";B$;"  AGE ";I;"  LEVEL ";LE
\n9005 PRINT "  ";I$
\n9010 PRINT "STRENGTH     ";A(1);"/";A(7);" ";G$
\n9015 PRINT "INTELLIGENCE ";A(2)
\n9020 PRINT "WISDOM       ";A(3)
\n9025 PRINT "DEXTERITY    ";A(4);" -";A(8);" AC"
\n9030 PRINT "CONSTITUTION ";A(5);" +";A(9);" HP"
\n9035 PRINT "CHARISMA     ";A(6)
\n9045 PRINT "    HIT POINTS ";HP;"       GOLD"
\n9050 PRINT "                         ";GO
\n9060 FOR L=1 TO 7
\n9062 PRINT J$(L)
\n9064 NEXT L
\n9068 PRINT "%A%N%O%T%H%E%R% %C%H%A%R%A%C%T%E%R%?%?  (Y/N)      OR A HARDCOPY OF ";E$
\n9069 INPUT Q$
\n9070 IF Q$="N" THEN GOTO 9080
\n9072 IF Q$="Y" THEN CLS 
\n9075 IF Q$="Y" THEN RUN 
\n9076 IF Q$="COPY" THEN COPY 
\n9077 GOTO 9069
\n9080 STOP 
\n9090 CLEAR 
\n9100 SAVE "1020%4"
\n9110 RUN 

People

No people associated with this content.

Scroll to Top