C#Console App - OO数学/思考问题

Goo*_*ber 1 c# console-application

我正在编写一个简单的C#控制台应用程序.

规格是:

一个游戏由十个框架组成,从十个引脚的全机架开始.在每个框架中,您有两个球的交付,在其中可以尽可能多地击倒十个引脚.如果你击倒第一个球上的所有别针,则称为击球.分数不会立即增加,因为对于一次攻击,你可以获得下两个球的值作为奖励.例如,如果您在第一帧中获得一次攻击,然后在第二帧中获得7和1,则第一帧的得分为18(10 + 7 + 1),第二帧的得分为8,总计为26帧后两帧.如果你击倒第一个球上的一些针脚,并击倒第二个球中的其余针脚,它就被称为备用球.同样,得分不会立即增加,因为对于备用,您将获得下一个球的值作为奖励.例如,如果你在第一帧中得到一个备用,比如一个6和一个4,那么在第二帧得到一个8和一个1,那么第一帧得分为18(6 + 4 + 8),而9对于第二帧,在两帧之后总共制作27帧.

我理解如何编写代码等等.但是,我无法理解这个评分系统的最佳方式,我需要一些建议.显然,每个玩家都会创建一个新对象,但是我不知道如何绕过最初看似简单的编程问题.

任何帮助将不胜感激.

问候

Eri*_*ric 5

在保龄球,罢工和备件被称为"标记".用这个!

enum Marks { Open, Spare, Strike };
Run Code Online (Sandbox Code Playgroud)

这样,您可以确定每帧的标记类型.投球后,检查最后两帧,并更新他们的分数.然后将分数加起来.

另一个注意事项:如果您正在逐帧显示,请不要在一串打击中显示帧得分(例如,连续四次打击不应导致第1帧显示"30").等待备用或打开以显示总计.做任何不同的事情是不正确的得分,当视频游戏不认识时,它会让我感到害怕.