Created
October 16, 2014 13:24
-
-
Save revdancatt/b5b3b7ed5cd08579b2e1 to your computer and use it in GitHub Desktop.
BBC Basic Dragon Slaying Game
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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