"Betting on Hamlet"

Highlight the following code and save it as a text file called HAMLET.BAS
Put it in the same folder as GW-BASIC.EXE. Load it and run it.

10 'Hamlet - the fencing match
20 CLEAR :CLS :KEY OFF
30 PRINT,"Shakespeare's 'Hamlet' - the fencing match." :PRINT
40 PRINT "   Claudius bets that Laertes cannot exceed Hamlet by 3 hits in 12 passes."
50 PRINT "   Because Laertes is nominally a better fencer than Hamlet, Claudius has"
60 PRINT "   laid on odds of 12 for 9. Is this a good bet?" :PRINT
70 '
80 RANDOMIZE TIMER
90 PRINT "      H-wins     L-wins   H-profit%  L-profit%"
100 PASSES=12                     'the maximum number of plays in a game
110 HT=0 :LT=0
120 FOR TIMES = 1 TO 10
130    HH=0 :LL=0
140    FOR CYCLE = 1 TO 1000
150       H=0 :L=0 :N=0
160       FOR HIT = 1 TO PASSES
170          P = INT(24*RND+1)
180          IF P <= 9 THEN H=H+1 ELSE L=L+1
190          IF H=5 OR L=8 THEN LET HIT = PASSES
200       NEXT HIT
210       IF H=5 THEN HH=HH+1 :HT=HT+1
220       IF L=8 THEN LL=LL+1 :LT=LT+1
230    NEXT CYCLE
240    PRINT USING "###########";HH;LL
250 NEXT TIMES
260 PRINT :PRINT USING "###########";HT;LT
270 PRINT "        x12         x9"
280 PRINT USING "###########";HT*12;LT*9;
290 PERCENT=(HT*12-LT*9)/(HT*12+LT*9)*100
300 PRINT USING "########.##";PERCENT :PRINT
310 PRINT USING "########.##";PERCENT;
320 IF PERCENT > 0 THEN PRINT "% profit shows that Claudius has made a good bet." ELSE PRINT "% loss shows that Claudius has made a bad bet."
330 END

Previous | Home | Next