2D和3D版本的重力游戏
创始人
2024-01-20 14:53:18
0

描述 2D版本的重力游戏

如果你已经完成了该任务,并想要更大的挑战,紧接着介绍3D版本

在上物理课的时候很无聊,所以我给自己做了一个玩具箱来打发时间。这个盒子很特别,因为它有改变重力的能力。

盒子里有几列玩具方块,排成一列。第i列包含a_i个立方体。起初,盒子里的重力把方块往下拉。当鲍勃转换重力时,它开始把所有的立方体拉到盒子的某一侧,即d,它可以是'L'或'R'(左或右)。下面是一个例子,说明在切换重力之前和之后,一盒立方体可能是什么样子。

+---+ +---+
| | | |
+---+ +---+
+---++---+ +---+ +---++---++---+
| || | | | --> | || || |

+---++---++---++---+ +---++---++---++---+
| || || || | | || || || |
+---++---++---++---+ +---++---++---++---+

给出盒子里方块的初始配置,找出Bob切换重力后,n列中每列有多少个方块。

例子(输入->输出。

  • 'R', [3, 2, 1, 2] -> [1, 2, 2, 3]
  • 'L', [1, 4, 5, 3, 5 ] -> [5, 5, 4, 3, 1]
def flip(d, a):
    # Do some magic
    return sorted(a,reverse=d=='L')

d,a = 'L', [1, 4, 5, 3, 5] # [5, 5, 4, 3, 1]
print(flip(d,a))

重力翻转的一个稍难的版本。建议先做上面2D版。

鲍勃又一次在物理课上感到无聊,这一次,他带来了一个更复杂的重力变化箱。它是3D的,小方块排列在一个n×m列的矩阵中。它可以改变重力,向某个方向前进,可以是 "L"、"R"、"D "和 "U"(左、右、下和上)。

给出盒子里的立方体的初始配置是一个二维阵列,确定鲍勃切换重力后立方体是如何排列的。

请看测试样本的例子。

拼图阵列

步骤: 如果指令参数是 L R 逐行row 遍历,并判断是否倒序

如果指令参数是U D 转置二维数组 逐行 row 遍历,并判断是否倒序 转置👆二维数组输出

def flip(d, a):
    if d in ['L','R']:
        key = d == 'R'
        return [sorted(row,reverse=key) for row in a]

    elif d in ['U','D']:
        key = d == 'U'
        tran = list(map(list, (zip(*a))))
        out = [sorted(row,reverse=key) for row in tran]
        return list(map(list, (zip(*out))))

熟悉numpy的写法

推荐此写法,工整简洁易读!

import numpy as np

dir = {
    'L': lambda a: np.sort(a)[:, ::-1],
    'R': lambda a: np.sort(a),
    'U': lambda a: np.sort(a, axis=0)[::-1, :],
    'D': lambda a: np.sort(a, axis=0)
}

def flip(d, a):
    return dir[d](np.array(a)).tolist()

python高级函数,及nump、pandas库十分强悍,在大量数据处理中值得花费功夫熟练掌握 ,必然有事半功倍之效!

本文由 mdnice 多平台发布

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...