Java游戏编程思想
数组
提纲 逻辑推理 迷宫游戏
推箱子游戏 俄罗斯方块思路
Page 2
逻辑推理题 我搭上了一列特快车,大概在还差10分就午夜12点的时候,在中途站有一名 男子也上了列车,他在车门关闭后,像是突然回复意识一般,开始左右环视 着周遭乘客的脸。 “恕我愚昧,请问您今年28岁吗?”他如此的向我问道,“是的,不过您 怎么知道呢?” 我如此反问他,但被他无视,只是自顾自的和别人说话。 “您今年45岁吧?” “是没错。” “您是62岁吗?” “你怎么知道的?” 一直和看似不相识的乘客群重复着诸如此类的对话,看来这名男子,似 乎有着只要看着别人的脸就能知道其年龄的特殊能力。 此时到下个停车站还有15分钟左右的时间,全车箱包括我在内的乘客都 对这名男子投以好奇的注目眼光,一直到他问到最后一名女士。 “您是50岁吗?” “是的,不过还有五分钟就51岁了!”那名女士如此微笑的回答道。 霎时,那名男子的脸色铁青,仿佛震撼到无以复加Page 3
如何使用数组使用数组四步走:1、声明数组同时分配空间int[ ] a=new int[5];
2、赋值
a [0] = 8;
3、处理数据
a [0] = a[0] * 10; a[0] 80 a
Page 4
如何使用数组使用数组四步走:1、声明数组同时分配空间int[ ] a={4,2,5,1,3}; a[4] a[3] a[2] a[1] a[0] 3 1 5 2 4 a
Page 5
迷宫游戏出口3 3 3 3 3 3
3
0
0
0
0
3
3
0
3
0
3
3
3
0
3
0
3
3
3
0
0
0
1
3
人
3
3
3
3
3
3
posX posXPage 6
入口
[posY][posX]
posY-1 posY
迷宫游戏3 3 3 3 0 0 3 0 3 3 0 0 3 0 3 3 3 3
33 3
00 3
30 3
10 3
30 3
33 3
3 3
3 0
3 0
3 0
3 0
3 3
人
33 3 3
00 0 3
33 0 3
01 0 3
33 0 3
33 3 3
Page 7
基本原理
可以把俄罗斯方块的界面可以理解成由很多格子的组成,用二维数组的 每一个元素去对应每一个格子
3 3 3 3 3 3
3 0 2 0 0 3
3 0 0 0 0 3
3 0 0 2 1 3
3 0 0 0 0 3
3 3 3 3 3 3
Page 8
基本原理int[ ][ ] map={ {3, 3, 3, 3, 3, 3}, {3, 0, 0, 0, 0, 3}, {3, 2, 0, 0, 0, 3}, {3, 0, 0, 2, 0, 3}, {3, 0, 0, 1, 0, 3}, {3, 3, 3, 3, 3, 3}, } ; posX,posY-2 posX ,posY-1
posX,posY
其中:1表示Page 9
2表示
3表示
移动逻辑hu_x
向上移动 一.人上方是边界则 不移动
hu_y-1 3
3
3
3
3
3
hu_y
33 3
02 0 0 3 3 0 2 0 0
10 2 0 3 3 0 0 2 0
00 0 0 3
00 0 0 3 3 0 0 0 0
33 3 3 3 3 3 3 3 3
人上方障碍物,则不 移动
3 3 3 3
hu_x3 0 3 1 0
hu_y-1 3 hu_y 33
3Page 10
3
3
3
3
3
移动逻辑二.反之人上方是箱子. 1.箱子的上方有 障碍物或边界, 则不移动 hu_x3 32 1 0 0 3 3 2 0 0
30 0 2 0 3
30 3 0 0 3 3 0 3 0
30 0 0 0 3 3 0 0 0
33 3 3 3 3 3 3 3 3
box_y hu_y
3 3 3
2.箱子上方没有 障碍物或边
界, 则移动箱子和人
3 3 3 3 3
hu_x3 0 0 2
box_y
3
hu_yPage 11
33
03
13
03
03
33
2.箱子上方没有 障碍物或边界, 则移动箱子和人3 3 3 3 2 0 0 0 3 3 2 0 0
hu_x3 0 0 2 1 3 3 0 2 1 3 0 3 0 0 3 3 0 3 0 3 0 0 0 0 3 3 0 0 0 3 3 3 3 3 3 3 3 3 3
box_y 3 hu_y 33 3 3
hu_x
box_y hu_y
3 3
33Page 12
03
03
03
03
33
移动逻辑三.反之人上方 没有遇到箱子, 则移动人3 3 3 3 3 2 0 0 3 0 2 0 3 0 3 0
hu_x3 0 0 0 3 3 3 3
hu_y
33
03
03
03
13
33
hu_x3 3 3 3 2 0 0 3 0 2 0 3 0 3 0 3 0 0 1 3 3 3 3
hu_y
3
33Page 13
03
03
03
03
33
界面的显示地图数组_map[i,j]元素为1时表示需要把对应的_pbs[i,j],显示出来, 为0表示不显示 PictureBox[,] _pbs Int[,] _map0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
01Page 14
01
01
01
11
11
基本架构 Game类:基本算法类 LineBox:条状块类
PaneBox:田字块 Factory:工厂类
Page 15
块的随机产生用0标识田字块,1标识条状块 ,随机参数n,传入即的随机块对象 public static object CreateInstance(int n) { Object _box=null; switch(n) { case 0: _box=new PaneBox(0,0); break; case 1: _box=new LineBox(0,0); break; } return _box; }//工厂模式
Page 16
…… 此处隐藏:542字,全部文档内容请下载后查看。喜欢就下载吧 ……
