0

プログラミングの課題として、Visual C# で簡単なサイコロ ゲームを作成する必要があります。このゲームの一部は、値のリストを表示し、値の合計が特定の数を超えているかどうかを確認します。現在、改行で区切られた個々の値を表示するテキストボックスがあり、現在使用していますiPlayer1Total += int.Parse(player1TxtBox.Text);が、これはテキストボックスの最初の行のみを行うようです。

4

6 に答える 6

3

改行に沿って文字列を配列に分割します。

String.split でそこにたどり着くはずです。

次に、各値を解析して出来上がり

于 2012-05-08T12:20:41.850 に答える
3

複数行のテキストボックスを使用しているようです。最初に文字列を「\n\r」で分割してから、次のようにします。

string[] strArray =player1TxtBox.Text.Split("\n\r".ToCharArray());

それから

        int iPlayer1Total = 0;
        foreach (string str in strArray)
        {
            int temp =0;
            int.TryParse(str, out temp);
            iPlayer1Total  += temp;
         }

編集:分割するためのより良いオプションは次のとおりです:

var strArray  = player1TxtBox.Text.Split("\r\n".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
于 2012-05-08T12:21:21.697 に答える
1

テキストを文字列配列に分割する必要があります。MSDN

string[] list = player1TxtBox.Text.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

そして使用する

foreach(string num in list)
   iPlayer1Total += int.Parse(num);
于 2012-05-08T12:22:00.637 に答える
0

さいころなので、各値は 1 文字のみであると想定しても安全ですか。

string t = "125 yhsd 7,8+2";
List<int> diceValues=new List<int>();
foreach (char c in t)
{
    int o=0;
    int.TryParse(c.ToString(),out o);
    if (o > 0 && o < 7)
    diceValues.Add(o);
}

出力は

ダイス値 1 2 5 2

これをテストしたりコンパイルしたりしていないので、エラーがあるかもしれません

于 2012-05-08T12:37:38.483 に答える
0

MSDN ライブラリはあなたの味方です。TextBox のエントリを確認すると、探しているものが見つかります。

http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox.aspx

ヒント:Linesプロパティに注意してください。

于 2012-05-08T12:22:12.200 に答える
0

使用する

string[] str = textbox.Text.Split(@"\n\r");

int a=0;

for(int i=0; i< str.Length; i++)
   a += int.TryParse(a);
于 2012-05-08T12:22:19.930 に答える