HDU 5374 Tetris 俄罗斯方块 模拟

  • Post author:
  • Post category:其他




这道题是喜闻乐见的大模拟题。




题目大意:在一个9X12的格子中玩俄罗斯方块,给定所有可能的方块形态,给定方块的掉落顺序,给定操作,w表示旋转,a表示左移,b表示右移,d表示下落一格(实际下落两格),p表示pass(即下落一格),输入数据保证不会GameOver,求最后的分数。




题意虽然简单,但是由于编程复杂度等众多原因,考场上写的人不多。这里有几个可以简化代码的trick,由于旋转最大循环节为4,方块最大长宽也为4,那么我们可以把每一种方块的形态用4*4*4的数组存下来,这样判断以及旋转操作都很容易实现;还有就是方块在移动过程中,只需把基点即左下角的点的坐标记下来,不需要每操作都把当前状态表示出来。




虽然我考场上用了这俩技巧,然而还是没有调出来哪里写错了,考完以后发现判断消除行的时候要从上往下枚举…非常可惜。



版权声明:本文为CSDNCJava原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。