class BbJouer
Attributes
player[RW]
Public Class Methods
new()
click to toggle source
# File lib/bb_jouer.rb, line 3 def initialize @player = {:PA => 681, :H=> 190, :D=>41,:T=>0,:HR=>27,:BB=>65,:SO=>85,:HBP=>6,:SAC=>5,:BA=>314,:OBP=>383,:SLG=>516, :OPS=>899,:OPSplus=>145,:BR=>398,:BRS=>81,:BRSpc=>20,:TB=>312,:AB=>605, :PA3B=>49,:PA3BS =>28,:PA3BSpc=>57,:PA2B=>32,:PA2Badv=>18,:PA2Badvpc=>56} end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/bb_jouer.rb, line 220 def <=>(other) @stat <=> other.stat end
ba()
click to toggle source
batting average
# File lib/bb_jouer.rb, line 45 def ba @player[:BA] end
build_stat_table()
click to toggle source
stat table
# File lib/bb_jouer.rb, line 9 def build_stat_table #test_stat_table = Array.new(1000) #test_stat_table.length @stat_table = Array.new(@player[:H]){|v| v="Base Hit"} @stat_table = @stat_table + Array.new(@player[:D]){"Double"} @stat_table = @stat_table + Array.new(@player[:T]){"Trible"} @stat_table = @stat_table + Array.new(@player[:HR]){"Home Run"} @stat_table = @stat_table + Array.new(@player[:BB]){"Ball Four!"} @stat_table = @stat_table + Array.new(@player[:SO]){"Strike Three!"} #@stat_table = stat_table + Array.new(@player[:BA]-stat_table.length){"Sacrafice"} @stat_table = @stat_table + Array.new(@player[:HBP]){"Hit By Pitch"} @stat_table = @stat_table + Array.new(@player[:SAC]){"Sacrafice"} @stat_table = @stat_table + Array.new(1000-@stat_table.length){"Outta There!"} @stat_table.length end
calculate_chances(home,pitcher,runner1, runner2,runner3)
click to toggle source
# File lib/bb_jouer.rb, line 52 def calculate_chances home,pitcher,runner1, runner2,runner3 @runner_0 = false @runner_1 = false @runner_2 = false @runner_3 = false @runner_1_2 = false @runner_1_3 = false @runner_2_3 = false @runner_1_2_3 = false puts "\n" puts "Situation:" if home == 'Y' puts " - Playing at Home" else puts " - On the Road" end if pitcher == 'Y' puts " - Batting against a Lefty" else puts " - Batting against a Righty" end if runner1 == 'N' && runner2 == 'N' && runner3 == 'N' @runner_0 = true puts " - The Bases are Empty" elsif runner1 == 'Y' && runner2 == 'Y' && runner3 == 'Y' @runner_1_2_3 = true puts " - The Bases are Loaded!" elsif runner1 == 'Y' && runner2 == 'Y' @runner_1_2 = true puts " - Runners on First and Second" elsif runner1 == 'Y' && runner3 == 'Y' @runner_1_3 = true puts " - Runners on First and Third" elsif runner2 == 'Y' && runner3 == 'Y' @runner_2_3 = true puts " - Runners on Second and Third" elsif runner1 == 'Y' @runner_1 = true puts " - Runner on First" elsif runner2 == 'Y' @runner_2 = true puts " - Runner on Second" elsif runner3 == 'Y' @runner_3 = true puts " - Runner on Third" elsif runner2 == 'Y' && runner3 == 'Y' @runner_2_3 = true puts " - Runners on Second and Third" end determine_probability end
confirm_ops()
click to toggle source
confirm obs
# File lib/bb_jouer.rb, line 25 def confirm_ops @player[:OBP] + @player[:SLG] end
confirm_slg()
click to toggle source
# File lib/bb_jouer.rb, line 28 def confirm_slg #(312.fdiv(605).round(3)*1000).to_i (@player[:TB].fdiv(@player[:AB]).round(3)*1000).to_i end
determine_probability()
click to toggle source
# File lib/bb_jouer.rb, line 103 def determine_probability @stat = @stat_table.sample put_result end
obp()
click to toggle source
# File lib/bb_jouer.rb, line 38 def obp @player[:OBP] end
ops()
click to toggle source
# File lib/bb_jouer.rb, line 35 def ops @player[:OPS] end
over?()
click to toggle source
# File lib/bb_jouer.rb, line 213 def over? @input = gets.chomp if @input == "exit" || @input == 'quit' || @input == 'q' true end end
pa()
click to toggle source
plate appearances
# File lib/bb_jouer.rb, line 49 def pa @player[:PA] end
put_result()
click to toggle source
# File lib/bb_jouer.rb, line 107 def put_result puts "The fans await the pitch...." puts "\n" sleep(3) case @stat when "Ball Four!" || "Hit By Pitch" if @runner_1_2_3 puts "#{@stat} - 1 run scores - The Bases are still loaded" elsif @runner_2_3 puts "#{@stat} - The Bases are now loaded" elsif @runner_1_2 puts "#{@stat} - The Bases are now loaded" elsif @runner_1_3 puts "#{@stat} - The Bases are now loaded" elsif @runner_1 puts "#{@stat} - Runners are now on First and Second" elsif @runner_2 puts "#{@stat} - Runners are now on First and Second" elsif @runner_3 puts "#{@stat} - Runners are now on First and Third" else puts "#{@stat} - a Runner is now on first" end when "Strike Three!" puts "#{@stat} - He Struck him out!" when "Sacrafice" if @runner_1_2_3 puts "#{@stat} - 1 run scores on a tag up - Runners advance and now on second and third" elsif @runner_2_3 puts "#{@stat} - Runner tags - 1 run scores and runner advances to third" elsif @runner_1_2 puts "#{@stat} - Runners tag and move up a base to second and third" elsif @runner_1_3 puts "#{@stat} - Runner tags and 1 runn scores" elsif @runner_1 puts "#{@stat} - Runners tages and now in scoring postion at second base!" elsif @runner_2 puts "#{@stat} - Runner tags and moves over to third" elsif @runner_3 puts "#{@stat} - Runner tags up and scores!" else puts "#{@stat} - Runner thrown out at first trying to bunt for a base hit." end when "Base Hit" if @runner_1_2_3 puts "#{@stat} - 2 runs score - Runners now on first and third" elsif @runner_2_3 puts "#{@stat} - 2 runs score - Runner now on first base" elsif @runner_1_2 puts "#{@stat} - 1 run scores - Runners now on first and third" elsif @runner_1_3 puts "#{@stat} - 1 run scores - runners now on first and second" elsif @runner_1 puts "#{@stat} - Runners now on first and second!" elsif @runner_2 puts "#{@stat} - 1 run scores - Runner now on first" elsif @runner_3 puts "#{@stat} - 1 run scores - Runner now on first" else puts "#{@stat} - Runner now on First Base." end when "Double" if @runner_1_2_3 puts "#{@stat} - 2 Runs Score - Runners now on second and third" elsif @runner_2_3 puts "#{@stat} - 2 Run Scores - Runner now on second" elsif @runner_1_2 puts "#{@stat} - 1 Run Scores - Runners now on second and third" elsif @runner_1_3 puts "#{@stat} - 1 run scores - runners now on second and third" elsif @runner_1 puts "#{@stat} - Runners now on second and third" elsif @runner_2 puts "#{@stat} - 1 run scores - Runner in scoring position" elsif @runner_3 puts "#{@stat} - 1 run scores - Runner in scoring position" else puts "#{@stat} - Runner now on Second Base." end when "Triple" if @runner_1_2_3 puts "#{@stat} - 3 runs score!" elsif @runner_1_2 || @runner_2_3 puts "#{@stat} - 2 runs score - Runner now on third" elsif @runner_1 || @runner_2 || @runner_3 puts "#{@stat} - 1 run scores - Runner now on third" else puts "#{@stat} - Runner now on third base" end when "Home Run" if @runner_1_2_3 puts "#{@stat} - Grand Slam - 4 runs score!" elsif @runner_1_2 || @runner_2_3 puts "#{@stat} - 3 runs score!" elsif @runner_1 || @runner_2 || @runner_3 puts "#{@stat} - 2 run scores!" else puts "#{@stat} - Add one more to the score board!" end else puts "#{@stat}" end sleep(3) puts "\n" puts "Hit Enter to Continue with another scenario or exit to quit" end
slg()
click to toggle source
# File lib/bb_jouer.rb, line 32 def slg @player[:SLG] end