首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

俄罗斯方块 人工智能的有关问题 (难)

2012-06-03 
俄罗斯方块 人工智能的问题 (难)额...有个问题请教下大家.给定一个传统的俄罗斯方块,7种方块,总数量可达1

俄罗斯方块 人工智能的问题 (难)
额... 有个问题请教下大家.
给定一个传统的俄罗斯方块,7种方块,总数量可达1亿到5亿的输入量,消除1行的0分,消除2行得2分,消除3行得4分,消除4行得8分.
要求写一个程序,尽可能的得分. 得分最多者胜.处理当前方块时可以考虑后续方块(即允许考虑后续方块参与当前方块最终位置的决策过程.
输入格式为:
第一行为一个整数n(实际输入100000000 >= n >= 50000000), 表示接下来有n个方块要落下,接下来有n行, 每行有一个整数t(0< t < 8),代表上7个方块中的一个方块要落下。

我自己写了一个,分数最高的时候可以达到2000多分(不过要看运气),到了9000多个方块的时候就完蛋了 .
我的程序只能判断当前的方块,没有能够考虑后续的方块. 
不论如何,希望大家给提点意见,不需要源码,给个想法就可以.
百分相谢!

题目原址:
http://legendcode.alibaba-inc.com/intro-project.jsp#a



[解决办法]
参赛资格: 
 浙江大学所有在读研究生。
[解决办法]
后续的方块应该是随机未知的吧?
[解决办法]
//功能:获取最好位置
//参数:Pos是返回的最好放置位置,CurrShapeIndex当前要下落的方块,
//PreScene上一个场景,Next4Shape接下来的4个方块,ResultScene是当一个方块放置后的整个游戏主体方块布局
Pos GetBestPos(CurrShapeIndex,PreScene,Next4Shape,out ResultScene );
说明:整个游戏的宽度是10格,而每个方块无论怎么放至少要占2个格,所以我们可以判断它与接下来的4格方块有关系。
而每次方块下落都会有当前游戏主体方块布局的限制,再考虑到后面4格方块也会影响到消块效果,所以要用到PreScene和ResultScene。然后,递归地对每一个方块调用此函数,直到没有方块为止。
至于这个函数的算法要怎么写,那就得看你自己了。这里我想到一些。每个方块有4中摆放方式(不旋转,左旋转,右旋转,180度旋转),把这几个方块放在一起,最大可能消去的方块数。呵呵 我就想到这些了
我的思路就是这样,仅供参考 LZ,加油
[解决办法]
帮顶!!!
[解决办法]
看看
[解决办法]
算法不错!
[解决办法]
顶一个,关注一下。
[解决办法]

[解决办法]
以前我也想寻求过AI,发两个链接,供参考

http://jinyou.100webspace.net/jytk/jytk.htm

http://notabdc.vip.sina.com/Solver/tetris.htm

热点排行