我的保龄球得分计算器有点问题。我只是有点偏离这里,我很确定它与最后一帧有关。不过我不知道。一点关于加载的变量。Bowling.xls 包含 50 场保龄球比赛的数据,因此 games 是一个 50x21 矩阵。21 列对应于每个投出的球。谢谢你们的帮助。如果您不了解 Matlab,欢迎您使用通用代码回复。
编辑:这是我的最新代码。正如您所看到的,“当前”变量现在被预设以显示我正在尝试计算的游戏,所以你们可以看到它以进行调试。我从这个程序得到的输出是 158。它应该是 194。
i = 1;
gamescore = 0;
current = [10 0 6 0 9 1 10 0 10 0 8 2 8 2 8 0 10 0 10 10 10]
strikes = zeros(1,10);
spares = zeros(1,10);
% Check for strikes
for j=1:10
if current(2*j-1) == 10
strikes(j) = 1;
end
end
% Check for spares
for j=1:10
if (current(2*j-1) + current(2*j) == 10) && (current(2*j-1)~=10)
spares(j) = 1;
end
end
% Calculate score
for j=1:10
if strikes(j) == 1
gamescore = gamescore + 10 + current(2*j) + current(2*j+1);
elseif spares(j) == 1
gamescore = gamescore + 10 + current(2*j);
else
gamescore = gamescore + current(2*j-1) + current(2*j);
end
end
fprintf('Game score: %d \n',gamescore)