THE PRISONER HAS HAIR !!
Posted: Tue May 30, 2023 1:38 am
Oh this is relatively minor update.... But after another hour and half
He actually has hair.. I did all this by tweaking and drawing concentric
ellipses. Its time to go to bed...
He actually has hair.. I did all this by tweaking and drawing concentric
ellipses. Its time to go to bed...
Code: Select all
10 CLS:PRINT
15 XLIMIT = 319:YLIMIT=239:PI = 3.14159265
20 PRINT "WELCOME TO HANGMAN"
30 PRINT " ONE PLAYER AGAINST THE COMPUTER ?
40 PRINT " OR HEAD TO HEAD ?"
50 SCREEN 128
60 GOSUB 5000 : REM BACKGROUND
65 GOSUB 7000 : REM GALLOWS
70 GOSUB 8000 : REM ROPE
80 GOSUB 9500 : REM THE GUYS HEAD
95 INPUT X$
100 SCREEN 0:END
2999 REM CIRCLE AND ELLIPSE SUBROUTINE
3000 Q = 1 / RA
3010 IF FILL = 1 THEN Q = .2/RA
3030 FOR I = 0 TO PI / 2 STEP Q
3040 DY = SIN(I) * RA
3050 IF YS > 0 AND YS < 1 THEN DY = DY*YS
3060 DX = COS(I) * RA
3070 IF XS > 0 AND YS < 1 THEN DX = DX*XS
3080 ZX = INT(CX - DX)
3090 ZY = INT(CY - DY)
3100 AX = INT(CX + DX)
3110 AY = INT(CY + DY)
3115 IF FILL = 1 THEN 3220
3120 IF AX<0 OR AX > XLIMIT OR AY<0 OR AY > YLIMIT THEN 3140
3130 PSET AX, AY, CC
3140 IF ZX<0 OR ZX>XLIMIT OR AY < 0 OR AY > YLIMIT THEN 3160
3150 PSET ZX, AY, CC
3160 IF AX<0 OR AX > XLIMIT OR ZY<0 OR ZY > YLIMIT THEN 3180
3170 PSET AX, ZY, CC
3180 IF ZX<0 OR ZX > XLIMIT OR ZY<0 OR ZY > YLIMIT THEN 3300
3190 PSET ZX, ZY, CC
3200 GOTO 3300
3220 LINE CX,CY,AX,AY,CC
3225 LINE CX,CY,ZX,AY,CC
3230 LINE CX,CY,AX,ZY,CC
3235 LINE CX,CY,ZX,ZY,CC
3300 NEXT I
3310 RETURN
5000 RECT 0,0, XLIMIT, YLIMIT, 14 : REM THE SKY
5010 CX = 5:CY=4:CC = 16:FILL = 0:XS=0:YS=0:RA = 29
5020 GOSUB 3000:RA=RA-1:GOSUB 3000
5030 CC = 7:
5040 FOR RA = 27 TO 1 STEP -1:GOSUB 3000:NEXT RA
5050 GOSUB 6500:REM DRAW A CLOUD
5110 RECT 0, 180, XLIMIT, YLIMIT, 5 : REM THE GRASS
5120 FOR Y = 161 TO 179
5130 LINE 0, Y, 40, 179, 105
5140 NEXT Y
5150 FOR Y = 180 TO 150 STEP -1
5160 LINE 288,179, XLIMIT, Y, 105
5170 NEXT Y
5180 TC = 104:GOSUB 6000:REM DRAW GRASS STUFF
5190 TC = 106:GOSUB 6000
5200 TC = 133:GOSUB 6000
5210 RETURN
6000 FOR I = 1 TO 14:REM RANDOM GRASS
6110 X1 = INT(RND(1)*XLIMIT)
6120 Y1 = INT(RND(1)*YLIMIT) + 180:IF Y1 > YLIMIT THEN GOTO 6120
6130 X2 = INT(RND(1)*XLIMIT) + 15:IF X2 = X1 OR X2 > XLIMIT THEN GOTO 6130
6140 Y2 = INT(RND(1)*YLIMIT) + 180:IF Y2 = Y1 OR Y2 > YLIMIT THEN GOTO 6140
6145 IF X2 - X1 > 105 OR X1 - X2 > 105 THEN GOTO 6110
6146 IF Y2 - Y1 > 12 OR Y1 - Y2 > 12 THEN GOTO 6110
6150 LINE X1,Y1,X2,Y2, TC
6155 PSET X1, Y1 - 1, 133:PSET X1 , Y1-1, 104:PSET X2, Y1 - 3,107
6180 NEXT I
6190 RETURN
6500 RETURN:B1 = INT(RND(1)* XLIMIT/2)+1
6510 B2 = INT(RND(1)* XLIMIT/3)+1
6520 B3 = INT(RND(1)* YLIMIT/3)+1
6530 B4 = INT(RND(1)* YLIMIT/4)+1
6540 FOR I = 1 TO 300
6550 X1 = INT(RND(1)*B1)+1
6560 X2 = INT(RND(1)*B2)+1
6570 Y1 = INT(RND(1)*B3)+1
6580 Y2 = INT(RND(1)*B4)+1
6590 C = INT(RND(1)*6)+1
6600 IF C = 1 THEN
6600 IF C = 2 THEN C = 65
6610 IF C = 3 THEN C = 64
6620 IF C = 4 THEN C = 28
6630 IF C = 5 THEN C = 27
6640 IF C = 6 THEN C = 25
6650 RECT X1,Y1,X2,Y2, C
6660 NEXT I
6670 RETURN
7000 REM THE GALLOWS
7010 FRAME 189,195,285,208,16
7020 FRAME 190,196,284,209,16
7030 FRAME 275,21,285,207,16
7040 FRAME 276,22,284,205,16
7050 FRAME 67,20,285,30,16
7060 FRAME 68,21,284,29,16
7070 RECT 71,30,79,33,16
7080 RECT 191,197,283,207,83
7090 RECT 277,23,283,206,83
7100 RECT 69,22,283,28,83
7150 RETURN
8000 REM THE ROPE
8010 LINE 73,33,73,53,16
8020 LINE 77,33,77,53,16
8030 RECT 74,34,76,53,87
8040 FOR Y = 38 TO 53 STEP 3
8050 LINE 73, Y, 77, Y - 3, 16
8060 NEXT Y
8070 FRAME 71,53,80, 68, 16
8080 RECT 72,54,79,68,87
8090 FOR Y = 56 TO 68 STEP 4
8100 LINE 72,Y,79, Y-4, 16
8110 NEXT Y
8120 REM THE NOOSE
8130 RA = 24
8140 YS = .38
8150 CX = 75:CY = 79:CC = 16
8160 GOSUB 3000:RA=25:GOSUB 3000
8165 RA = 24:GOSUB 3000
8170 RA = 19:GOSUB 3000
8175 RA = 18:GOSUB 3000
8180 CC = 87
8190 FOR X = 21 TO 23 STEP .7
8200 RA = X:GOSUB 3000
8210 NEXT X
9000 YS=0:RETURN
9499 REM THE FACE
9500 CX = 59:CY = 60:RA = 6:XS = .4:CC = 16
9510 GOSUB 3000:RA = RA - 1:GOSUB 3000
9520 RA = RA - 1:FILL = 1:CC = 37:GOSUB 3000
9530 CX = 89:RA = 6:CC=16
9540 GOSUB 3000:RA = RA - 1:GOSUB 3000
9550 RA = RA - 1:FILL = 1:CC = 37:GOSUB 3000
9560 LINE 67,76,67,84,16
9570 LINE 66,76,66,84,16
9580 LINE 67,87,67,90,16:LINE 66,87,66,90,16
9590 LINE 82,76,82,84,16
9600 LINE 83,76,83,84,16
9605 LINE 82,87,82,90,16:LINE 83,87,83,90,16
9610 RECT 68,76,81,84,37
9620 RECT 68,89,81,91,37
9630 RA = 20:XS = .8:FILL = 0
9640 CC = 16:CX = 74:CY = 63
9650 GOSUB 3000:RA = RA -1:GOSUB 3000
9660 RA = RA -1:GOSUB 3000:RA = RA -1:GOSUB 3000
9665 CY = CY - 1:GOSUB 3000:CY = CY -1:GOSUB 3000:CY=CY + 2
9670 RA = RA :CC = 37:FILL=1:CY = CY + 1:GOSUB 3000
9680 XS = 1:YS = XS
9690 CY = CY - 6:CX = CX - 6:RA=4:CC = 1:GOSUB 3000
9700 GOSUB 9950
9710 CX = CX + 12:GOSUB 3000
9720 GOSUB 9950
9900 RETURN
9950 PSET CX,CY, 16:PSET CX -1,CY,16
9955 PSET CX,CY -1,16:PSET CX - 1, CY -1 ,16
9960 RETURN