ボウリングのスコア計算機に少し問題があります。私はここで少しずれていますが、それは最後のフレームに関係していると確信しています。わからないけど。ロードされた変数について少し。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)