Problem1659--2048

1659: 2048

[Creator : ]
Time Limit : 1 sec  Memory Limit : 128 MB

Description

小学弟最近愁于C#最后一次作业,是以寝室为单位做一个小游戏或具有功能的软件,小学弟C#学的差,他不知道做什么,他玩起了手机里的2048游戏,他想了想,他可以用c#写个2048小游戏啊,这里科普一下2048游戏的规则:给定一个4*4的方格,开始的时候只有若干个2, 每次可以选择上下左右其中一个方向去滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢外,系统也会在空白的地方乱数出现一个数字方块,相同数字的方块在靠拢、相撞时会相加,可以连续移动但不能连续相加。玩家的目标就是尽快凑出“2048”这个数字方块。

作为小学弟的学长,写一个2048游戏当然难不倒你,通过分析你发现主要问题是如何根据当前状态和滑动方向,确定出下一个方格状态即滑动后的结果(不考虑新加入的随机方格)。每个状态绘制出来便成了一个简单的2048游戏。

emmmm,学长们一下就解决了问题,学长不想告诉小学弟,于是这道题就出现了...........


Input

多组测试数据,每组数据的第一行为操作的过程(0表示向左滑,1表示向右滑,2表示向上滑,3表示向下滑)。(长度不超过100)

接下来有4行4列的方格,每个方格的值只能为0,2,4,8,16,32,64,128,256,512,1024,2048,其中0表示该格子为空白。

Output

每组输出滑动后的状态,即4行4列的格子值。

Sample Input Copy

2
0 0 0 0
0 0 0 0
0 2 2 0
2 0 0 0
0
2 2 2 0
0 0 2 0
0 0 0 0
0 0 0 0
21
0 0 0 0
2 2 0 0 
0 0 2 2 
0 0 0 0

Sample Output Copy

2 2 2 0
0 0 0 0
0 0 0 0
0 0 0 0
4 2 0 0
2 0 0 0
0 0 0 0
0 0 0 0
0 0 4 4
0 0 0 0
0 0 0 0
0 0 0 0

HINT

小学弟还是不知道C#做什么。。。

Source/Category