给定俄罗斯方块动作列表,返回完成的行数
描述 我们考虑一个稍微简化的俄罗斯方块版本,其中的每一步包括: 顺时针旋转0到3次 将作品定位在给定的列 快速下降 目标是确定已完成的行数,并给出此类俄罗斯方块动作的列表。 遵循标准的俄罗斯方块规则,完成的行将随着片段的删除而删除。 游乐场 运动场是10列宽。没有游戏结束,并且假定无论赛场的配置如何,总是有足够的空间和时间来执行上述操作。运动场的高度在这里并不重要,但是您可以使用标准的22行作为上限。 Tetrominoes的形状 输入输出 输入值 以逗号分隔的俄罗斯方块移动列表,其中包含3个字符的编码。前两个字符描述要使用的Tetromino形状,最后一个字符描述其放置位置。 四格拼板:I,O,T,L,J,Z或S,在与上述顺序相同。 顺时针旋转数:0至3 列:0至9。x在旋转1之后,这是作品左上角(在上面的图片中标记为)所在的列 假定提供的列表中的所有移动均有效。无需检查无效条目,例如I07(水平I形状在右侧放置太远)。 1 您可以自由执行真正的旋转算法,也可以对所有不同的形状进行硬编码,只要它们x位于移动的第三个字符所指定的列中即可。 输出量 已完成的行数。 例 O00,T24将生成第一个位置,O00,T24,S02,T01,L00,Z03,O07,L06,I05并生成第二个位置。 因此,以下序列将生成一个俄罗斯方块并应返回4: O00,T24,S02,T01,L00,Z03,O07,L06,I05,I19 测试用例 1) "O00,T24,S02,T01,L00,Z03,O07,L06,I05,I19" -> 4 2) "S00,J03,L27,Z16,Z18,I10,T22,I01,I05,O01,L27,O05,S13" -> 5 3) "I01,T30,J18,L15,J37,I01,S15,L07,O03,O03,L00,Z00,T38,T01,S06,L18,L14" -> 4 4) "S14,T00,I13,I06,I05,I19,L20,J26,O07,Z14,Z10,Z12,O01,L27,L04,I03,S07,I01,T25,J23,J27,O01, I10,I10" -> 8 5) "O00,T24,L32,T16,L04,Z11,O06,L03,I18,J30,L23,Z07,I19,T05,T18,L30,I01,I01,I05,T02" -> 8 测试页 您可以使用此JSFiddle测试移动列表。