D&D Character Generator

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

Appears on

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

Gallery

D&D Character Generator

Source Code

3998 REM % % % % % % %D%£%D%/%G%E%N% % % % % % 
3999 REM BY ? LANE
4000 CLS 
4001 PRINT AT 10,1;"D £ D CHARACTER GENERATOR"
4002 PRINT 
4003 PRINT 
4004 PRINT 
4005 PRINT "% % % %P%R%E%S%S% %A%N%Y% %K%E%Y% %T%O% %R%O%L%L% %D%I%C%E% % % "
4006 PAUSE 4E4
4007 SLOW 
4008 CLS 
4010 DIM P(4)
4020 DIM Q(6)
4030 DIM R(1)
4040 FOR V=1 TO 6
4050 FOR U=1 TO 4
4060 LET P(U)=INT (1+6*RND)+1
4065 IF P(U)>6 THEN LET P(U)=6
4070 NEXT U
4080 LET R(1)=P(1)
4090 FOR S=2 TO 4
4100 IF P(S)<R(1) THEN LET R(1)=P(S)
4110 NEXT S
4120 LET Q(V)=P(1)+P(2)+P(3)+P(4)-R(1)
4130 PRINT Q(V),
4140 NEXT V
4150 PRINT 
4151 PRINT 
4152 PRINT 
4153 PRINT "DO YOU WANT THESE SCORES?"
4154 PRINT "IF SO, PRESS <%E%N%T%E%R>"
4155 PRINT "IF NOT, ENTER AN <X>"
4156 INPUT Q$
4158 IF Q$="X" THEN GOTO 4008
4190 GOSUB 5100
5000 PRINT AT 20,1;"D £ D PROGRAM"
5010 PRINT AT 10,1;"RACE    "
5020 INPUT B$
5030 PRINT AT 10,1;"CLASS"
5040 INPUT C$
5045 LET I$=C$
5050 PRINT AT 10,1;"SEX    "
5060 INPUT F$
5070 PRINT AT 10,1;"NAME   "
5080 INPUT E$
5090 PRINT AT 10,1;"AGE   "
5095 INPUT I
5099 GOTO 5162
5100 PRINT AT 10,1;"STRENGTH"
5102 DIM A(9)
5105 INPUT A(1)
5110 PRINT AT 10,1;"INTELLIGENCE"
5115 INPUT A(2)
5120 PRINT AT 10,1;"WISDOM      "
5125 INPUT A(3)
5130 PRINT AT 10,1;"DEXTERITY   "
5135 INPUT A(4)
5140 PRINT AT 10,1;"CONSTITUTION"
5145 INPUT A(5)
5150 PRINT AT 10,1;"CHARISMA    "
5155 INPUT A(6)
5156 RETURN 
5162 LET G$=" "
5164 DIM R(8)
5165 LET HP=0
5180 DIM B(6)
5200 IF I$<>"RANGER" AND I$<>"FIGHTER" AND I$<>"PALADIN" THEN GOTO 5250
5210 IF A(1)<>18 THEN GOTO 5250
5220 LET A(7)=INT (1+100*RND)+10
5225 IF A(7)>100 THEN LET A(7)=100
5250 CLS 
5260 PRINT "BETWEEN WHAT LEVELS DO YOU WANT?  (LOW THEN HIGH)"
5262 INPUT A
5264 INPUT B
5270 LET LE=INT (1+((B-A)+1)*RND)+(A-1)
5280 IF I$<>"FIGHTER" AND I$<>"PALADIN" THEN GOTO 5310
5290 FOR A=1 TO LE
5300 LET B=INT (1+10*RND)+2
5302 IF B>10 THEN LET B=10
5304 LET HP=HP+B
5305 NEXT A
5310 IF I$<>"RANGER" AND I$<>"CLERIC" AND I$<>"DRUID" THEN GOTO 5340
5320 IF I$="RANGER" THEN LET HP=INT (1+8*RND)+2
5325 IF HP>8 THEN LET HP=8
5330 FOR A=1 TO LE
5332 LET B=INT (1+8*RND)+2
5334 IF B>8 THEN LET B=8
5336 LET HP=HP+B
5338 NEXT A
5340 IF I$<>"MAGIC-USER" AND I$<>"ILLUSIONIST" THEN GOTO 5360
5350 FOR A=1 TO LE
5352 LET B=INT (1+4*RND)+1
5354 IF B>4 THEN LET B=4
5356 LET HP=HP+B
5358 NEXT A
5360 IF I$<>"THIEF" AND I$<>"ASSASSIN" AND I$<>"MONK" THEN GOTO 5400
5365 IF I$="MONK" THEN LET HP=INT (1+6*RND)+2
5370 IF HP>6 THEN LET HP=6
5380 FOR A=1 TO LE
5382 LET B=INT (1+6*RND)+2
5384 IF B>6 THEN LET B=6
5386 LET HP=HP+B
5388 NEXT A
5400 IF A(5)>14 THEN LET A(9)=1
5405 IF A(5)>15 THEN LET A(9)=A(9)+1
5410 IF I$<>"FIGHTER" AND I$<>"RANGER" AND I$<>"PALADIN" THEN GOTO 5430
5415 IF A(5)>16 THEN LET A(9)=A(9)+1
5420 IF A(5)>17 THEN LET A(9)=A(9)+1
5440 IF A(4)>14 THEN LET A(8)=A(8)+1
5445 IF A(4)>15 THEN LET A(8)=A(8)+1
5450 IF A(4)>16 THEN LET A(8)=A(8)+1
5455 IF A(4)>17 THEN LET A(8)=A(8)+1
5460 IF A(5)<15 THEN GOTO 5485
5470 LET HP=(LE*A(9))+HP
5471 IF I$<>"RANGER" AND I$<>"MONK" THEN GOTO 5485
5472 IF I$="MONK" AND A(5)=15 THEN LET A(9)=A(9)+1
5473 IF I$="MONK" AND A(5)>=16 THEN LET A(9)=A(9)+2
5476 IF I$="RANGER" AND A(5)=17 THEN LET A(9)=A(9)+3
5477 IF I$="RANGER" AND A(5)=18 THEN LET A(9)=A(9)+4
5478 IF I$="RANGER" AND A(5)=16 THEN LET A(9)=A(9)+2
5479 IF I$="RANGER" AND A(5)=15 THEN LET A(9)=A(9)+1
5480 LET HP=A(9)+HP
5485 IF I$="MONK" OR I$="RANGER" THEN LET A(9)=A(9)/2
5500 REM GOLD
5505 IF I$="CLERIC" OR I$="DRUID" THEN LET GO=(INT (1+6*RND)+INT (1+6*RND)+INT (1+6*RND))*10
5510 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
5515 IF I$="MAGIC-USER" OR I$="ILLUSIONIST" THEN LET GO=(INT (1+4*RND)+INT (1+4*RND))*10
5520 IF I$="THIEF" OR I$="ASSASSIN" THEN LET GO=(INT (1+6*RND)+INT (1+6*RND))*10
5525 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))
5530 IF LE>1 THEN LET GO=GO*10
5535 IF LE>2 THEN LET GO=GO*1.5
5540 IF LE>3 THEN LET GO=GO*1.5
5545 IF LE>4 THEN LET GO=GO*1.6
5550 IF LE>7 THEN LET GO=GO*1.4
5555 IF LE>10 THEN LET GO=GO*1.4
5560 IF LE>15 THEN LET GO=GO*1.4
5565 IF LE>20 THEN LET GO=GO*1.4
5567 LET GO=INT GO
5570 IF A(1)<16 THEN GOTO 5600
5575 IF A(1)=16 THEN LET G$="  ,+1"
5576 IF A(1)=17 THEN LET G$="+1,+1"
5577 IF A(1)=18 AND A(7)=0 THEN LET G$="+1,+2"
5578 IF A(1)=18 AND A(7)>0 AND A(7)<51 THEN LET G$="+1,+3"
5579 IF A(1)=18 AND A(7)>50 AND A(7)<76 THEN LET G$="+2,+3"
5580 IF A(1)=18 AND A(7)>75 AND A(7)<91 THEN LET G$="+2,+4"
5581 IF A(1)=18 AND A(7)>90 AND A(7)<100 THEN LET G$="+2,+5"
5582 IF A(1)=18 AND A(7)=100 THEN LET G$="+3,+6"
5590 IF I$<>"MONK" THEN GOTO 5600
5592 LET G$=" "
5600 IF LE<2 THEN GOTO 6000
5601 LET B(1)=0
5602 LET B(2)=0
5603 LET B(3)=0
5604 LET B(4)=0
5605 LET B(5)=1
5606 LET B(6)=1
5607 PRINT "DO YOU WANT MAGIC ITEMS ?  (Y/N)"
5608 INPUT A$
5609 IF A$="N" THEN GOTO 8000
5610 IF LE<>2 THEN GOTO 5615
5615 LET B(1)=(LE-1)*10
5620 IF LE<3 THEN LET B(5)=1
5625 IF LE<7 THEN LET B(5)=2
5630 IF LE>=7 THEN LET B(5)=3
5635 LET B(2)=(LE-3)*10
5640 IF LE<7 THEN LET B(6)=1
5645 IF LE>=7 THEN LET B(6)=2
5650 LET B(3)=(LE-7)*10
5655 LET B(4)=(LE-11)*10
5660 IF B(2)<1 THEN LET B(2)=0
5665 IF B(3)<1 THEN LET B(3)=0
5670 IF B(4)<1 THEN LET B(4)=0
5745 DIM R(8)
5800 CLS 
5805 DIM J$(7,30)
5880 IF LE<2 THEN GOTO 6000
5881 LET J=4
5882 LET G=0
5883 LET L=1
5884 FOR A=1 TO B(5)
5888 LET C=INT (1+100*RND)
5890 IF C>B(1) THEN GOTO 5916
5892 LET C=INT (1+18*RND)
5898 PRINT AT 2,1;"CAN A ";LE;" ";C$;" USE THIS ?"
5899 LET H=C
5900 PRINT AT 1,1;"Y/N"
5902 GOSUB 6990
5903 INPUT A$
5904 IF A$="N" THEN GOTO 5892
5908 LET J$(L)=H$
5910 PRINT AT J,1;J$(L)
5911 LET J=J+1
5912 LET L=L+1
5916 LET G=G+1
5917 IF C>B(1) THEN LET C=0
5918 LET R(G)=C
5920 NEXT A
5922 LET J=7
5924 LET L=4
5926 LET G=3
5928 FOR A=1 TO B(6)
5932 LET C=INT (1+100*RND)
5934 IF C>B(2) THEN GOTO 5948
5935 LET D=INT (1+16*RND)
5937 LET H=D
5939 PRINT AT 1,1;"Y/N"
5943 GOSUB 7100
5944 INPUT A$
5945 IF A$="N" THEN GOTO 5935
5946 LET J$(L)=H$
5947 PRINT AT J,1;J$(L)
5948 LET J=J+1
5949 LET L=L+1
5950 LET G=G+1
5951 IF C>B(2) THEN LET D=0
5952 LET R(G)=D
5953 NEXT A
5954 LET L=6
5955 LET G=5
5956 FOR A=1 TO 1
5957 LET J=9
5958 LET C=INT (1+100*RND)
5959 IF C>B(3) THEN GOTO 5973
5960 LET E=INT (1+16*RND)
5962 LET H=E
5964 PRINT AT 1,1;"Y/N"
5966 GOSUB 7200
5967 INPUT A$
5968 IF A$="N" THEN GOTO 5960
5969 LET J$(L)=H$
5970 PRINT AT J,1;J$(L)
5971 LET J=J+1
5972 LET L=L+1
5973 LET G=G+1
5974 IF C>B(3) THEN LET E=0
5976 LET R(G)=E
5978 NEXT A
5979 LET J=10
5980 LET L=7
5981 LET G=6
5982 FOR A=1 TO 1
5983 LET C=INT (1+100*RND)
5984 IF C>B(4) THEN GOTO 5994
5985 LET F=INT (1+12*RND)
5987 LET H=F
5989 GOSUB 7300
5990 INPUT A$
5991 IF A$="N" THEN GOTO 5985
5992 LET J$(L)=H$
5993 PRINT AT J,1;J$(L)
5994 LET J=J+1
5995 LET L=L+1
5996 LET G=G+1
5997 IF C>B(4) THEN LET F=0
5998 LET R(G)=F
5999 NEXT A
6000 GOTO 8000
7000 IF H=1 THEN LET H$="POTION, CLIMBING OR FLYING"
7005 IF H=2 THEN LET H$="POTION, EXTRA-HEAL OR POLYMORPH"
7010 IF H=3 THEN LET H$="POTION, RESIST-FIRE OR SPEED"
7015 IF H=4 THEN LET H$="POTION, HEAL OR GIANT STRENGTH"
7020 IF H=5 THEN LET H$="POTION, HEROISM OR INVULNRBLITY"
7025 IF H=6 THEN LET H$="POTION; HUMAN CONTROL/LEVITATE"
7030 IF H=7 THEN LET H$="POT.;S-HEROISM/ANIMAL CONTROL"
7035 IF H=8 THEN LET H$="SCROLL; 1 SPELL, LEVEL 1-6"
7040 IF H=9 THEN LET H$="SCROLL; 1 PROT. FROM MAGIC"
7050 IF H=10 THEN LET H$="1 RING; MAMMAL CONTROL"
7055 IF H=11 THEN LET H$="1 RING; +1 PROTECTION"
7060 IF H=12 THEN LET H$="ARMOR; +1 LEATHER"
7065 IF H=13 THEN LET H$="SHIELD; +1 SHIELD"
7070 IF H=14 THEN LET H$="SWORD; +1 SWORD"
7075 IF H=15 THEN LET H$="10 ARROWS; +1"
7080 IF H=16 THEN LET H$="DAGGER; +1"
7090 IF H=17 THEN LET H$="JAVELIN; +2"
7095 IF H=18 THEN LET H$="MACE; +1"
7096 PRINT AT 12,1;"                                "
7097 PRINT AT 12,1;H$
7099 RETURN 
7100 REM TABLE 2
7105 IF H=1 THEN LET H$="1 SCROLL; 3 SPELLS, 2-9 LEVEL"
7110 IF H=2 THEN LET H$="1 RING; INVISIBILITY"
7115 IF H=3 THEN LET H$="STAFF; STRIKING"
7120 IF H=4 THEN LET H$="RING; +3 PROTECTION"
7125 IF H=5 THEN LET H$="WAND; ILLUSION"
7130 IF H=6 THEN LET H$="WAND; NEGATION"
7135 IF H=7 THEN LET H$="BRACERS; AC 4"
7140 IF H=8 THEN LET H$="BROOCH OF SHIELDING"
7145 IF H=9 THEN LET H$="CLOAK OF ELVENKIND"
7150 IF H=10 THEN LET H$="DUST OF APPEARNCE"
7155 IF H=11 THEN LET H$="FIGURINE-; ONYX DOG"
7160 IF H=12 THEN LET H$="3 JAVELINS OF LIGHTNING"
7165 IF H=13 THEN LET H$="ARMOR SET; +1 CHAIN +2 SHIELD"
7170 IF H=14 THEN LET H$="ARMOR; +4 SPLINT MAIL"
7175 IF H=15 THEN LET H$="SWORD; +3"
7180 IF H=16 THEN LET H$="CROSSBOW/SPEED OR +2 HAMMER"
7190 PRINT AT 12,1;"                                "
7192 PRINT AT 12,1;H$
7194 RETURN 
7200 REM TABLE 3
7205 IF H=1 THEN LET H$="RING OF SPELL STORING"
7210 IF H=2 THEN LET H$="ROD OF CANCELLATION"
7215 IF H=3 THEN LET H$="STAFF; SERPENT"
7220 IF H=4 THEN LET H$="FIGURINE-; SERPENTINE OWL"
7225 IF H=5 THEN LET H$="BOOTS OF SPEED"
7230 IF H=6 THEN LET H$="BOOTS OF STRIDING/LEAPING"
7235 IF H=7 THEN LET H$="CLOAK OF DISPLACEMENT"
7240 IF H=8 THEN LET H$="GAUNTLETS OF OGRE POWER"
7245 IF H=9 THEN LET H$="PIPES OF THE SEWERS"
7250 IF H=10 THEN LET H$="ROBE OF BLENDING"
7255 IF H=11 THEN LET H$="ROPE: CLIMBING/ENTANGLEMENT"
7260 IF H=12 THEN LET H$="ARMOR SET; +2 PLATE +3 SHIELD"
7265 IF H=13 THEN LET H$="+5 SHIELD"
7270 IF H=14 THEN LET H$="SWORD; +4 DEFENDER"
7275 IF H=15 THEN LET H$="MACE +3"
7280 IF H=16 THEN LET H$="SPEAR +3"
7285 PRINT AT 12,1;"                                "
7290 PRINT AT 12,1;H$
7295 RETURN 
7300 REM TABLE 4
7305 IF H=1 THEN LET H$="RING; REGENERATION"
7310 IF H=2 THEN LET H$="RING; SPELL TURNING"
7315 IF H=3 THEN LET H$="WAND; OF FIRE"
7320 IF H=4 THEN LET H$="WAND; OF FROST"
7325 IF H=5 THEN LET H$="EYES OF CHARMING"
7330 IF H=6 THEN LET H$="HORN OF VALHALLA"
7335 IF H=7 THEN LET H$="BEAKER OF PLENTIFUL POTIONS"
7340 IF H=8 THEN LET H$="DUST OF SNEEZING AND CHOKING"
7345 IF H=9 THEN LET H$="DUST OF DISAPEARANCE"
7350 IF H=10 THEN LET H$="ARMOR SET; +2 FIELD/+4 SHIELD"
7355 IF H=11 THEN LET H$="SWORD; +2 GIANT SLAYER"
7360 IF H=12 THEN LET H$="ARROW OF SLAYING"
7365 PRINT AT 12,1;"                                "
7370 PRINT AT 12,1;H$
7375 RETURN 
8995 SLOW 
8999 CLS 
9000 PRINT AT 1,1;E$;"   ";B$;"  AGE ";I;"  LEVEL ";LE
9005 PRINT "  ";I$
9010 PRINT "STRENGTH     ";A(1);"/";A(7);" ";G$
9015 PRINT "INTELLIGENCE ";A(2)
9020 PRINT "WISDOM       ";A(3)
9025 PRINT "DEXTERITY    ";A(4);" -";A(8);" AC"
9030 PRINT "CONSTITUTION ";A(5);" +";A(9);" HP"
9035 PRINT "CHARISMA     ";A(6)
9045 PRINT "    HIT POINTS ";HP;"       GOLD"
9050 PRINT "                         ";GO
9060 FOR L=1 TO 7
9062 PRINT J$(L)
9064 NEXT L
9068 PRINT "%A%N%O%T%H%E%R% %C%H%A%R%A%C%T%E%R%?%?  (Y/N)      OR A HARDCOPY OF ";E$
9069 INPUT Q$
9070 IF Q$="N" THEN GOTO 9080
9072 IF Q$="Y" THEN CLS 
9075 IF Q$="Y" THEN RUN 
9076 IF Q$="COPY" THEN COPY 
9077 GOTO 9069
9080 STOP 
9090 CLEAR 
9100 SAVE "1020%4"
9110 RUN 

People

No people associated with this content.

Scroll to Top