hlockey 0.1 → 1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/hlockey +41 -33
- data/lib/data/divisions.yaml +845 -0
- data/lib/data/season.rb +27 -0
- data/lib/game.rb +35 -28
- data/lib/league.rb +68 -58
- data/lib/messages.rb +25 -25
- metadata +5 -6
- data/lib/data/names_markov_chain.rb +0 -634
- data/lib/player.rb +0 -41
- data/lib/team.rb +0 -46
data/lib/player.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require_relative "./data/names_markov_chain"
|
2
|
-
|
3
|
-
class Player
|
4
|
-
attr_reader :stats, :to_s
|
5
|
-
|
6
|
-
@@prng = Random.new 8010897121101114 # This never changes
|
7
|
-
|
8
|
-
def initialize
|
9
|
-
@to_s = random_name + " " + random_name
|
10
|
-
@stats = [:offense, :defense, :agility].each_with_object Hash.new do |stat, hash|
|
11
|
-
hash[stat] = @@prng.rand * 5
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
def random_name
|
17
|
-
combination = "__"
|
18
|
-
next_letter = ""
|
19
|
-
result = ""
|
20
|
-
|
21
|
-
10.times do
|
22
|
-
next_letters = NamesMarkovChain[combination]
|
23
|
-
break if next_letters.nil?
|
24
|
-
|
25
|
-
cumulative_weights = []
|
26
|
-
next_letters.values.each do |v|
|
27
|
-
cumulative_weights << v + (cumulative_weights.last or 0)
|
28
|
-
end
|
29
|
-
rand_num = @@prng.rand cumulative_weights.last
|
30
|
-
|
31
|
-
next_letter = next_letters.keys[cumulative_weights.index do |n| rand_num < n end]
|
32
|
-
break if next_letter == "_"
|
33
|
-
|
34
|
-
result += next_letter
|
35
|
-
combination = combination[1] + next_letter
|
36
|
-
end
|
37
|
-
|
38
|
-
result
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
data/lib/team.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require_relative "./player"
|
2
|
-
|
3
|
-
class Team
|
4
|
-
attr_accessor :wins, :losses
|
5
|
-
attr_reader :name, :emoji, :roster
|
6
|
-
|
7
|
-
def initialize name, emoji, roster_idxs = {:lwing => 0,
|
8
|
-
:center => 1,
|
9
|
-
:rwing => 2,
|
10
|
-
:ldef => 3,
|
11
|
-
:goalie => 4,
|
12
|
-
:rdef => 5}
|
13
|
-
@wins = 0
|
14
|
-
@losses = 0
|
15
|
-
@name, @emoji = [name, emoji]
|
16
|
-
@roster = {}
|
17
|
-
players = []
|
18
|
-
6.times do players << Player.new end
|
19
|
-
roster_idxs.each do |pos, i|
|
20
|
-
@roster[pos] = players[i]
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def to_s
|
25
|
-
"#{@emoji} #{@name}"
|
26
|
-
end
|
27
|
-
|
28
|
-
def print_win_loss
|
29
|
-
puts " #{to_s.ljust 26} #{@wins}-#{@losses}"
|
30
|
-
end
|
31
|
-
|
32
|
-
def print_roster
|
33
|
-
puts to_s
|
34
|
-
@roster.each do |pos, player|
|
35
|
-
puts " #{pos.to_s.ljust 6}: #{player}"
|
36
|
-
player.stats.each do |stat, value|
|
37
|
-
puts " #{stat}: #{value.round 1}"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.sort_teams teams
|
43
|
-
teams.sort do |a, b| b.wins - b.losses <=> a.wins - a.losses end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|