2010-11-01 98 views
2

該問題不是綁定到特定的編程語言,而是與簡約的代碼和抽象。二維數組表示

我有3行3列的這個數組 - 想象一下你會玩Tic-Tac-Toe(或者naughts and crosses)的棋盤。

當按下按鍵(在電話上)時,在與按下的按鍵相對應的位置(按鍵9爲板[2])的位置上將數值0或1添加到陣列中(1代表X和0代表O) [2])。

在構建GUI中,我需要映射座標的數組爲像素,使得如果: [0] [0] - 10,10- [0] [1] - 10,50 [0] [ 2] - 10,90 ... [2] [2] - 90,90

繪圖將在嵌套循環中遍歷數組時發生,但我被卡在如何寫入最少行的代碼儘可能在0 = 10,1 = 50和2 = 90之間映射。

一種方法是使用每種情況的開關。另一個會使用一個if。

任何其他的想法寫在儘可能少的幾行?

謝謝!

回答

1
for (y = 0; y < 3; ++y) 
{ 
    for (x = 0; x < 3; ++x) 
    { 
     pos_x = x * 40 + 10; 
     pos_y = y * 40 + 10; 
     // Draw... 
    } 
} 
+1

哈哈,正是我在想:)我認爲這可能需要要麼是3你的上限或使用<=而不是< – 2010-11-01 15:56:03

+0

噢,當然!我將它改爲3!謝謝! :) – Flinsch 2010-11-01 15:57:16

1
for(var i = 0; i < 3; i++) { 
for(var j = 0; j < 3; j++) { 
    int xPos = i * 40 + 10; 
    int yPos = j * 40 + 10; 
    //set accordingly 
} 
} 
0

用你的指標值作爲乘數,即90 = 2 * 40 + 10,50 = 1×40 + 10