宝石迷情 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

ZZAX 微信公众

文档一更新,立刻告诉你