简单的2048

Time Limit: 1000 ms

Memory Limit: 65536 KB

Description

Gabriele Cirulli 最近灵感爆发,写了一款游戏,它的游戏规则是这样的: 1. 在一个4x4的方格内,开始先随机出现两个数字,出现的数字仅可能为2或4。 2. 玩家可以选择上下左右四个方向,如果方格内的数字出现位移或者合并,我们视为有效移动。 3. 玩家选择的方向上如果有相同的数字就进行合并, 新数字为原来两数字之和,每次有效移动可以同时合并,但不可以连续合并。 4. 玩家选择的方向上如果有空格(我们表示为0)则产生位移,由空格后方的非空格元素填补。 5. 每次有效移动一步,方格的空位处随机出现一个数字,可能为2或4。 6. 方格被数字填满且无法进行有效移动,玩家失败,游戏结束。 7. 方格上出现2048,玩家胜利,游戏结束。 8. 例如,一次左移: 2 2 2 2 4 4 0 0 8 2 2 0 => 8 4 0 0 0 2 2 2 4 2 0 0 0 4 2 2 4 4 0 0 主程序已经基本完成,可是粗心的Gabriele Cirulli漏写了判定玩家失败的函数,聪明的你想在他上洗手间的时间给他一个惊喜,于是你掏出键盘,默默地完成了判定失败函数。

Input

多Case,以EOF结束。 每个Case是一个4x4的数字矩阵,所有的数字均是2的幂次方或者0,0表示该位没有数字,并且所有数字均小于2048。 此数字矩阵即为玩家游戏过程中可能出现的局面。

Output

使用你刚刚完成的判定函数判断当前局面玩家是否失败。如果失败,输出“Game over!", 否则输出"Continue!"。

Sample Input

2 2 2 2
8 2 2 0
0 2 2 2
0 4 2 2

2 4 8 16
4 8 16 32
8 16 32 64
16 32 64 128

Sample Output

Continue!
Game over!

Hint

如果你不知道如何判断以EOF结束,可以参考下面的代码:
// n是你输入的第一个数字 C++ while (cin >> n) { ... } C/C++ while (scanf("%d", &n) != EOF) { ... }

Source

“掌赢杯”南京理工大学第六届程序设计大赛

提交代码