1.2 格位
一、格位
上一节我们引入了gxmax和gymax。这样一来我们就组成了一个战斗场面的坐标系统。
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
如上图,X表示一个格子。从中我们可以看出gxmax=12,gymax=12。像上图这样表示格的分布情况的,叫做格图
在格图中每个格子都有一个相应的坐标位置。因此我们规定,格纵(gy)就是格子从上往下依次递增(1,2,3...gymax)的值。格横(gx)就是格子从左往右依次递增(1,2,3...gxmax)的值。下图一个下划线里的值表示一个格子。
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
如上就是格图中各格子所对应的格横。
1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9 9 9
10 10 10 10 10 10 10 10 10 10 10 10
11 11 11 11 11 11 11 11 11 11 11 11
12 12 12 12 12 12 12 12 12 12 12 12
如上就是格图中各格子所对应的格纵。
由格横和格纵组成用来表示格的位置就是格位(gp)。格位的表示法如下:
(gx,gy)
二、位码
XXXXXaXXXXXX
XXXXXbXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXc
XXXXXXXXXXXX
XXXXXXXXXXXX
由前面所讲的可知,a的格位是(1,6),b的格位是(2,6),c的格位是(12,10)。表示格位以后可以简单表示为:
a(1,6) b(2,6) c(12,10)
为了在程序中更好的传输格位信息,因此规定了位码(pc),其格式是
"x" + 两位的gx字符 + "y" + 两位的gy字符,如果gx或gy不满两个字符,则在其前面添"0"。上面的a,b,c用位码表示如下:
a:x01y06
b:x02y06
c:x12y10
三、格位的属性
在战棋游戏中有的格子可以走,有的格子不能走,而不能走有被我方占据,被敌方占据,由于某种原因(比如:地形)而不能走三种。这样一来格子是否能走就有四种属性,用符号表示如下:
格子可以走:0
格子被我方占据:w
格子被敌方占据:d
由于某种原因不能走:1
这样程序中利用格位的属性就可以判定这个格子是否能走,从而解决了几个部队重叠在一格格子里的问题。
格位的属性通常可以和格图结合来表示整个战斗场面每个格子是否能走的情况,如下图:
000000000000
000000000000
000000000000
000000000000
00000w000000
0000wdw00000
00000w000000
000000000000
000000000000
000000000000
000000000000
000000000000
这个图表示我们四个部队围攻一个敌方部队的场景。也就说明了:
x06y06格子的属性是d
x06y05格子的属性是w
x05y06格子的属性是w
x07y06格子的属性是w
x06y07格子的属性是w
关于上述格子的属性可以简单表示为:
gv(6,6)="d"
gv(6,5)="w"
gv(5,6)="w"
gv(7,6)="w"
gv(6,7)="w"
思考:
000000001000
000000001000
000000001000
000000001000
000000001000
000000001000
000000001000
000000001000
000000001000
000000001000
000000000000
000000001000
以上格图表明了什么?
|