调用void函数

时间:2013-12-15 21:41:42

标签: c++ arrays function

我正在尝试调用一个在我的地图上显示俄罗斯方块形状的函数。下面的函数包含所有不同的俄罗斯方块形状,它需要一个参数ShapeType,以便它知道要删除哪个形状。此参数将是随机的,但我们将使用1作为示例。

void TetrisShapes(char ShapeType){
    if (ShapeType == 1){
        Map[0][0] = ' ';    Map[1][0] = 'X';    Map[2][0] = ' ';    Map[3][0] = ' ';
        Map[0][1] = ' ';    Map[1][1] = 'X';    Map[2][1] = ' ';    Map[3][1] = ' ';
        Map[0][2] = ' ';    Map[1][2] = 'X';    Map[2][2] = 'X';    Map[3][2] = ' ';
        Map[0][3] = ' ';    Map[1][3] = ' ';    Map[2][3] = ' ';    Map[3][3] = ' ';
    }

    if(ShapeType == 2){
        Map[0][0] = ' ';    Map[1][0] = ' ';    Map[2][0] = ' ';    Map[3][0] = ' ';
        Map[0][1] = ' ';    Map[1][1] = 'X';    Map[2][1] = 'X';    Map[3][1] = ' ';
        Map[0][2] = 'X';    Map[1][2] = 'X';    Map[2][2] = ' ';    Map[3][2] = ' ';
        Map[0][3] = ' ';    Map[1][3] = ' ';    Map[2][3] = ' ';    Map[3][3] = ' ';
    }
}

选择一个形状后,我们会采用形状并调用它,然后将其放置在具有特定坐标ShapePosXShapePosY的地图上,如下所示

Map[ShapePosX][ShapePosY] = TetrisShapes(1); 

现在我的问题是我无法调用上面的行,因为函数是无效的并且不会返回任何内容..但是它应该返回显示ShapePosX和{{1}坐标中的tetris片段的数组}}。

如果在此特定问题中调用该函数,我该怎么办?感谢

1 个答案:

答案 0 :(得分:2)

由于您使用C ++编程,因此可以将数组作为参数传递给函数。

所以基本上你的函数的原型变成了:

void TetrisShapes(char ShapeType, char Map[][3])

然后,假设您已经声明了数组Map,您可以将您的函数称为:

TetrisShapes(1, Map);