annotate code/ghost0.gq @ 69:8a0f1447c034

Implement plain if in gqc and use it in ghost0. This provides a small improvement in code size
author Michael Pavone <pavone@retrodev.com>
date Sun, 27 Jul 2014 23:19:23 -0700
parents f4f403c83e80
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #{
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 up <- 0
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 right <- 1
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 down <- 2
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 left <- 3
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 getDirX <- :dir startX {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 if: dir = right {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 startX <- startX + 1
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 } else: {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 if: dir = left {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 startX <- startX - 1
69
8a0f1447c034 Implement plain if in gqc and use it in ghost0. This provides a small improvement in code size
Michael Pavone <pavone@retrodev.com>
parents: 68
diff changeset
13 }
66
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 startX
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
18 getDirY <- :dir startY {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
19 if: dir = up {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 startY <- startY - 1
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 } else: {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22 if: dir = down {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
23 startY <- startY + 1
69
8a0f1447c034 Implement plain if in gqc and use it in ghost0. This provides a small improvement in code size
Michael Pavone <pavone@retrodev.com>
parents: 68
diff changeset
24 }
66
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
26 startY
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
27 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
28
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
29 opDir <- :dir {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
30 if: dir < 2 {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 dir <- dir + 2
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
32 } else: {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
33 dir <- dir - 2
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
34 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
35 dir
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
36 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
37
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
38 goTowardsX:Y <- :targetX targetY {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
39 myIdx <- (me: )
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
40 myX <- ghostPos: myIdx
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
41 myY <- yCoord
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
42 myVit <- ghostStatus: myIdx
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
43 myDir <- direction
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
44
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
45
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
46 firstChoice <- 0
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
47 secondChoice <- 0
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
48
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
49 if: myX > targetX {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
50 //ghost is to the right of target
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
51 if: myY > targetY {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
52 //ghost is below target
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
53 if: (myX - targetX) > (myY - targetY) {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
54 //target is more left than up
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
55 firstChoice <- left
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
56 secondChoice <- up
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
57 } else: {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
58 firstChoice <- up
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
59 secondChoice <- left
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
60 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
61 } else: {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
62 //ghost is above or directly to the right of target
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
63 if: (myX - targetX) > (targetY - myY) {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
64 //target is more left than down
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
65 firstChoice <- left
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
66 secondChoice <- down
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
67 } else: {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
68 //target is more down than left
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
69 firstChoice <- down
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
70 secondChoice <- left
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
71 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
72 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
73 } else: {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
74 //ghost is to the left of or directly above/below target
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
75 if: myY > targetY {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
76 //ghost is below target
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
77 if: (targetX - myX) > (myY - targetY) {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
78 //target is more right than up
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
79 firstChoice <- right
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
80 secondChoice <- up
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
81 } else: {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
82 firstChoice <- up
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
83 secondChoice <- right
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
84 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
85 } else: {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
86 //ghost is above or directly to the left of target
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
87 if: (targetX - myX) > (targetY - myY) {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
88 //target is more right than down
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
89 firstChoice <- right
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
90 secondChoice <- down
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
91 } else: {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
92 //target is more down than right
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
93 firstChoice <- down
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
94 secondChoice <- right
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
95 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
96 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
97 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
98 if: myVit = 1 {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
99 //currently in fright mode, try to run away
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
100 firstChoice <- opDir: firstChoice
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
101 secondChoice <- opDir: secondChoice
69
8a0f1447c034 Implement plain if in gqc and use it in ghost0. This provides a small improvement in code size
Michael Pavone <pavone@retrodev.com>
parents: 68
diff changeset
102 }
66
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
103
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
104
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
105
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
106 tmp <- 0
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
107 i <- 0
68
f4f403c83e80 Small ghost AI change. Doesn't seem to change results, but closer to my actual intent
Michael Pavone <pavone@retrodev.com>
parents: 66
diff changeset
108 while: { i < 3} do: {
66
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
109 targetX <- getDirX: firstChoice myX
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
110 targetY <- getDirY: firstChoice myY
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
111
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
112 if: (mapContentsAt: targetX targetY) - 1 > 4 {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
113 //first choice is a wall or ghost start pos
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
114 tmp <- firstChoice
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
115 firstChoice <- secondChoice
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
116 secondChoice <- opDir: firstChoice
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
117 i <- i + 1
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
118 } else: {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
119 if: firstChoice = (opDir: myDir) {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
120 //first choice is backwards
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
121 tmp <- firstChoice
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
122 firstChoice <- secondChoice
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
123 secondChoice <- opDir: firstChoice
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
124 i <- i + 1
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
125 } else: {
68
f4f403c83e80 Small ghost AI change. Doesn't seem to change results, but closer to my actual intent
Michael Pavone <pavone@retrodev.com>
parents: 66
diff changeset
126 i <- 3
66
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
127 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
128 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
129 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
130 direction!: firstChoice
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
131
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
132 0
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
133 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
134
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
135 //chases lambda man
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
136 main <- {
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
137 lambdamanPos:
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
138 goTowardsX: xCoord Y: yCoord
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
139 }
9cc019c98335 Added chaser ghost AI
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
140 }