2048 AI算法

题目:2048 AI算法

题目简介:该题目不是要求写一个2048游戏,而是模拟玩家身份,写一个玩2048游戏的智能算法

算法要求:

写一个JAVA类,实现com.yeepay.challenge.game2048.GamePlayer接口(接口类请下载附件game2048.jar)

类名要求:com.yeepay.challenge.game2048.答题者姓名全拼.PlayerImpl.java

可以有其他辅助类或者配置文件,但是都必须放在“com.yeepay.challenge.game2048.答题者姓名全拼”这个包下


需要实现的方法:public String play(int[][] gameData);

该方法传入参数为游戏棋盘数据,一个4x4的矩阵,用int二维数组表示

例如{{0,0,0,4},{0,0,0,0},{0,0,0,0},{0,2,0,2}}表示如下棋盘

方法返回值为字符串表示滑动方向,必须是以下四个字符之一: U D L R

该JAVA类模拟玩家的身份,每次根据棋盘的数据决定一个移动方向

该JAVA类需要有一个不带参数的构造方法,游戏的主体程序(附件game2048.jar)会生成棋盘数据,构造一个该JAVA类的实例,并循环调用play方法进行游戏,直到结束。

附加说明:

答题者可以下载主体程序(附件game2048.jar)来测试自己的AI算法,使用方式如下:

1.把game2048.jar引入工程依赖

2.写一个测试类

import com.yeepay.challenge.game2048.GameConsole

在main方法中调用GameConsole.play(PlayerImpl.class);

3.每执行一次play方法即完成一局,返回值是该局的最终得分

主体程序游戏规则:

1.随机数规则与手机上的2048游戏一致,每次移动后随机产生一个2或者4,二者的产生几率为9:1

2.计分规则也一致,每次合并的数字加入总分

3.游戏结束规则略有不同,以下两种情况导致游戏结束:a.棋盘上已经没有格子可以合并;b.提交了一次无效的移动方向(该方向上没有任何格子可以移动或者合并)

重要:如果由于提交了一次无效的移动方向导致游戏结束,那么该局的得分为0,即算法程序要保证每次提交的方向必须是有效的。

评分参考依据:

1.连续执行100次,取平均分数和平均执行时长,要求平均分数超过1000,平均时间小于5秒

2.代码结构清晰,注释明了

3.有设计说明文档

附件下载:game2048.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值