2017-12-18 8 views
0

はい、これは学校の仕事のためですが、質問は仕事のごく一部であり、ほとんど無視できると感じます。要するに文字列配列内の特定の文字列の位置を見つけるにはどうすればよいですか?

、私はそれがアレイ、グリッド、それに応じて色変数を出力し、この

Random rnd = new Random(); 
for (row = 0; row <= 5; row++) 
{ 
    for (column = 0; column <= 5; column++) 
    { 
     RandomNumber = rnd.Next(1, 13); 
     if (RandomNumber == 3) 
      luckDipBoard[row, column] = "You Win "; 
     else 
      luckDipBoard[row, column] = "You Lose "; 
    } 
} 

//Display board 
for (row = 0; row <= 5; row++) 
{ 
    for (column = 0; column <= 5; column++) 
    { 
     Console.SetCursorPosition(column * 10, row * 2); 

     if (luckDipBoard[row, column] == "You Win ") 
      Console.ForegroundColor = ConsoleColor.Green; 
     else 
      Console.ForegroundColor = ConsoleColor.Red; 

     Console.Write(luckDipBoard[row, column]); 
    } 
} 

ようなグリッドを印刷する文字列の配列を使用しています。

Console.WriteLine("Input a row"); 
rowChoice = int.Parse(Console.ReadLine()); 
Console.WriteLine("Input a column"); 
columnChoice = int.Parse(Console.ReadLine()); 
Console.Clear(); 

しかし、私は場所にこれらの変数を有効にする方法見当がつかない:ユーザーは、私が書かれている場所、入力できるようにするにはしかし、私は何をできるようにしたいことはありますこれらの座標を使用して配列を検索し、その場所の内部にあるものを見つけます。たとえば、グリッドが無作為に印刷され、列2の行1が「あなた勝ち」で、ユーザーが列2の行1を入力した場合、単に変数に貸方を追加するだけです。

誰かが右方向に私を指すことができれば:配列を検索し、位置

のint TextIndexに内部値を返す位置

  • ように、2つの入力値を使用し

    • = Array.FindIndex(luckDipBoard、m => m == "あなたが勝つ");

    エラー:重大度コード説明プロジェクトファイルの行抑制状態エラーCS0411は、メソッドの型引数は "Array.FindIndex(T []は、述語)の使用状況から推測することはできません。型引数を明示的に指定してみてください。

  • +0

    はい、私が理解していないエラーを返すだけです。 –

    +0

    これらのエラーはどちらですか?あなたの質問に投稿してください。 – HimBromBeere

    +0

    行番号と列番号を入力する場合は、既存のコードと同様にluckDipBoard [row、column]を使用して配列の位置にアクセスできます。 –

    答えて

    3

    Array.FindIndexが動作しないことの理由は、それが唯一のベクトル(すなわちstring[])で動作するということである - しかし、あなたは、2次元配列(すなわちstring[,])を持っています。

    • 手動
    • あなたの配列を線形化して扱うのx/yの寸法をループで狩りを自分で行います。次の2つのオプションが持っているので、私の知る限り、通常の配列の狩猟方法のいずれも、多次元配列上で動作しません次元manully(これは代わりにstring[]を有し、乗算を経由してオフセットを計算意味します)

    あなたはそれにかなり慣れていない場合は、(X/Yをループ)最初のアプローチは、おそらくよりも簡単です2番目の方法は、すべてのコード行)。

    +0

    x/y寸法をどのようにループするのですか? –

    +0

    @JoePodmoreあなたがすでに '// Display board'に入っているのとほぼ同じです –

    +0

    だから、どうすればユーザーの入力を使うのでしょうか?私は配列の中の1つの値を選択するだけでいいと思うので、もし私がそれらのすべてをループしたら、複数の "You Win"があったらそれは私にたくさんの値を与えます。 –

    関連する問題