2

我有一个大学项目,使用动态分配的板来创建俄罗斯方块,该板用.. 我想用它们的每个部分单独创建块,例如

O
O O O 

俄罗斯方块中的块将在 2d 动态分配的矩阵中描述,如下所示:

tablo[0][((distX/2)-1)] = 'O';
/*tablo stands for board(the 2d allocated matrix) and '(distX/2)-1' was 
  used to start the block from top center of the board */
printf("\n");
for(i=0;i<3;i++)
{
  tablo[1][((distX/2)-1)+i] = 'O';
}

所以我的问题是:

  • 那效率高吗?

  • 还有另一种更容易制作块并将它们移动到板矩阵内的方法吗?

使用我的块解决方案,我很难找到让它们像一个整体一样掉落的方法,就像绘制俄罗斯方块一样。

另外,我被告知要包含一个硬模式,即俄罗斯方块从板上的一些块或块部分开始,这对我的解决方案来说是困难的。

这是我第一次发帖,所以如果您需要有关我的问题的更多信息,请告诉我。感谢您的时间。

4

1 回答 1

0

这是一个用c实现的俄罗斯方块游戏的例子

http://www.gladir.com/CODER/TURBOC/tetris.htm

在第一个链接中,形状存储在单独的二维数组中,并添加到代表棋盘游戏的矩阵中。-与您的想法相同的原理-。我认为这种架构可能适合您的需求,因为它有点像将您的部分分开,这将用 OO 语言表示,具有来自同一父类 Shape 的不同对象-例如-。

这是俄罗斯方块的另一个例子,就像在 c 中一样,它似乎比第一个链接更令人困惑,但它可能会有所帮助。

http://www.c.happycodings.com/Games_and_Graphics/code32.html

于 2014-04-25T10:02:56.547 回答