-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpacvb-OsbornOptimized-Fast.bas
77 lines (77 loc) · 2.64 KB
/
pacvb-OsbornOptimized-Fast.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
1 cls:clr
4 random
8 pd=4
10 gx=10
20 gy=10
30 px=2
40 py=11
45 tag wall=43,wall=160
49 gosub 5000
50 rem move ghost 1
55 gosub 1000
57 do 55,500
60 end
1000 rem ** move ghost 1
1002 let dr=0:ghostpos:letvc=v
1005 sub v=v-40:temp=peek(v) : comp temp,wall:[beq1020
1010 comp pd,2:[beq1020]:add dr=dr+1
1020 add v=v+80:temp=peek(v) : comp temp,wall:[beq1050
1030 comp pd,1:[beq1050]:add dr=dr+2
1050 sub v=v-39:temp=peek(v) : comp temp,wall:[beq1080
1060 comp pd,4:[beq1080]:add dr=dr+8
1080 sub v=v-2 :temp=peek(v) : comp temp,wall:[beq1100
1090 comp pd,8:[beq1100]:add dr=dr+4
1100 goto1120
1110 tag drs
1111 #0,1,2,1,4,4,2,1,8,1,8,2,4,4,8,1
1112 #0,1,2,2,4,1,4,2,8,8,2,8,8,1,4,2
1113 #0,1,2,1,4,4,2,4,8,1,8,1,4,8,2,4
1114 #0,1,2,2,4,1,4,1,8,8,2,2,8,4,8,8
1120 gd=peek(54299)and48
1122 add gd=gd+dr
1124 add gd=gd+drs
1126 pd=peek(gd)
1130 comp pd,1:[bne1140]:dec gy
1140 comp pd,2:[bne1150]:inc gy
1150 comp pd,4:[bne1160]:dec gx
1160 comp pd,8:[bne1162]:inc gx
1162 ghostpos
1164 pokevc,32:pokev,65
1180 return
2000 rem
3000 rem
4000 rem
5000 print "++++++++++++++++++++++++++++++++++++++++";
5010 print "+*..+......+.........+++.....+.+++....*+";
5020 print "+.+++.++++.+.+++++++.+++.+++++.+++.+++.+";
5030 print "+.+.+.+....+.....++....+...+.+++.....+.+";
5040 print "+.....+.++...+.+....++.+.+...+++.+++.+.+";
5050 print "+++++.+.++++.+.++++.+..+.+++.+.+.+++.+.+";
5060 print "+...+.+.....+.....+.+.++...........+...+";
5070 print "+.+......+++.++++..*+.+..+.+++++++.+++.+";
5080 print "+.+.++++.++.......+++.+.++.+...........+";
5090 print "+.+.........++++........+..+.++++++.++++";
5100 print "+.+.+.+++...+....++--++.++++.+.........+";
5110 print "+...+.+...+.+.++.++++++......+.+.+.+.++.";
5120 print "+.+.+...+++.+.++.++++++.++++++.+...+.+.+";
5130 print "+.+...+.+...+...........+.++++.+++++.+.+";
5140 print "+.+.+++.+.+.+++.+++++++.+............+.+";
5150 print "+.+.....+.+.............++.+++++++++.+.+";
5160 print "+.++.++...+.+.+.++++++.....+.....+.....+";
5170 print "+.....+.+++.+.+........+++.+.+.+.+.+.+.+";
5180 print "+.+.+...+++.+.+.++++++.+...+.+.+.+.+.+.+";
5190 print "+.+...+.+++.+.+........+.+.+.+...+.+.+.+";
5200 print "+.+++.+.+++.+.+.++++++.+...+.+.+++.+.+.+";
5210 print "+*....+..................+...+.....+..*+";
5220 print "++++++++++++++++++++++++++++++++++++++++";
5222 i=1024
5225 v=peek(i):comp v,43:[bne5227
5226 poke i,160
5227 inci:do5225,977
5230 return
5997 rem
5998 rem calculate ghost position
5999 rem
6000 proc ghostpos
6010 letv=gy:dublv:dublv:add v=v+gy : dublv:dublv:dublv
6020 add v=v+1024:add v=v+gx:return