宝石迷情 Python 版Q11
介绍
此题需要看引导视频
概要
下载初始代码文件。
填写代码,通过测试
下载
背景
一个宝石消除游戏的核心逻辑
一个 4 x 4 个矩阵里有很多宝石
不同类型的宝石 用 不同的数字表达
0 代表这个位置没有宝石
样例
题目
将数组中的一个元素设置为 0
1 2 def delete(matrix, x, y): pass
关于已给的变量
已知,matrix
一定只有 4 x 4 的矩阵
我们在 小括号里的看到的变量,可以直接取值使用
关于结果
运算时请直接修改数组内的值
不要创建新数组
除了 print_icon 那道,其它题都不要打印
样例答案
1 2*def delete(matrix, x, y): matrix[y][x] = 0
API
print_icon(matrix)
将 matrix
中元素按着类似这样的格式打印出来
. $ @ # $ . . # $ $ $ # $ @ # .
宝石列表
其中,不同的符号代表不同的宝石
0 -> . 1 -> $ 2 -> @ 3 -> #
fill(matrix)
将 matrix
中元素是 0 的元素 随机补充 1 - 3(包含 3) 的数字
代表游戏中补充新的宝石
roll_to_right(matrix)
将 matrix
中的所有元素 向右侧翻滚一格, 最右侧变为最左侧#-- 效果
调用前
0 1 2 3 1 0 0 3 1 1 1 3 1 2 3 0
调用后
3 0 1 2 3 1 0 0 3 1 1 1 0 1 2 3
roll_to_top(matrix)
将 matrix
中的所有元素 向上侧翻滚一格, 最上侧变为最下侧
效果
调用前
0 1 2 3 1 0 0 3 1 1 1 3 1 2 3 0
调用后
1 0 0 3 1 1 1 3 1 2 3 0 0 1 2 3
push_to_right(matrix)
将 matrix
中的所有 非 0 数据推向右侧
效果
调用前
0 1 2 3 1 0 0 3 1 1 1 3 1 2 3 0
调用后
0 1 2 3 0 0 1 3 1 1 1 3 0 1 2 3
push_to_top(matrix)
将 matrix
中的所有 非 0 数据推向上侧
效果
调用前
0 1 2 3 1 0 0 3 1 1 1 3 1 2 3 0
调用后
1 1 2 3 1 1 1 3 1 2 3 3 0 0 0 0
flip_horizontally(matrix)
将 matrix
中的所有元素 横向翻转
效果
调用前
0 1 2 3 1 0 0 3 1 1 1 3 1 2 3 0
调用后
3 2 1 0 3 0 0 1 3 1 1 1 0 3 2 1
flip_vertically(matrix)
将 matrix
中的所有元素 纵向翻转
效果
调用前
0 1 2 3 1 0 0 3 1 1 1 3 1 2 3 0
调用后
1 2 3 0 1 1 1 3 1 0 0 3 0 1 2 3
rotate_right(matrix)
将 matrix
中的所有元素 向右旋转
效果
调用前
0 1 2 3 1 0 0 3 1 1 1 3 1 2 3 0
调用后
1 1 1 0 2 1 0 1 3 1 0 2 0 3 3 3
match(matrix)
将 matrix
中的所有元素
消除任意横向或纵向有连续三个相同的非0数据
效果
调用前
0 1 2 3 1 0 0 3 1 1 1 3 1 2 3 0
调用后
0 1 2 0 0 0 0 0 0 0 0 0 0 2 3 0