我输入了一些代码来尝试练习在编程课程中学到的知识。我的逻辑有些问题,因为我没有得到应该得到的答案。
我已经搜索并搜索了Google并重新观看了培训视频,但似乎无济于事。
namespace TenPinBowling
{
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.Write("Would you like to bowl, Y or N: ");
var answer = Console.ReadLine();
if (answer == "n")
{
Console.WriteLine("Thanks for playing, press any to exit :)");
Console.ReadKey();
break;
}
Score();
}
}
static void Score()
{
{
Random pins = new Random();
var pinsKnockedDown = pins.Next(0, 10);
//var totalScore = 0;
Console.WriteLine("You bowled a: " + pinsKnockedDown);
//var result = totalScore + pinsKnockedDown;
Console.WriteLine("You're total score is: " + Tally(pinsKnockedDown));
}
}
static int Tally(int score)
{
{
int result = 0;
result = result + score;
return result;
}
}
}
}
我希望我的第二种方法可以保持我的总得分,但每次都会重置为单个得分。
答案 0 :(得分:6)
在
static int Tally(int score)
{
{
int result = 0;
result = result + score;
return result;
}
}
每次调用该方法时,您都会创建一个 new 局部变量result
,因此,过去得分的记录将丢失。将result
设置为类的一个字段将使其在游戏过程中持续存在。最小的代码更改可能是:
private static int result = 0;
static int Tally(int score)
{
result = result + score;
return result;
}
答案 1 :(得分:0)
如果您不希望重置总得分,我想您总是需要跟踪总得分。现在,您总是将当前分数添加到零(在Tally中)。如果将int result
放在提示之外,则应该相应地跟踪。