题目描述(ID:12377)
标题: 2048
标签: 模拟
详情:
2014年Gabriele Cirulli利用周末的时间写2048这个游戏的程序,仅仅只是好玩而已。
有16个格子,初始时会有两个格子上安放了两个数字2,每次可以选择上下左右其中一个方向去滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢,相同数字的方块在靠拢相撞时会相加。
比如0 0 2 2向右移动,两个2相撞将会变成4,即0 0 0 4。
需要注意的是0 2 2 2若向右移动将变成0 0 2 4,0 2 2 2若向左移动将变成4 2 0 0。
每一次滑动,一个数只会被合并一次,例如2 2 2 2向右移动将变成0 0 4 4,例如0 2 2 4向右移动将变成0 0 4 4。
现在请你完成2048这个游戏中的滑动的部分。
输入格式:
前四行每行四个整数,表示目前2048的状态。
第五行给定一个整数,表示接下来的操作数T。
第六行为T个字符表示用户的输入的滑动方向,用w s a d 分别表示向上、向下、向左、向右滑动。
输出格式:
滑动后的状态。如果游戏提前结束则输出结束前最后一个状态。
如果用户所输入的方向不能滑动,每出现一次则输出一行 Can not move!
如果上下左右都不能滑动则输出 Game over!
限制: 对于100%数据,1<=T<=1000
样例:

输入

2 8 4 16
2 4 2 0
32 8 2 0
32 2 32 0
4
sadd

输出

0 0 0 8
0 0 0 8
0 4 8 4
64 2 32 16
Can not move!
登录并解答