To test a on screen location, your can use booleans functions.
Where C=lines (Y) and B=Columns(X)
4165 PRINT AT C,B;"X"
We had to test several location on the screen:
Line 12; test the column 12 and 13 ...
If (C=12 AND B=16) OR (C=12 AND B=10) THEN GOTO 6000
equal...
If C=12 AND (B=16 OR B=10) THEN GOTO 6000
Exemple:
For each scrutations, the BASIC had to check all conditions...
Code: Select all
4180 IF C=12 AND B=16 OR C=7 AND\
B=4 OR C=7 AND B=10 OR C=8 AND \
B=4 OR C=8 AND B=11 OR C=9 AND B\
=5 OR C=9 AND B=12 OR C=10 AND B\
=6 OR C=10 AND B=13 OR C=11 AND \
B=8 OR C=11 AND B=14 OR C=12 AND\
B=10 OR C=12 AND B=15 THEN GOTO\
6000
C=7 AND B=4 ; C=7 AND B=10 >> C=7 AND (B=4 OR B=10)
C=8 AND B=4 ; C=8 AND B=11 >> C=8 AND (B=4 OR B=11)
C=9 AND B=5 ; C=9 AND B=12 >> C=9 AND (B=5 OR B=12)
C=10 AND B=6 ; C=10 AND B=13 >> C=10 AND (B=6 OR B=13)
C=11 AND B=8 ; C=11 AND B=14 >> C=11 AND (B=8 OR B=14)
C=12 AND B=10 ; C=12 AND B=15 ; C=12 AND B=16 >> C=11 AND (B=10 OR B=15 OR B=16)
Juste replace the AND conditions by a GOTO function.
Code: Select all
4165 PRINT AT C,B;"X"
4178 REM JUMP TO THE RIGHT
4179 REM LINE CONDITIONS.
4180 GOTO 4183+C*2
4183 REM IF C=0
4185 REM IF C=1
4187 REM IF C=2
4189 REM IF C=3
4191 REM IF C=4
4193 REM IF C=5
4195 REM IF C=6
4196 GOTO 5000
## IF C=7 (LINE 7)
4197 IF B=4 OR B=10 THEN GOSUB 7000
4198 GOTO 5000
## IF C=8 (LINE 8)
4199 IF B=4 OR B=11 THEN GOSUB 7000
4200 GOTO 5000
## IF C=9 (LINE 9)
4201 IF B=5 OR B=12 THEN GOTO 6000
## IF C=10 (LINE 10)
4203 IF B=6 OR B=13 THEN GOTO 6000
## IF C=11 (LINE 11)
4205 IF B=8 OR B=14 THEN GOTO 6000
## IF C=12 (LINE 12)
4207 IF B=10 OR B=15 OR B=16 THEN GOTO 6000
5000 REM ...END OF YOUR PROGRAM (OR PRG. LOOP)
5500 STOP
6000 PRINT AT 0,0;"BANG!"
6010 GOTO 5000
7000 PRINT AT 0,0;"THO!!!"
7010 RETURN
But, will save time during Basic execution.
Have Fun.