我想製作非圖形(文本)C++遊戲(使用n,s,w,e移動角色,並描述每個位置)。位置將是一個對象的數組(將在這個數組中有位置描述和其他信息)。我已經開始製作這個遊戲了,但是我有一個問題:是否可以製作尺寸爲x的陣列 - 從-100到100,z - 從-100到100?如果不可能,還有其他方法可以做到嗎? (我不想在4個角之一的[0] [0]的位置,但在中間。)如何使單元格編號從負數到正數?
0
A
回答
1
陣列可以僅具有陽性指數:
Location loc[201][201];
定義返回一個的Funktion您想要的位置:
Location getLocation(int xCoord, int yCoord)
{
if (abs(x)>100 || abs(y)>100)
throw std::invalid_argument("value out of range");
return loc[xCoord+100][yCoord+100];
}
然後你就可以通過調用函數來獲取位置getLocation(x,y)
+2
恩,這是無效的C++。 –
+1
如果位置是可複製的類,則它是有效的代碼。但一定要檢查xCoord和yCoord是否合法,並且這僅支持範圍[-100,+ 99]。 –
0
一個常見的(而粗略的)方法是做這樣的事情(例如爲21×21板):
#include <iostream>
using namespace std;
int main()
{
typedef int (*board_ptr)[21];
int board_data[21][21];
board_ptr board = (board_ptr)&board_data[10][10];
for (int i = -10; i <= 10; ++i)
for (int j = -10; j <= 10; ++j)
board[i][j] = 0;
board[-10][-10] = 1;
board[-10][10] = 2;
board[10][-10] = 3;
board[10][10] = 4;
board[0][0] = 5;
for (int i = -10; i <= 10; ++i)
{
for (int j = -10; j <= 10; ++j)
{
cout << " " << board[i][j];
}
cout << endl;
}
return 0;
}
這就產生了一個正常的21×21陣列,但然後將其還創建了一個指針,該被初始化在真實陣列的中心指向一個假陣列。然後,您可以使用這個假指針,就好像它是一個索引範圍從-10到+10(含)的真實數組。
相關問題
- 1. 四元數到EulerXYZ,如何區分負四元數和正四元數
- 2. 從cellForRowAtIndexPath獲取單元格編號
- 3. 從網頁更新單元格編號
- 4. 正數到負數
- 5. 奇數編號的單元格未添加到Pdf
- 6. 將可編輯數字單元格添加到單元格
- 7. (ASM)如何使正整數爲負數?
- 8. 如何使用th:class格式化正數/負數?
- 9. 如何將數據從一個單元格提取到另一個單元格
- 10. 如何從字符串中找到負數和正數?
- 11. 格式爲負號的負數的美元,不包括括號(Java)
- 12. 使用poi,如何將單元格類型設置爲編號
- 13. 數據庫從不同的元組中選擇單元格值通過編號
- 14. 如何從數據網格中的單元格獲取數據
- 15. 如何使用preg_replace從字符串中提取負數 - 正數?
- 16. 從單元格讀取負值
- 17. 將已編輯的單元格從JTable保存到數據庫
- 18. Tk Tablelist,如何找到當前正在編輯的單元格
- 19. 從單元格中提取函數參數到另一個單元格
- 20. 如何使Wpf數據網格單元格僅爲數字
- 21. 如何將單元格數組從MATLAB傳遞到.NET方法
- 22. 如何從excel數據中讀取特定單元格到Pyomo
- 23. 如何使用c#winform從datagridview中編輯的單元格中獲取數據?
- 24. rails格式正數和負數
- 25. 正數//負數
- 26. 如何查找單元格值,其中單元格編號取決於excel中的另一個單元格值
- 27. 刪除單元格中的文本之間的數字編號
- 28. 從數組中插入單個值到表格單元格中
- 29. 如何使用closedxml將符號添加到單元格中?
- 30. 從數組轉換負數正數
轉換地圖座標陣列的座標:MapX控件+ 100,+ mapY 100 – Donnie
是的,它是可能的。嘗試幾種方法,然後回過頭來解決任何問題。 – AndyG