2016-03-25 11 views
0

私は9つの数字で満たされた文字列を持っています。私は数字で3x3配列を塗りたい。私はforeachと2 forループを使ってやっていましたが、これはかなり面倒です。配列に値を再帰的に入力するようにコードを変更するにはどうすればよいですか?これは現在私のコードです:2次元配列を再帰的に塗りつぶすにはどうしたらいいですか?

int[,] matrix = new int[3, 3]; 

if(key.Length < 9 || key.Length > 9) 
{ 
    keyfield.GetComponent<InputField>().text = " Key Not Valid"; 
} 
else 
{   
    foreach(char c in key) 
    { 
     for (int k = 0; k < 3; k++) 
     { 
      for (int j = 0; j < 3; j++) 
      { 
       matrix[j, k] = c - 0; 
      } 
     } 
    } 
} 

私はUnityと一緒に作業しています。

答えて

2

まあ、keycharを繰り返して、アレイに1フィールドずつ割り当てます。それは正しい列と行を計算するだけです:

for (int i = 0; i < 9; ++i) 
{ 
    int row = i/3; 
    int col = i % 3; 
    matrix[row, col] = (int)key[i]; 
} 

はまた、あなたの問題のコードも私の答えのコードでもないが、再帰的な方法で問題を解決することに注意してください。再帰は、ある特定の問題を解決するために必要とされないメソッドが直接的または間接的に呼び出されたときに行われます。

+0

ありがとうございました:) –

+0

この問題を解決した場合は、回答を受け入れることができます:-) –

関連する問題