-1
我想調用一個函數,它會在我的地圖上顯示一個俄羅斯方塊形狀。下面的函數包含所有不同的俄羅斯方塊形狀,它需要一個參數ShapeType
以便它知道要放下哪個形狀。該參數將是隨機的,但我們將以1
爲例。調用void函數
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] = ' ';
}
}
一旦形狀被選擇,我們採取的形狀,並調用它,並與特定的座標ShapePosX
和ShapePosY
你可以看到下面
Map[ShapePosX][ShapePosY] = TetrisShapes(1);
現在我的問題是,將其放置在地圖上我不能調用上面的行,因爲該函數是無效的,並且不會返回任何東西..但是它應該返回顯示在ShapePosX
和ShapePosY
的座標中的俄羅斯方塊片段的數組。
我該怎麼做才能在這個特定問題中調用函數?謝謝
我會建議讀一本書在'C'上。調用一個函數並返回值是關於函數編程最基本的組成部分。 –
是否有任何特定的原因,你爲什麼選擇了返回類型'void',儘管你顯然想要返回一些東西? – Mario
從代碼判斷,Map是一個在函數外定義的全局變量。第二個片段,任務,也使用一個名爲'Map'的變量;這也是全球變量嗎?在表面上,你只需要調用'TetrisShapes(1);'而不需要任何賦值,並且全局變量將被初始化。如果您需要將「Map」數組頂部的素材複製到其他地方,則可以最有效地將目標(「ShapePosX」和「ShapePosY」)作爲額外參數傳遞給「TetrisShapes()」,並安排代碼在那裏放置形狀在正確的地方。 –