2016-04-17 5 views
0

私はC#で "Unblock Me"のようなゲームをやっています。 ボタンと配列をマップとして使用します。 lvl1配列はレベル1のボード/マップです。ブロック(ボタン)が動的に作成されてパネルに追加されるときに、色付けしたいと思います。レベルを完了すると、パネルをクリアしてボードを再描画する必要がありますが、今回はlvl2アレイからボード/マップを読み込む必要があります。だから問題は、swtichのループで動的に配列の名前を設定する方法ですか? コードは次のとおりです。1つのswtichケースで異なる配列を使うC#

int[,] lvl1 = 
      { 
      {1,1,2,3,3,4,0}, 
      {0,0,2,0,5,4,0}, 
      {6,0,99,99,5,4,89}, 
      {6,0,7,7,8,8,0}, 
      {9,10,0,11,12,12,0}, 
      {9,10,0,11,13,13,0}, 
      {0,0,0,0,0,0,0}, 
       }; 
     switch (lvl1[i, j]) 
        { 
         case 1: 

          lvl1[i,j] = 1; 
          btn.BackColor = Color.Yellow; 
          break; 

         case 2: 

          lvl1[i, j] = 2; 
          btn.BackColor = Color.Cyan; 
          break; 

         case 3: 

          lvl1[i, j] = 3; 
          btn.BackColor = Color.ForestGreen; 
          break; 

         case 4: 

          lvl1[i, j] = 4; 
          btn.BackColor = Color.DeepSkyBlue; 
          break; 

         case 5: 

          lvl1[i, j] = 5; 
          btn.BackColor = Color.Violet; 
          break; 
         case 6: 

          lvl1[i, j] = 6; 
          btn.BackColor = Color.Orange; 
          break; 
         case 7: 

          lvl1[i, j] = 7; 
          btn.BackColor = Color.LimeGreen; 
          break; 
         case 8: 

          lvl1[i, j] = 8; 
          btn.BackColor = Color.Teal; 
          break; 
         case 9: 

          lvl1[i, j] = 9; 
          btn.BackColor = Color.Aqua; 
          break; 
         case 10: 

          lvl1[i, j] = 10; 
          btn.BackColor = Color.LightGoldenrodYellow; 
          break; 
         case 11: 

          lvl1[i, j] = 11; 
          btn.BackColor = Color.OrangeRed; 
          break; 
    } 

答えて

2

これを指す別の変数を使用します。

チェックで次に
int[,] currentLevel; 

currentLevel = lvl1; 

switch (currentLevel[i, j]) 
... 

そして、あなたは別のレベルをしたいとき、あなただけのcurrentLevel = lvl2

+0

はい。私はそれを試みた。 2つの引数でオーバーライドしないようなエラーが表示されましたか?そのようなもの –

+0

あなたは私にcurrentlevelのタイプを教えてくれますか?それは文字列ですか?または...? –

+0

@НямбаярА。答えに示されているように、それは 'int [、]'です。レベルと同じです。 –

1

はレベルの配列の配列を作成し、その代わりにint[,] lvl1を有するので、あなたはList<int[,]>を持っていますそのリストから任意のゲームレベルを使用することができます。

関連する問題