为纪念Ada Lovelace诞辰200周年,小博无线将面向小博无线的开发者及其朋友们举办一次编程竞赛。内部开发者可直接参赛,并欢迎邀请自己喜欢编程的朋友参加。
本次编程邀请赛的选题为2048 Bot。参赛者需要编程实现数字游戏2048以及获取最高分的玩家智能。
2048游戏在一个4*4的矩阵中进行,初始状态为随机放置的3个2,例如:
状态1
0 | 0 | 0 | 0 |
---|---|---|---|
0 | 2 | 0 | 0 |
0 | 0 | 0 | 0 |
2 | 0 | 2 | 0 |
0表示格子为空。玩家通过移动数字切换游戏状态. 在状态1分别选择向上下左右4个方向移动会分别切换到下面4个状态:
状态1向上移动至状态U
2 | 2 | 2 | 0 |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
状态1向下移动至状态D
0 | 0 | 0 | 0 |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
2 | 2 | 2 | 0 |
状态1向左移动至状态L
0 | 0 | 0 | 0 |
---|---|---|---|
2 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
4 | 0 | 0 | 0 |
移动方向上两个相同数字会合并成一个新的数字,值为两个数字相加
状态1向右移动至状态R
0 | 0 | 0 | 0 |
---|---|---|---|
0 | 0 | 0 | 2 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 4 |
同时,每次移动后游戏会完全随机选择一个空白格子放入一个2或4(各占50%概率)。以状态U为例,它的最后状态可能为13*2=26种状态中的一个,每种状态的概率均为1/26,排列如下:
状态U1
2 | 2 | 2 | 2 |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
状态U2
2 | 2 | 2 | 4 |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
状态u3
2 | 2 | 2 | 0 |
---|---|---|---|
2 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
...
状态U26
2 | 2 | 2 | 0 |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 4 |
每次移动只会在同一行或同一列触发一次合并,但在不同的行或列上的合并会同时触发。以下面的状态2为例
状态2
2 | 2 | 2 | 2 |
---|---|---|---|
2 | 0 | 2 | 0 |
0 | 0 | 4 | 0 |
0 | 0 | 0 | 0 |
向左移动得到
状态2L (未显示新随机生成的2或4)
4 | 2 | 2 | 0 |
---|---|---|---|
4 | 0 | 0 | 0 |
4 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
向右移动得到
状态2R (未显示新随机生成的2或4)
0 | 2 | 2 | 4 |
---|---|---|---|
0 | 0 | 0 | 4 |
0 | 0 | 0 | 4 |
0 | 0 | 0 | 0 |
当无法往任何一个方向移动时,游戏结束, 例如下面的状态3
状态3
4 | 16 | 4 | 2 |
---|---|---|---|
2 | 4 | 16 | 32 |
4 | 8 | 4 | 64 |
8 | 16 | 64 | 128 |
|0||0||0||0|
|0||2||0||0|
|0||0||0||0|
|2||0||2||0|
|2||2||2||2|
|0||0||0||0|
|0||0||0||0|
|0||0||0||0|
如对本次比赛有任何疑问,请发信到ada-cmp@rippletek.com咨询
成都瑞小博科技有限公司(简称:小博无线)是一家专注于商业场所Wi-Fi覆盖及运营的创新型互联网企业,致力于商业Wi-Fi覆盖产品研发与运营模式创新,为全国商业Wi-Fi运营团队提供全面的运营平台与技术服务。凭借扎实稳定的技术基础,小博无线已成为国内最大的商业Wi-Fi开放运营平台供应商。
www.rippletek.com