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

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 回答
0

是否可以安全地假设,因为它是骰子,每个值将只是一个字符。

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 回答