Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
6f336af
add Gemfile
1mori May 13, 2024
6a933e0
スコアを合計するだけのプログラムを追加
1mori May 13, 2024
13755e2
ストライク・スペア時に追加得点を記録するコードを作成
1mori May 13, 2024
0dd22be
コマンドライン上の数値変換と得点加算時の挙動をメソッドとして実装
1mori May 13, 2024
16af2b2
10フレーム目の処理を実装
1mori May 13, 2024
873dfbc
加算処理を最初に移動させてコードを簡潔化
1mori May 13, 2024
9c9584e
連続ストライクの対応
1mori May 13, 2024
c90af82
合計得点加算処理を一つに統合
1mori May 13, 2024
d01afb7
if文処理を1行に圧縮
1mori May 13, 2024
d296606
Gemfileから不要な記述を消去
1mori May 20, 2024
4d6b63c
変数名定義の際のコメントを削除
1mori May 21, 2024
d642b10
不要なpメソッドを削除
1mori May 21, 2024
5653e4f
スコープ外のadd_scoreは必要ないので削除
1mori May 21, 2024
65ae1fb
予めボウリングのスコアリストをint型に変換するように変更
1mori May 21, 2024
e734884
score_listを予めintに変換するようにしたため、score_i, score_sの記載を削除
1mori May 21, 2024
4233449
== trueを削除
1mori May 21, 2024
408c0c0
不要なコメントを削除
1mori May 21, 2024
f5c19da
int型に変換したscore_listを格納してなかったので、その修正
1mori May 21, 2024
a816300
== trueの記述を消去
1mori May 21, 2024
fc36983
変数pre_scoreを削除
1mori May 21, 2024
a36e850
スコア点数の処理方法を変更
1mori May 21, 2024
817ea14
変数pre_strikeを削除
1mori May 21, 2024
ac6c000
変数running_strikeを削除
1mori May 21, 2024
1d51126
フレーム数・投球数の処理とストライク処理を統合
1mori May 21, 2024
d5c09ff
投球数・フレーム数の書き方を変更
1mori May 21, 2024
b13bcc5
ストライク・スペア時のスコア加算処理を後から実行していたものを、先に実行するように変更
1mori May 21, 2024
74d5fc9
必要ないコメントの削除とメソッド名をわかりやすくなるように変更
1mori May 21, 2024
c7547e6
加算得点がない際に0を返していたのをadd_score(中身は0)を返すように変更
1mori May 21, 2024
4220490
改行を追加
1mori May 23, 2024
8139ac4
frozen_string_literal: trueの項目を追加
1mori May 23, 2024
a3d09f3
flame Arrayをframeとthrowに分割
1mori May 23, 2024
ea4ca31
calculate_add_scoreの外部でフレーム数を計算するように変更
1mori May 23, 2024
b93e2a2
Enumerable#sumを使用
1mori May 23, 2024
45be9b5
calculate_add_scoreに渡す値を計算に必要な要素に絞ってscore_groupに格納
1mori May 23, 2024
3693dd4
ストライク・スペア時のスコア加算式を短い表現に変更
1mori May 27, 2024
35bd1af
.sumのつけ忘れを追加
1mori May 27, 2024
3b654fa
10フレーム目の処理を短縮し、同一ブロック内でframe == 10の処理を一つにまとめた
1mori May 27, 2024
38b5ad4
フレーム数・投球数の処理を簡潔化
1mori May 27, 2024
28401e2
メソッド名をcalculate_add_scoreからupdate_game_stateに変更
1mori May 28, 2024
68ca318
フレーム数・投球数の更新をupdate_game_state内で実行するように変更
1mori May 28, 2024
8a39b9b
ストライク時はthrow=1なので、ストライク時にthrowを更新する処理が必要ないため削除
1mori May 28, 2024
1c73078
update_game_state内の処理を呼び出し元に戻してメソッドを削除
1mori May 30, 2024
66e2630
throw==2の処理が重複していたので一つに統合
1mori May 30, 2024
49a0656
ストライク・スペア・その他判定の最適化
1mori May 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions 03.bowling/bowling_score.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/usr/bin/env ruby
# frozen_string_literal: true

frame = 1
throw = 1

score_list = ARGV[0].split(',')
score_list = score_list.map { |score| score == 'X' ? 10 : score.to_i }

total = score_list.each_with_index.sum do |score, index|
next score if frame == 10

score_group = score_list[index, 3]
if throw == 1
if score_group[0] == 10 # ストライク判定
add_score = score_group[1..2].sum
frame += 1
else
add_score = (score_group[0..1].sum == 10 ? score_group[2] : 0) # スペアかそうでないか判定
throw = 2
end
else
add_score = 0
frame += 1
throw = 1
end

add_score + score
end

puts total
7 changes: 7 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# frozen_string_literal: true

source "https://rubygems.org" # rubocop:disable Style/StringLiterals

group :development do
gem 'rubocop-fjord', require: false
end
45 changes: 45 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
GEM
remote: https://rubygems.org/
specs:
ast (2.4.2)
json (2.7.2)
language_server-protocol (3.17.0.3)
parallel (1.24.0)
parser (3.3.1.0)
ast (~> 2.4.1)
racc
racc (1.7.3)
rainbow (3.1.1)
regexp_parser (2.9.0)
rexml (3.2.6)
rubocop (1.63.5)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.31.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.31.3)
parser (>= 3.3.1.0)
rubocop-fjord (0.3.0)
rubocop (>= 1.0)
rubocop-performance
rubocop-performance (1.21.0)
rubocop (>= 1.48.1, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
ruby-progressbar (1.13.0)
unicode-display_width (2.5.0)

PLATFORMS
arm64-darwin-22
ruby

DEPENDENCIES
rubocop-fjord

BUNDLED WITH
2.5.9