Page 3 of 18

MORE OF THE HANGED MANS TORSO

Posted: Fri Jun 02, 2023 8:22 am
by ahenry3068
MORE OF THE TORSO :)

Code: Select all

10 CLS:PRINT
15 XLIMIT = 319:YLIMIT=239
20 PI = 3.1416 
25 Q1 = 1:Q2 = 1:Q3 = 1:Q4 = 1



35 PRINT "WELCOME TO HANGMAN"
40 PRINT " ONE PLAYER AGAINST THE COMPUTER ?
45 PRINT " OR HEAD TO HEAD ?"

55 SCREEN 128
60 GOSUB 5000 : REM BACKGROUND
65 GOSUB 7000 : REM GALLOWS
70 GOSUB 8000 : REM ROPE
80 GOSUB 9500 : REM THE GUYS HEAD
85 GOSUB 10000 : REM THE TORSO
95 INPUT X$
100 SCREEN 0:END

2999 REM CIRCLE AND ELLIPSE SUBROUTINE
3000 Q = 1 / RA
3010 IF FILL = 1 THEN Q = .3/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 XS < 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 OR Q4 = 0 THEN 3140
3130    PSET AX, AY, CC
3140    IF ZX<0 OR ZX>XLIMIT OR AY < 0 OR AY > YLIMIT OR Q3 = 0 THEN 3160
3150    PSET ZX, AY, CC
3160    IF AX<0 OR AX > XLIMIT OR ZY<0 OR ZY > YLIMIT OR Q2 = 0 THEN 3180
3170    PSET AX, ZY, CC
3180    IF ZX<0 OR ZX > XLIMIT OR ZY<0 OR ZY > YLIMIT OR Q1 = 0 THEN 3300
3190    PSET ZX, ZY, CC
3200    GOTO 3300
3220    IF Q4<> 0 THEN LINE CX,CY,AX,AY,CC
3225    IF Q3<> 0 THEN LINE CX,CY,ZX,AY,CC
3230    IF Q2<> 0 THEN LINE CX,CY,AX,ZY,CC
3235    IF Q1<> 0 THEN 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 = 33
5020 GOSUB 3000:RA=RA-1:GOSUB 3000
5030 CC = 7:
5040 FOR RA = 31 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 = $10
9510 GOSUB 3000:RA = RA - 1:GOSUB 3000
9520 RA = RA - 1:FILL = 1:CC = $25: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
9555 REM DRAW HIS NECK 
9560 LINE 67,76,67,84,$10
9570 LINE 66,76,66,84,$10
9580 LINE 67,87,67,90,$10:LINE 66,87,66,90,$10
9590 LINE 82,76,82,84,$10
9600 LINE 83,76,83,84,$10
9605 LINE 82,87,82,90,$10:LINE 83,87,83,90,$10
9610 RECT 68,76,81,84,$25
9620 RECT 68,89,81,90,$25
9621 REM END NECK
9630 RA = 20:XS = .8:FILL = 0
9640 CC = $10: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 = $01:GOSUB 3000
9700 GOSUB 9950:REM THE PUPILS OF HIS EYES 
9710 CX = CX + 12:GOSUB 3000
9720 GOSUB 9950:CX = 74:CY = 63
9730 LINE CX-1,CY, CX - 2, CY + 6, $10
9740 LINE CX+1,CY, CX + 2, CY + 6, $10
9750 LINE CX,CY,CX -1, CY + 6, $23
9760 LINE CX,CY,CX + 1, CY + 6, $23
9770 LINE CX,CY+3,CX,CY+6,$22
9780 Q3=0:Q4=0:CC=$10:CY = CY + 13:YS=.35:RA=6:FILL=0
9790 GOSUB 3000  
9800 CY = CY + 1:CC=$31:GOSUB 3000
9805 CY = CY + 1:CC=$10:GOSUB 3000
9806 Q3=1:Q4=1:YS=0: REM REMEMBER TO TURN CIRCLE FULLY ON !!!
9810 RETURN
9949 REM THE PUPILS 
9950 PSET CX,CY, 16:PSET CX -1,CY,16
9955 PSET CX,CY -1,16:PSET CX - 1, CY -1 ,16
9960 RETURN

9999 REM THE TORSO
10000 LINE 82,90,105,93, $10
10010 LINE 83,91,105,94, $10
10020 LINE 68,90,48,93, $10
10030 LINE 69,91,48,94, $10
10040 LINE 67,90,74,105, $10
10050 LINE 83,90,74,105,$10
10059 REM THIS FOR LOOP FILLS IN THE NECKLINE
10060 FOR X = 81 TO 68 STEP -1
10070     LINE 75,103,X, 90, $25
10080 NEXT X
10090 LINE 74,105,71,109,$10
10100 LINE 71,109,71,139,$10
10110 LINE 71,139,92,144,$10
10120 LINE 92,144,92,107,$10
10300 CC = 16:RA = 1
10310 CX = 74:FILL = 1
10305 REM SHIRT BUTTONS
10320 FOR CY = 106 TO 142 STEP 8
10330     GOSUB 3000
10340 NEXT CY
10350 Q1 = 0:Q3 = 0:Q4 = 0:FILL = 0
10360 XSQUISH = .52
10365 RA = 16
10370 CY = 123:CX = 93:GOSUB 3000:CX=92:GOSUB 3000
10380 CX = 106:CY = 110:GOSUB 3000:RA=15:GOSUB 3000

10500 RETURN 


Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Sat Jun 03, 2023 12:43 am
by ahenry3068
NO PARTICULAR COMMENT
LATEST CODE

Code: Select all

10 CLS:PRINT
15 XLIMIT = 319:YLIMIT=239
20 PI = 3.1416 
25 Q1 = 1:Q2 = 1:Q3 = 1:Q4 = 1

35 PRINT "WELCOME TO HANGMAN"
40 PRINT " ONE PLAYER AGAINST THE COMPUTER ?
45 PRINT " OR HEAD TO HEAD ?"

55 SCREEN 128
60 GOSUB 5000 : REM BACKGROUND
65 GOSUB 7000 : REM GALLOWS
70 GOSUB 8000 : REM ROPE
80 GOSUB 9500 : REM THE GUYS HEAD
85 GOSUB 10000 : REM THE TORSO
90 GOSUB 11000 : REM THE LEFT ARM
190 INPUT X$
200 SCREEN 0:END

2999 REM CIRCLE AND ELLIPSE SUBROUTINE
3000 Q = 1 / RA
3010 IF FILL = 1 THEN Q = .3/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 XS < 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 OR Q4 = 0 THEN 3140
3130    PSET AX, AY, CC
3140    IF ZX<0 OR ZX>XLIMIT OR AY < 0 OR AY > YLIMIT OR Q3 = 0 THEN 3160
3150    PSET ZX, AY, CC
3160    IF AX<0 OR AX > XLIMIT OR ZY<0 OR ZY > YLIMIT OR Q2 = 0 THEN 3180
3170    PSET AX, ZY, CC
3180    IF ZX<0 OR ZX > XLIMIT OR ZY<0 OR ZY > YLIMIT OR Q1 = 0 THEN 3300
3190    PSET ZX, ZY, CC
3200    GOTO 3300
3220    IF Q4<> 0 THEN LINE CX,CY,AX,AY,CC
3225    IF Q3<> 0 THEN LINE CX,CY,ZX,AY,CC
3230    IF Q2<> 0 THEN LINE CX,CY,AX,ZY,CC
3235    IF Q1<> 0 THEN 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 = 33
5020 GOSUB 3000:RA=RA-1:GOSUB 3000
5030 CC = 7:
5040 FOR RA = 31 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 = $10
9510 GOSUB 3000:RA = RA - 1:GOSUB 3000
9520 RA = RA - 1:FILL = 1:CC = $25: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
9555 REM DRAW HIS NECK 
9560 LINE 67,76,67,84,$10
9570 LINE 66,76,66,84,$10
9580 LINE 67,87,67,90,$10:LINE 66,87,66,90,$10
9590 LINE 82,76,82,84,$10
9600 LINE 83,76,83,84,$10
9605 LINE 82,87,82,90,$10:LINE 83,87,83,90,$10
9610 RECT 68,76,81,84,$25
9620 RECT 68,89,81,90,$25
9621 REM END NECK
9630 RA = 20:XS = .8:FILL = 0
9640 CC = $10: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 = $01:GOSUB 3000
9700 GOSUB 9950:REM THE PUPILS OF HIS EYES 
9710 CX = CX + 12:GOSUB 3000
9720 GOSUB 9950:CX = 74:CY = 63
9730 LINE CX-1,CY, CX - 2, CY + 6, $10
9740 LINE CX+1,CY, CX + 2, CY + 6, $10
9750 LINE CX,CY,CX -1, CY + 6, $23
9760 LINE CX,CY,CX + 1, CY + 6, $23
9770 LINE CX,CY+3,CX,CY+6,$22
9780 Q3=0:Q4=0:CC=$10:CY = CY + 13:YS=.35:RA=6:FILL=0
9790 GOSUB 3000  
9800 CY = CY + 1:CC=$31:GOSUB 3000
9805 CY = CY + 1:CC=$10:GOSUB 3000
9806 Q3=1:Q4=1:YS=0: REM REMEMBER TO TURN CIRCLE FULLY ON !!!
9810 RETURN
9949 REM THE PUPILS 
9950 PSET CX,CY, 16:PSET CX -1,CY,16
9955 PSET CX,CY -1,16:PSET CX - 1, CY -1 ,16
9960 RETURN

9999 REM THE TORSO
10000 LINE 82,90,105,93,$10
10010 LINE 83,91,105,94,$10
10020 LINE 68,90,48,93, $10
10030 LINE 69,91,48,94, $10
10040 LINE 67,90,74,105,$10
10050 LINE 83,90,74,105,$10
10059 REM THIS FOR LOOP FILLS IN THE NECKLINE
10060 FOR X = 81 TO 68 STEP -1
10070     LINE 75,103,X, 90, $25
10075 NEXT X
10080 LINE 74,105,72,110,$10
10085 LINE 72,110,72,141,$10

10090 RECT 73,110,91,140,$08
10095 RECT 74,108,91,110,$08

10100 X1 = 74:Y1=107:Y2=95
10105 FOR X2 = 104 TO 93 STEP -1
10110     IF X2 = 101 THEN LINE X1,Y1,X2,Y2,$08:Y2 = Y2 - 1
10120     LINE X1,Y1,X2,Y2,$08
10125 NEXT X2
10130 Y2 = Y2 - 1
10135 FOR X2 = 95 TO 83 STEP -1
10140 IF X2 = 87 THEN LINE X1,Y1,X2,Y2,$08:Y2 = Y2 - 1
10145     LINE X1,Y1,X2,Y2,$08
10150 NEXT X2
10151 PSET 105,95,$08
10155 X2 = 91
10160 FOR Y2 = 110 TO 98 STEP -1
10165    LINE X1,Y1,X2,Y2,$08
10170 NEXT Y2

10200 LINE 76,141,91,141,$08
10205 LINE 81,142,91,142,$08
10210 LINE 89,143,91,143,$08

10360 LINE 74,141,92,144,$10
10365 LINE 92,144,92,107,$10
10370 CC = 16:RA = 1
10375 CX = 76:FILL = 1
10380 REM SHIRT BUTTONS
10385 FOR CY = 112 TO 142 STEP 8
10390     GOSUB 3000
10400 NEXT CY
10500 RETURN 

10999 REM ARM ON THE RIGHT (LEFT ARM)
11000 Q1 = 0:Q3 = 0:Q4 = 0:FILL = 0
11010 XSQUISH = .52
11020 RA = 16
11030 CY = 123:CX = 92:GOSUB 3000:CX=93:RA=RA+1:CC=$08:GOSUB 3000
11060 RA=RA-1:GOSUB 3000:CC = 16
11065 CX = 106:CY = 110:GOSUB 3000:RA=15:GOSUB 3000
11070 CC = $08:Q1=0:Q2=1:Q3=0:Q4=0
11075 FOR RA = 14 TO 1 STEP -.5
11080 GOSUB 3000:IF RA =12 THEN Q1=1
11085 NEXT RA
12000 RETURN


Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Sun Jun 04, 2023 1:14 am
by ahenry3068
I need to try programming only when I'm awake and alert.

I'm putting myself out there on purpose..

I have no more recent code to post tonight because my latest
code had black lines shooting way, way way out of bounds.

Such is life... I have to work in the morning. I was
hoping to post some code showing progress but NOT
Tonight.... Sorry.

Good evening to my CX16 partners :)

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Sun Jun 04, 2023 5:51 pm
by Edmond D
ahenry3068 wrote: Sun Jun 04, 2023 1:14 am I need to try programming only when I'm awake and alert.

I'm putting myself out there on purpose..

I have no more recent code to post tonight because my latest
code had black lines shooting way, way way out of bounds.

Such is life... I have to work in the morning. I was
hoping to post some code showing progress but NOT
Tonight.... Sorry.

Good evening to my CX16 partners :)
It's ok to have a bad day...

Just keep going!

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Mon Jun 05, 2023 12:52 am
by ahenry3068
I appreciate the sentiment... I was tired a little buzzed last night and extremely tired..
I was trying to force through and it wasn't turning out well. My math skills for a programmer
are to be charitable average. Even when I was younger I often found my self crunching
stuff in Excel or at least on a calculator before I wrote code. Last night I was getting
stuff completely wrong.... I am planning on finishing the game.... :)
This is why I started the Graphics first......I knew they were going to be Spaghetti code.

I'm breaking out each body part into a separate GOSUB. I think the Game Logic
will be much more straight forward once I get there...

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Mon Jun 05, 2023 12:53 am
by ahenry3068
I'm kinda enjoying the BASIC coding :) :) :) :) :)

ALSO So far I'm using the Works in Progress Thread
as Kind of my GITHUB. I need to get a GITHUB
acct if I keep doing this. Especially if I move to C
or Prog8 (I'm still hoping for a good Pascal implementation.... :) )

Absolutely 0 chance of me doing Assembly. Unless
I run into a particular subroutine that just needs speed.
I did some X86 assembly in the past... Even then
I mostly used it if it was necessary to Read, Write or
Copy a relatively large amount of Data in RAM.

The only other thing I used it for was to minimize RAM usage
That was often important in MS-DOS and I'm sure it could
be useful on the CX16 too.

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Tue Jun 06, 2023 1:03 am
by ahenry3068
Ok... I got on a useful technique. A lot of this drawing code is very repetitive Trial and Error
I found it was useful to use bright colors when experimenting with the X,Y numbers that
are necessary. I'm posting some intermediate code here. When the game comes
online ( 4 to 6 weeks... ? Maybe) the bright colors will be gone. but I thought I would post
this here as it is ... right before my bedtime. (Damn the Timeclock in the Morning...lol)

Code: Select all

10 CLS:PRINT
15 XLIMIT = 319:YLIMIT=239
20 PI = 3.1416 
25 Q1 = 1:Q2 = 1:Q3 = 1:Q4 = 1

35 PRINT "WELCOME TO HANGMAN"
40 PRINT " ONE PLAYER AGAINST THE COMPUTER ?
45 PRINT " OR HEAD TO HEAD ?"

55 SCREEN 128
60 GOSUB 5000 : REM BACKGROUND
65 GOSUB 7000 : REM GALLOWS
70 GOSUB 8000 : REM ROPE
80 GOSUB 9500 : REM THE GUYS HEAD
85 GOSUB 10000 : REM THE TORSO
90 GOSUB 11000 : REM THE LEFT ARM
190 INPUT X$
200 SCREEN 0:END

2999 REM CIRCLE AND ELLIPSE SUBROUTINE
3000 Q = 1 / RA
3010 IF FILL = 1 THEN Q = .3/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 XS < 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 OR Q4 = 0 THEN 3140
3130    PSET AX, AY, CC
3140    IF ZX<0 OR ZX>XLIMIT OR AY < 0 OR AY > YLIMIT OR Q3 = 0 THEN 3160
3150    PSET ZX, AY, CC
3160    IF AX<0 OR AX > XLIMIT OR ZY<0 OR ZY > YLIMIT OR Q2 = 0 THEN 3180
3170    PSET AX, ZY, CC
3180    IF ZX<0 OR ZX > XLIMIT OR ZY<0 OR ZY > YLIMIT OR Q1 = 0 THEN 3300
3190    PSET ZX, ZY, CC
3200    GOTO 3300
3220    IF Q4<> 0 THEN LINE CX,CY,AX,AY,CC
3225    IF Q3<> 0 THEN LINE CX,CY,ZX,AY,CC
3230    IF Q2<> 0 THEN LINE CX,CY,AX,ZY,CC
3235    IF Q1<> 0 THEN 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 = 33
5020 GOSUB 3000:RA=RA-1:GOSUB 3000
5030 CC = 7:
5040 FOR RA = 31 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 = $10
9510 GOSUB 3000:RA = RA - 1:GOSUB 3000
9520 RA = RA - 1:FILL = 1:CC = $25: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
9555 REM DRAW HIS NECK 
9560 LINE 67,76,67,84,$10
9570 LINE 66,76,66,84,$10
9580 LINE 67,87,67,90,$10:LINE 66,87,66,90,$10
9590 LINE 82,76,82,84,$10
9600 LINE 83,76,83,84,$10
9605 LINE 82,87,82,90,$10:LINE 83,87,83,90,$10
9610 RECT 68,76,81,84,$25
9620 RECT 68,89,81,90,$25
9621 REM END NECK
9630 RA = 20:XS = .8:FILL = 0
9640 CC = $10: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 = $01:GOSUB 3000
9700 GOSUB 9950:REM THE PUPILS OF HIS EYES 
9710 CX = CX + 12:GOSUB 3000
9720 GOSUB 9950:CX = 74:CY = 63
9730 LINE CX-1,CY, CX - 2, CY + 6, $10
9740 LINE CX+1,CY, CX + 2, CY + 6, $10
9750 LINE CX,CY,CX -1, CY + 6, $23
9760 LINE CX,CY,CX + 1, CY + 6, $23
9770 LINE CX,CY+3,CX,CY+6,$22
9780 Q3=0:Q4=0:CC=$10:CY = CY + 13:YS=.35:RA=6:FILL=0
9790 GOSUB 3000  
9800 CY = CY + 1:CC=$31:GOSUB 3000
9805 CY = CY + 1:CC=$10:GOSUB 3000
9806 Q3=1:Q4=1:YS=0: REM REMEMBER TO TURN CIRCLE FULLY ON !!!
9810 RETURN
9949 REM THE PUPILS 
9950 PSET CX,CY, 16:PSET CX -1,CY,16
9955 PSET CX,CY -1,16:PSET CX - 1, CY -1 ,16
9960 RETURN

9999 REM THE TORSO
10000 LINE 82,90,105,93,$10
10005 LINE 83,91,105,94,$10

10010 LINE 68,90,45,93, $10
10015 LINE 69,91,45,94, $10

10020 LINE 67,90,74,105,$10
10025 LINE 83,90,74,105,$10

10026 REM THIS FOR LOOP FILLS IN THE NECKLINE
10030 FOR X = 81 TO 68 STEP -1
10035     LINE 75,103,X, 90, $25
10040 NEXT X



10053 LINE 74,105,72,110,$10
10054 LINE 72,110,72,141,$10

10055 LINE 72,141,53,144,$10
10060 LINE 53,144,53,108,$10

10065 RECT 71,140,54,103,$08
10066 LINE 54,141,68,141,$08
10067 LINE 54,142,62,142,$08
10068 LINE 54,143,56,143,$08
10069 PSET 65,91,$10
10070 LINE 72,102,72,108,$08
10071 LINE 73,104,73,106,$08
10072 PSET 74,109,$08
10073 RECT 49,107,68,94,$8F
10074 RECT 69,96,69,99,$07
10076 RECT 45,107,48,95,$3B
10077 LINE 57,93,67,93, $F8
10078 LINE 65,92,67,92, $A4
10079 RECT 68,100,71,102,$F8
10080 LINE 70,98,70,100, $A4




10090 RECT 73,110,91,140,$08
10095 RECT 74,108,91,110,$08

10100 X1 = 74:Y1=107:Y2=95
REM 10105 RECT 88, 96, 101, 105, $26
REM CURRENT
10105 RECT 88, 94, 101, 106, $26
10110 RECT 88, 95, 105, 106, $88
10130 Y2 = Y2 - 1
REM 10135 FOR X2 = 95 TO 83 STEP -1
REM 10140 IF X2 = 87 THEN LINE X1,Y1,X2,Y2,$08:Y2 = Y2 - 1
REM 10145     LINE X1,Y1,X2,Y2,$08
REM 10150 NEXT X2
10151 PSET 105,95,$08
10155 X2 = 91
10160 FOR Y2 = 110 TO 98 STEP -1
10165    LINE X1,Y1,X2,Y2,$08
10170 NEXT Y2

10200 LINE 76,141,91,141,$08
10205 LINE 81,142,91,142,$08
10210 LINE 89,143,91,143,$08

10360 LINE 74,141,92,144,$10
10365 LINE 92,144,92,107,$10
10370 CC = 16:RA = 1
10375 CX = 76:FILL = 1
10380 REM SHIRT BUTTONS
10385 FOR CY = 112 TO 142 STEP 8
10390     GOSUB 3000
10400 NEXT CY
10500 RETURN 

10999 REM ARM ON THE RIGHT (LEFT ARM)
11000 Q1 = 0:Q3 = 0:Q4 = 0:FILL = 0
11010 XSQUISH = .52
11020 RA = 16
11030 CY = 123:CX = 92:GOSUB 3000:CX=93:RA=RA+1:CC=$08:GOSUB 3000
11060 RA=RA-1:GOSUB 3000:CC = 16
11065 CX = 106:CY = 110:GOSUB 3000:RA=15:GOSUB 3000
11070 CC = $08:Q1=0:Q2=1:Q3=0:Q4=0
11075 FOR RA = 14 TO 1 STEP -.5
11080 GOSUB 3000:IF RA =12 THEN Q1=1
11085 NEXT RA
12000 RETURN



Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Tue Jun 06, 2023 1:08 am
by ahenry3068
By using unique colors its easier to evaluate trial runs of the code.
Its relatively trivial to change the color to correct for the game
when I've filled all the correct Pixels.

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Tue Jun 06, 2023 1:21 am
by ahenry3068
When I say 4 to 6 weeks I'm estimating at least 3 more weeks on the Eye Candy Code.
Its the most complex Spaghetti code....lol I actually think Game logic is
going to be an easier task... :)

TORSO COMPLETE !!.

Posted: Wed Jun 07, 2023 2:54 am
by ahenry3068
Write code. view output. Tweak number values.
Rinse, repeat... Rinse, repeat.

Starting to look pretty good though. :)

Code: Select all

10 CLS:PRINT
15 XLIMIT = 319:YLIMIT=239
20 PI = 3.1416 
25 Q1 = 1:Q2 = 1:Q3 = 1:Q4 = 1

35 PRINT "WELCOME TO HANGMAN"
40 PRINT " ONE PLAYER AGAINST THE COMPUTER ?
45 PRINT " OR HEAD TO HEAD ?"

55 SCREEN 128
60 GOSUB 5000 : REM BACKGROUND
65 GOSUB 7000 : REM GALLOWS
70 GOSUB 8000 : REM ROPE
80 GOSUB 9500 : REM THE GUYS HEAD
85 GOSUB 10000 : REM THE TORSO
90 GOSUB 11000 : REM THE LEFT ARM
190 INPUT X$
200 SCREEN 0:END

2999 REM CIRCLE AND ELLIPSE SUBROUTINE
3000 Q = 1 / RA
3010 IF FILL = 1 THEN Q = .3/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 XS < 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 OR Q4 = 0 THEN 3140
3130    PSET AX, AY, CC
3140    IF ZX<0 OR ZX>XLIMIT OR AY < 0 OR AY > YLIMIT OR Q3 = 0 THEN 3160
3150    PSET ZX, AY, CC
3160    IF AX<0 OR AX > XLIMIT OR ZY<0 OR ZY > YLIMIT OR Q2 = 0 THEN 3180
3170    PSET AX, ZY, CC
3180    IF ZX<0 OR ZX > XLIMIT OR ZY<0 OR ZY > YLIMIT OR Q1 = 0 THEN 3300
3190    PSET ZX, ZY, CC
3200    GOTO 3300
3220    IF Q4<> 0 THEN LINE CX,CY,AX,AY,CC
3225    IF Q3<> 0 THEN LINE CX,CY,ZX,AY,CC
3230    IF Q2<> 0 THEN LINE CX,CY,AX,ZY,CC
3235    IF Q1<> 0 THEN 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 = $10:FILL = 0:XS=0:YS=0:RA = 33
5020 GOSUB 3000:RA=RA-.5:GOSUB 3000:RA=RA-.6:GOSUB 3000:RA = RA+1.2:GOSUB 3000
5030 CC = $07:
5040 FOR RA = 31 TO 1 STEP -.75:GOSUB 3000:NEXT RA:PSET CX,CY,$07
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
REM END ROPE 

9499 REM THE FACE
9500 CX = 59:CY = 60:RA = 6:XS = .4:CC = $10
9510 GOSUB 3000:RA = RA - 1:GOSUB 3000
9520 RA = RA - 1:FILL = 1:CC = $25:GOSUB 3000
9530 CX = 89:RA = 6:CC=16
9540 GOSUB 3000:RA = RA - 1:GOSUB 3000
9550 RA = RA - 1:FILL = 1:CC = $25:GOSUB 3000
9555 REM DRAW HIS NECK 
9560 LINE 67,76,67,84,$10
9570 LINE 66,76,66,84,$10
9580 LINE 67,87,67,90,$10:LINE 66,87,66,90,$10
9590 LINE 82,76,82,84,$10
9600 LINE 83,76,83,84,$10
9605 LINE 82,87,82,90,$10:LINE 83,87,83,90,$10
9610 RECT 68,76,81,84,$25
9620 RECT 68,89,81,90,$25
9621 REM END NECK
9630 RA = 20:XS = .8:FILL = 0
9640 CC = $10: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 = $25:FILL=1:CY = CY + 1:GOSUB 3000
9680 XS = 1:YS = XS
9690 CY = CY - 6:CX = CX - 6:RA=4:CC = $01:GOSUB 3000
9700 GOSUB 9950:REM THE PUPILS OF HIS EYES 
9710 CX = CX + 12:GOSUB 3000
9720 GOSUB 9950:CX = 74:CY = 63
9730 LINE CX-1,CY, CX - 2, CY + 6, $10
9740 LINE CX+1,CY, CX + 2, CY + 6, $10
9750 LINE CX,CY,CX -1, CY + 6, $23
9760 LINE CX,CY,CX + 1, CY + 6, $23
9770 LINE CX,CY+3,CX,CY+6,$22
9780 Q3=0:Q4=0:CC=$10:CY = CY + 13:YS=.35:RA=6:FILL=0
9790 GOSUB 3000  
9800 CY = CY + 1:CC=$31:GOSUB 3000
9805 CY = CY + 1:CC=$10:GOSUB 3000
9806 Q3=1:Q4=1:YS=0: REM REMEMBER TO TURN CIRCLE FULLY ON !!!
9810 RETURN
9949 REM THE PUPILS 
9950 PSET CX,CY, 16:PSET CX -1,CY,16
9955 PSET CX,CY -1,16:PSET CX - 1, CY -1 ,16
9960 RETURN
REM END FACE 

9999 REM THE TORSO
10000 LINE 82,90,105,93,$10
10005 LINE 83,91,105,94,$10

10010 LINE 68,90,42,93, $10
10015 LINE 69,91,42,94, $10

10020 LINE 67,90,74,105,$10
10025 LINE 83,90,74,105,$10

10026 REM THIS FOR LOOP FILLS IN THE NECKLINE
10030 FOR X = 81 TO 68 STEP -1
10035     LINE 75,103,X, 90, $25
10040 NEXT X

10053 LINE 74,105,72,110,$10
10054 LINE 72,110,72,141,$10

10055 LINE 72,141,53,144,$10
10060 LINE 53,144,53,108,$10

10065 RECT 71,140,54,103,$08
10066 LINE 54,141,68,141,$08
10067 LINE 54,142,62,142,$08
10068 LINE 54,143,56,143,$08
10069 PSET 65,91,$10
10070 LINE 72,102,72,108,$08
10071 LINE 73,104,73,106,$08

10072 PSET 74,109,$08

10073 RECT 47,107,68,94,$08
10074 RECT 69,96,69,99,$08
10076 RECT 42,107,48,95,$08
10077 LINE 56,93,67,93, $08:PSET 55,92,$10:PSET 64,91,$10 
10078 LINE 65,92,67,92, $08
10079 RECT 68,100,71,102,$08
10080 LINE 70,98,70,100, $08

10090 RECT 73,110,91,140,$08
10095 RECT 75,105,91,109,$08

10120 RECT 88, 94, 101, 106, $08
10125 RECT 81, 95, 105, 106, $08
10130 LINE 80, 96, 80, 105, $08
10135 LINE 79,98,79,105, $08
10140 LINE 78,100,78,105,$08
10145 LINE 77,101,77,105,$08
10150 LINE 76,103,76,105,$08
10155 LINE 74,103,75,103, $10
10160 PSET 76,101,$10:PSET 73,101,$10:PSET 72,99,$10:PSET 71,97,$10
10165 PSET 70,95,$10:PSET 69,93,$10:PSET 81,92,$10:PSET 80,94,$10
10166 PSET 80,96,$10:PSET 78,97,$10:PSET 77,99,$10
10167 LINE 76,100,76,103,$10

10175 RECT 82, 94, 93, 93, $08
10180 LINE 83, 92, 86, 92, $08
10185 LINE 74, 107,74, 108,$08
10190 PSET 73,109,$10

10200 LINE 76,141,91,141,$08
10205 LINE 81,142,91,142,$08
10210 LINE 89,143,91,143,$08

10360 LINE 74,141,92,144,$10
10365 LINE 92,144,92,107,$10

REM SHIRT BUTTONS
10370 CC = 16:RA = 1
10375 CX = 76:FILL = 1
10385 FOR CY = 112 TO 142 STEP 8
10390     GOSUB 3000
10400 NEXT CY

REM POCKET AND PRISONER NUMBER
10410 LINE 58,108,68,108,$10
10415 LINE 58,108,58,116,$10
10420 LINE 68,108,68,116,$10
10425 Q1=0:Q2=0:Q3=1:Q4=1:RA=4.5:XSQUISH = 0:YSQUISH=.6
10430 CX = 63:CY=116:CC=$10:FILL=0
10435 GOSUB 3000 
10440 CHAR 57,106,$10,"P-1"
10600 RETURN 

10999 REM ARM ON THE RIGHT (LEFT ARM)
11000 Q1=0:Q2=1:Q3=0:Q4=0:FILL = 0
11010 XSQUISH = .52
11020 RA = 16
11030 CY = 116:CX = 92:GOSUB 3000:CX=93:RA=RA+1:CC=$08:GOSUB 3000
11060 RA=RA-1:GOSUB 3000:CC = 16
11065 XSQUISH=.45:CX = 106:CY = 105:GOSUB 3000:RA=15:GOSUB 3000
11070 CC = $08:Q1=0:Q2=1:Q3=0:Q4=0
11075 FOR RA = 14 TO 1 STEP -.5
11080 GOSUB 3000:IF RA =12 THEN Q1=1
11085 NEXT RA
12000 RETURN