【发布时间】:2014-05-20 08:53:01
【问题描述】:
我的 C# 保龄球游戏有问题,我会寻求一些帮助,我会尽力解释代码。我已经尝试解决这个问题很长时间了,但还没有成功。
计算正常,但唯一的问题是我的罢工,罢工应计为 10 + 接下来的 2 次投掷。
那么我的程序做了什么:
如果您收到罢工,第一个值将设置为 10,然后我输入另一个罢工并将值设置为 21 但应该是 20。第二个框的值应该是 30。
所以首先我有 3 个数组来保存所有的文本框
summa = new TextBox[] { textBox14, textBox15, textBox16, textBox17, textBox18, textBox19 };
slag1 = new TextBox[] { textBox1, textBox3, textBox5, textBox7, textBox9, textBox11 };
slag2 = new TextBox[] { textBox2, textBox4, textBox6, textBox8, textBox10, textBox12 };
所以我有两种方法,Slag1() 和Slag2() 罢工在Slag1() 方法中运行。
这是我用来计算罢工的部分
if (strike == true)
{
GotStrike[omgang] = true;
}
//strike = false;
//Kollar ifall textbox är lika med 10
if (slag1[omgang].Text == "10")
{
//Om text box är lika med 10 ändra värdet till X
//Lägg till 10 poäng på total
//Skriv ut värdet på summa (textbox)
Arbetar = true;
slag1[omgang].Text = "X";
total += 9;
summa[omgang].Text = total.ToString();
omgang++;
if (omgang == 6)
{
omgang--;
}
strike = true;
}
else if (slag1[omgang].Text == "X")
{
return;
}
else
{
checkSlag1 = Convert.ToInt32(slag1[omgang].Text);
total += checkSlag1;
summa[omgang].Text = total.ToString();
if (strike == true)
{
if (omgang != 0)
{
total += 10;
slag1[omgang - 1].Text = total.ToString();
if (omgang != 1)
{
slag1[omgang - 2].Text = total.ToString();
}
else
{
}
}
else
{
}
}
}
}
有点难解释,但希望你能理解,如果你不明白,请告诉我,我会写一个更好的解释。
我希望您知道保龄球比赛的运作方式,一次击球 = 第一次击球以及接下来两次击球的价值。因此,如果我击中一击,我得到 10 的值,击中 2 的值为 10,击中 3 的值为 10。这就是索引 0 的总和。
【问题讨论】:
-
如果您不理解这部分代码,您可以在这里免费查看源代码:pastebin.com/p6cttLX3
-
你能举例说明我应该如何构建我的代码吗?因为我不知道你想告诉我什么。
-
你应该看看这本书Agile Principles, Patterns, and Practices in C# (Robert C. Martin)。我同意您应该使用 *TDD 来解决此类问题,这本书将对此有所帮助,并且还涉及构建保龄球游戏。
-
我只想给文本框 +10,假设 textbox1 是 10,textbox2 10 它应该在文本框 1 上 +10,这给我一个 20 的值,然后是 20 + 10文本框 2. 我尝试做的是使用
summa[omgang - 1] & summa[omgang - 2],它应该返回 1 轮,然后每次罢工 2 轮。
标签: c# .net visual-studio visual-studio-2012