プログラミング学習日記

エンジニア転職への道

【バグ修正】得点が1つズレて出力される

見つかったバグ

結果表示画面を見ると、1つズレて出力されてしまっています。
本来2つの4は、1つ前の人の最後の行に入るべきところが、次の人の最初の行に入ってしまっています。

現状の確認

全員分の得点を1つの配列に格納したあと、11ずつ区切って1人ごとに分けていました。
11ずつ区切る理由は、1人分のデータが11項目を持つためです。
現在、11ずつ区切ると1つ余りが出てしまっています。

よく見るとという得点以外のデータが入っています。
本来、数値または読みとり不可しか許可していないので、これらはバグです。

convert_one_into_slashメソッドの処理を通した後は、

各行が要素にスラッシュ/を持つ配列またはnilのいずれかを返します。

そもそもnilだったら返さないようにしました。

なぜ「題」「い」が入ったのか?

紙には0/1と書かれているところが、0が読み取られず/1となり、他の文字列と結合する形で出力されていました。

この場合は得点を読み取れていないので、読みとり不可と出力させるようにしました。

正規表現で「0〜6の数値以外+スラッシュ+0〜6の数値」に該当した場合は読みとり不可と出力させるようにしました。

"調べる文字列".match?(/^[0-9]\/[0-6])