Skip to content

Instantly share code, notes, and snippets.

@revdancatt
Created October 16, 2014 13:24
Show Gist options
  • Save revdancatt/b5b3b7ed5cd08579b2e1 to your computer and use it in GitHub Desktop.
Save revdancatt/b5b3b7ed5cd08579b2e1 to your computer and use it in GitHub Desktop.
BBC Basic Dragon Slaying Game
5 MODE 1
10 HUMAN_HP=10
20 DRAGON_HP=15
30 PROC_DISPLAY_HP
40 HUMAN_ACTION$ = FN_GET_HUMAN_ACTION
50 DRAGON_ACTION$ = FN_GET_DRAGON_ACTION
60 IF HUMAN_ACTION$ = "A" THEN PROC_HUMAN_ATTACK
70 IF DRAGON_HP <1 THEN PROC_WIN
80 IF DRAGON_HP <1 THEN END
90 IF DRAGON_ACTION$ = "CLAW" THEN PROC_DRAGON_CLAW
100 IF DRAGON_ACTION$ = "BITE" THEN PROC_DRAGON_BITE
110 IF DRAGON_ACTION$ = "FIRE" THEN PROC_DRAGON_FIRE
120 IF HUMAN_HP <1 THEN PROC_DIE
130 IF HUMAN_HP <1 THEN END
140 GOTO 30
3999 END
4000 DEF PROC_HUMAN_ATTACK
4010 TYPE=RND(3)
4020 IF TYPE = 1 THEN PRINT "YOU SLASHED THE DRAGON!"
4030 IF TYPE = 2 THEN PRINT "YOU STABBED THE DRAGON!"
4040 IF TYPE = 3 THEN PRINT "YOU PIERCED THE DRAGON!"
4050 IF TYPE < 3 THEN DRAGON_HP=DRAGON_HP-2
4060 IF TYPE = 3 THEN DRAGON_HP=DRAGON_HP-3
4070 ENDPROC
5000 DEF PROC_DISPLAY_HP
5010 PRINT "------------------------"
5020 PRINT "YOUR HP:"; HUMAN_HP
5030 PRINT "DRAGON'S HP:"; DRAGON_HP
5040 PRINT "------------------------"
5050 ENDPROC
5400 DEF PROC_DRAGON_CLAW
5410 IF HUMAN_ACTION$ = "A" THEN GOTO 5430
5420 IF HUMAN_ACTION$ = "D" THEN GOTO 5460
5430 PRINT "DRAGON CLAWS YOU!"
5440 HUMAN_HP = HUMAN_HP-1
5450 GOTO 5470
5460 PRINT "THE DRAGON'S CLAW HITS YOUR SHIELD"
5470 ENDPROC
5600 DEF PROC_DRAGON_BITE
5605 COLOUR 2
5610 IF HUMAN_ACTION$ = "A" THEN GOTO 5630
5620 IF HUMAN_ACTION$ = "D" THEN GOTO 5660
5630 PRINT "DRAGON BITES YOU!"
5640 HUMAN_HP = HUMAN_HP-2
5650 GOTO 5670
5660 PRINT "YOUR SHIELD BLOCKS A BITE"
5670 COLOUR 3
5680 ENDPROC
5800 DEF PROC_DRAGON_FIRE
5805 COLOUR 1
5810 IF HUMAN_ACTION$ = "A" THEN GOTO 5830
5820 IF HUMAN_ACTION$ = "D" THEN GOTO 5860
5830 PRINT "DRAGON BREATHES FIRE AT YOU!"
5840 HUMAN_HP = HUMAN_HP-4
5850 GOTO 5890
5860 PRINT "DRAGON BREATHES FIRE AT YOU!"
5870 PRINT "YOUR SHIELD ONLY JUST COVERS YOU"
5880 HUMAN_HP = HUMAN_HP-2
5890 COLOUR 3
5900 ENDPROC
6000 DEF PROC_DIE
6010 PRINT "YOU ARE DEAD!!!!!!"
6020 PROC_DISPLAY_HP
6030 ENDPROC
6500 DEF PROC_WIN
6510 PRINT "YOU HAVE SLAIN THE DRAGON!!!!!"
6520 PROC_DISPLAY_HP
6530 ENDPROC
7000 DEF FN_GET_HUMAN_ACTION
7010 PRINT "WHAT DO YOU WANT TO DO?"
7020 PRINT "(A) FOR ATTACK"
7030 PRINT "(D) FOR DEFENED"
7040 INPUT ACTION$
7050 IS_OKAY=FALSE
7060 IF ACTION$="A" THEN IS_OKAY=TRUE
7070 IF ACTION$="D" THEN IS_OKAY=TRUE
7080 IF IS_OKAY=FALSE THEN GOTO 7010
7090 CLS
7100 =ACTION$
8000 DEF FN_GET_DRAGON_ACTION
8010 ACTION$="FIRE"
8020 ROLL=RND(10)
8030 IF ROLL < 10 THEN ACTION$="BITE"
8040 IF ROLL < 7 THEN ACTION$="CLAW"
8050 =ACTION$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment