hlockey 0
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 +7 -0
- data/bin/hlockey +82 -0
- data/lib/data/names_markov_chain.rb +634 -0
- data/lib/game.rb +153 -0
- data/lib/league.rb +130 -0
- data/lib/messages.rb +64 -0
- data/lib/player.rb +41 -0
- data/lib/team.rb +46 -0
- metadata +51 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8b75f6192f6a4e6fd12743a3cb723fbaeb1f89cc49e8be02efb5837be127fecf
|
4
|
+
data.tar.gz: 826ad54ed58f21c515e086387a8c3eceb94fcd1d8e08d83bbc6986a51a112513
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c4da1e46f91f59315c72d4ab0788e85b1427b172c26d395f94975408f73b21cac9eb08d816ba74be9d19f46f2f1f2bbb64399f539b6f077ac63db91eaa66a8c6
|
7
|
+
data.tar.gz: '05803e28e89961782a6ed54a96826224adc1819aedf23640f8ecf643e5cc298f5880124463c8e0c85d23ee339dda1623803ff81be9fe7fcd10d17789f57d5573'
|
data/bin/hlockey
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require_relative "../lib/league"
|
4
|
+
require_relative "../lib/team"
|
5
|
+
|
6
|
+
def menu_input default, *choices
|
7
|
+
puts "Please enter a number..."
|
8
|
+
choices.each_with_index do |choice, i|
|
9
|
+
# Adding 1 to i to avoid confusing a non-numerical input with the first choice
|
10
|
+
puts "#{(i + 1).to_s.rjust 2} - #{choice}"
|
11
|
+
end
|
12
|
+
puts "anything else - #{default}"
|
13
|
+
|
14
|
+
# Subtract 1 here to undo adding 1 earlier
|
15
|
+
gets.to_i - 1
|
16
|
+
end
|
17
|
+
|
18
|
+
# Each element from choices should implement to_s
|
19
|
+
def menu_input_elem default, choices
|
20
|
+
i = menu_input default, *choices
|
21
|
+
choices[i] unless i < 0
|
22
|
+
end
|
23
|
+
|
24
|
+
season = 0
|
25
|
+
start_time = Time.utc(2022, 6, 27, 17).localtime
|
26
|
+
league = League.new season, start_time
|
27
|
+
|
28
|
+
if Time.now < start_time
|
29
|
+
puts start_time.strftime "Season #{season} starts at %H:%M on %A, %B %d."
|
30
|
+
end
|
31
|
+
|
32
|
+
loop do
|
33
|
+
league.update_state
|
34
|
+
|
35
|
+
puts "Season #{season} day #{league.day}"
|
36
|
+
|
37
|
+
case menu_input "Exit", "Games", "Standings", "Rosters"
|
38
|
+
when 0 # Games
|
39
|
+
if league.games_in_progress.empty?
|
40
|
+
puts "There are currently no games being played."
|
41
|
+
next
|
42
|
+
end
|
43
|
+
|
44
|
+
game = menu_input_elem "Back", league.games_in_progress
|
45
|
+
next if game.nil?
|
46
|
+
|
47
|
+
loop do
|
48
|
+
league.update_state
|
49
|
+
|
50
|
+
game.stream.each &method(:puts)
|
51
|
+
|
52
|
+
break unless game.in_progress
|
53
|
+
|
54
|
+
game.stream.clear
|
55
|
+
sleep 5
|
56
|
+
end
|
57
|
+
when 1 # Standings
|
58
|
+
if league.champion_team
|
59
|
+
puts "Your season #{season} champions are the #{champion_team.name}!"
|
60
|
+
elsif league.playoff_teams
|
61
|
+
puts "Playoffs"
|
62
|
+
league.playoff_teams.each &:print_win_loss
|
63
|
+
end
|
64
|
+
|
65
|
+
league.divisions.each do |name, teams|
|
66
|
+
puts name
|
67
|
+
Team.sort_teams(teams).each &:print_win_loss
|
68
|
+
end
|
69
|
+
when 2 # Rosters
|
70
|
+
teams = league.divisions.values.reduce(:+)
|
71
|
+
team = menu_input_elem "All teams", teams
|
72
|
+
|
73
|
+
if team.nil?
|
74
|
+
teams.each &:print_roster
|
75
|
+
next
|
76
|
+
end
|
77
|
+
team.print_roster
|
78
|
+
else
|
79
|
+
exit
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
@@ -0,0 +1,634 @@
|
|
1
|
+
# This file was automatically generated by /misc/generate_name_markov_chain.rb
|
2
|
+
NamesMarkovChain = {"__"=>{"A"=>394, "B"=>212, "C"=>413, "D"=>319, "E"=>274, "F"=>113, "G"=>163, "H"=>130, "I"=>82, "J"=>348, "K"=>261, "L"=>430, "M"=>487, "N"=>143, "O"=>61, "P"=>105, "Q"=>10, "R"=>274, "S"=>383, "T"=>272, "U"=>8, "V"=>115, "W"=>82, "X"=>6, "Y"=>47, "Z"=>31},
|
3
|
+
"_A"=>{"a"=>1, "b"=>9, "d"=>30, "f"=>1, "g"=>7, "h"=>2, "i"=>8, "j"=>1, "k"=>2, "l"=>109, "m"=>20, "n"=>90, "p"=>3, "r"=>57, "s"=>18, "t"=>1, "u"=>22, "v"=>5, "w"=>1, "y"=>4, "z"=>3},
|
4
|
+
"Aa"=>{"r"=>1},
|
5
|
+
"ar"=>{"o"=>32, "i"=>116, "a"=>35, "b"=>7, "_"=>12, "n"=>10, "r"=>40, "t"=>18, "d"=>28, "e"=>28, "l"=>80, "m"=>19, "s"=>5, "y"=>41, "k"=>7, "c"=>28, "w"=>1, "f"=>1, "v"=>7, "h"=>2, "u"=>1, "g"=>29, "j"=>2, "q"=>5, "x"=>1},
|
6
|
+
"ro"=>{"n"=>25, "_"=>14, "s"=>3, "r"=>2, "c"=>1, "d"=>4, "o"=>3, "l"=>24, "y"=>4, "a"=>1, "t"=>3, "v"=>2, "k"=>1, "m"=>2, "e"=>1, "w"=>1},
|
7
|
+
"on"=>{"_"=>125, "s"=>8, "z"=>3, "a"=>35, "y"=>11, "e"=>24, "i"=>37, "d"=>26, "g"=>12, "n"=>36, "w"=>1, "c"=>6, "r"=>2, "t"=>7, "o"=>7, "j"=>2},
|
8
|
+
"Ab"=>{"b"=>3, "d"=>1, "e"=>2, "i"=>1, "r"=>2},
|
9
|
+
"bb"=>{"e"=>3, "i"=>9, "y"=>7, "r"=>1},
|
10
|
+
"be"=>{"y"=>1, "_"=>4, "l"=>17, "r"=>43, "t"=>14, "c"=>5, "k"=>1, "n"=>4},
|
11
|
+
"ey"=>{"_"=>90, "e"=>2, "a"=>1, "n"=>3, "m"=>1},
|
12
|
+
"bi"=>{"e"=>8, "g"=>1, "n"=>6, "_"=>8, "a"=>5, "o"=>2, "l"=>1, "t"=>1},
|
13
|
+
"ie"=>{"_"=>310, "n"=>13, "e"=>1, "s"=>7, "t"=>13, "l"=>25, "c"=>2, "k"=>1, "r"=>11, "d"=>7, "g"=>1, "v"=>2, "a"=>1, "m"=>1},
|
14
|
+
"by"=>{"_"=>11, "e"=>2, "n"=>2, "l"=>1},
|
15
|
+
"bd"=>{"u"=>2},
|
16
|
+
"du"=>{"l"=>2, "a"=>1},
|
17
|
+
"ul"=>{"_"=>4, "f"=>1, "a"=>17, "c"=>2, "d"=>1, "i"=>23, "y"=>1, "e"=>9, "u"=>1, "m"=>1},
|
18
|
+
"el"=>{"_"=>74, "a"=>42, "e"=>33, "i"=>105, "l"=>160, "o"=>21, "y"=>27, "k"=>1, "v"=>7, "s"=>9, "d"=>12, "b"=>4, "c"=>1, "f"=>1, "m"=>11, "p"=>3, "t"=>4, "g"=>1},
|
19
|
+
"ig"=>{"a"=>2, "h"=>8, "e"=>3, "i"=>6, "_"=>4, "n"=>3, "d"=>1, "u"=>2, "o"=>2, "r"=>1},
|
20
|
+
"ga"=>{"i"=>1, "t"=>1, "_"=>7, "r"=>17, "n"=>12, "l"=>2},
|
21
|
+
"ai"=>{"l"=>7, "d"=>9, "n"=>30, "r"=>8, "t"=>5, "g"=>4, "s"=>6, "_"=>7, "a"=>3, "m"=>3},
|
22
|
+
"il"=>{"_"=>14, "e"=>19, "a"=>41, "l"=>63, "d"=>19, "i"=>17, "y"=>11, "o"=>6, "b"=>7, "m"=>5, "t"=>3, "u"=>1, "f"=>4, "s"=>2, "v"=>3, "h"=>2},
|
23
|
+
"br"=>{"a"=>10, "o"=>2, "e"=>1, "i"=>7},
|
24
|
+
"ra"=>{"h"=>12, "m"=>4, "_"=>163, "c"=>15, "b"=>1, "d"=>8, "i"=>12, "n"=>41, "l"=>15, "z"=>2, "s"=>2, "e"=>3, "t"=>2, "r"=>2, "y"=>3, "g"=>2, "f"=>1, "v"=>1, "u"=>1},
|
25
|
+
"ah"=>{"a"=>4, "_"=>41, "l"=>1, "o"=>1},
|
26
|
+
"ha"=>{"m"=>7, "_"=>119, "n"=>74, "r"=>54, "d"=>7, "e"=>7, "s"=>7, "u"=>10, "y"=>6, "w"=>13, "l"=>13, "i"=>3, "k"=>3, "q"=>2, "v"=>3, "o"=>1},
|
27
|
+
"am"=>{"_"=>17, "a"=>23, "b"=>2, "i"=>27, "e"=>20, "m"=>13, "o"=>8, "y"=>1, "u"=>3, "r"=>1, "s"=>1},
|
28
|
+
"Ad"=>{"a"=>6, "d"=>1, "e"=>11, "i"=>1, "o"=>2, "r"=>9},
|
29
|
+
"da"=>{"_"=>186, "h"=>1, "l"=>15, "m"=>1, "n"=>5, "t"=>1, "c"=>2, "d"=>6, "w"=>1, "y"=>1},
|
30
|
+
"al"=>{"b"=>2, "i"=>44, "_"=>32, "e"=>35, "a"=>10, "l"=>17, "v"=>5, "t"=>4, "d"=>19, "y"=>8, "o"=>6, "u"=>1, "c"=>2, "k"=>2, "m"=>3, "p"=>1, "r"=>1},
|
31
|
+
"lb"=>{"e"=>14, "a"=>5, "i"=>1, "y"=>2, "u"=>2},
|
32
|
+
"er"=>{"t"=>44, "_"=>64, "a"=>29, "l"=>29, "i"=>57, "s"=>10, "y"=>19, "e"=>33, "n"=>35, "r"=>46, "o"=>11, "d"=>6, "m"=>16, "b"=>2, "c"=>4, "v"=>2, "g"=>2, "w"=>1},
|
33
|
+
"rt"=>{"o"=>12, "_"=>21, "a"=>8, "h"=>16, "i"=>18, "u"=>2, "r"=>4, "e"=>7, "n"=>4, "y"=>2, "l"=>1},
|
34
|
+
"to"=>{"_"=>20, "n"=>42, "i"=>2, "p"=>4, "b"=>1, "l"=>1, "r"=>8, "f"=>1, "s"=>3, "y"=>2},
|
35
|
+
"li"=>{"n"=>94, "a"=>79, "_"=>18, "c"=>17, "d"=>5, "s"=>41, "t"=>9, "x"=>2, "z"=>7, "e"=>47, "k"=>4, "q"=>1, "o"=>7, "f"=>3, "u"=>2, "l"=>4, "j"=>1, "p"=>4, "b"=>1, "m"=>1, "v"=>4},
|
36
|
+
"in"=>{"e"=>127, "a"=>136, "_"=>72, "d"=>41, "g"=>12, "i"=>15, "t"=>10, "n"=>15, "y"=>3, "o"=>10, "q"=>1, "c"=>8, "h"=>3, "s"=>2, "w"=>1, "l"=>1, "f"=>3, "k"=>1},
|
37
|
+
"ne"=>{"_"=>280, "s"=>19, "t"=>56, "l"=>39, "m"=>1, "y"=>17, "d"=>2, "i"=>3, "e"=>7, "v"=>5, "z"=>1, "a"=>3, "n"=>2, "f"=>1, "r"=>4, "k"=>2},
|
38
|
+
"an"=>{"_"=>112, "a"=>75, "e"=>67, "n"=>130, "d"=>113, "t"=>27, "i"=>66, "y"=>15, "c"=>29, "g"=>11, "u"=>7, "o"=>10, "z"=>1, "k"=>5, "s"=>3, "v"=>1, "h"=>2, "m"=>1, "f"=>2, "j"=>3, "l"=>1},
|
39
|
+
"dd"=>{"i"=>4, "y"=>4, "a"=>2, "e"=>1, "_"=>1},
|
40
|
+
"di"=>{"e"=>27, "n"=>12, "a"=>14, "s"=>8, "t"=>5, "c"=>3, "_"=>18, "d"=>1, "o"=>2, "r"=>2, "j"=>1, "v"=>1, "l"=>1},
|
41
|
+
"de"=>{"l"=>35, "_"=>25, "n"=>11, "r"=>11, "t"=>4, "e"=>7, "g"=>2, "s"=>5, "z"=>1, "u"=>1, "a"=>1},
|
42
|
+
"la"=>{"_"=>163, "i"=>15, "h"=>10, "n"=>46, "y"=>5, "k"=>1, "r"=>24, "s"=>9, "u"=>7, "d"=>4, "m"=>1, "l"=>1, "v"=>1, "g"=>2, "c"=>1},
|
43
|
+
"id"=>{"a"=>38, "e"=>8, "_"=>8, "g"=>5, "y"=>4, "r"=>4, "i"=>5, "n"=>1},
|
44
|
+
"le"=>{"_"=>106, "e"=>47, "n"=>91, "a"=>10, "c"=>3, "i"=>8, "j"=>3, "s"=>14, "t"=>28, "x"=>7, "g"=>1, "y"=>30, "b"=>1, "l"=>1, "m"=>9, "o"=>8, "v"=>2, "r"=>7, "d"=>1},
|
45
|
+
"ia"=>{"_"=>238, "n"=>72, "r"=>3, "l"=>2, "m"=>7, "s"=>3, "h"=>7, "g"=>1, "o"=>1},
|
46
|
+
"na"=>{"_"=>389, "b"=>4, "l"=>10, "m"=>4, "s"=>3, "d"=>3, "r"=>11, "e"=>8, "h"=>5, "n"=>6, "c"=>2, "y"=>2, "t"=>7, "i"=>2},
|
47
|
+
"ll"=>{"_"=>69, "a"=>57, "e"=>85, "i"=>53, "y"=>19, "o"=>5, "s"=>1, "u"=>1},
|
48
|
+
"en"=>{"a"=>72, "_"=>104, "e"=>86, "n"=>47, "t"=>22, "i"=>46, "j"=>1, "d"=>22, "y"=>6, "c"=>17, "v"=>1, "o"=>8, "r"=>3, "s"=>2, "z"=>6, "u"=>1},
|
49
|
+
"do"=>{"l"=>8, "_"=>28, "n"=>11, "r"=>9},
|
50
|
+
"ol"=>{"f"=>4, "p"=>3, "o"=>5, "d"=>9, "_"=>8, "a"=>33, "e"=>23, "i"=>11, "l"=>20, "y"=>9, "b"=>1, "t"=>1, "u"=>1, "n"=>1, "m"=>1},
|
51
|
+
"lf"=>{"o"=>7, "r"=>9, "i"=>1, "_"=>2},
|
52
|
+
"fo"=>{"_"=>3, "n"=>2, "r"=>9},
|
53
|
+
"lp"=>{"h"=>10},
|
54
|
+
"ph"=>{"_"=>6, "a"=>11, "o"=>2, "e"=>6, "i"=>9, "n"=>2},
|
55
|
+
"dr"=>{"i"=>24, "a"=>38, "o"=>5, "e"=>17, "y"=>1, "u"=>1},
|
56
|
+
"ri"=>{"a"=>52, "e"=>65, "p"=>1, "n"=>72, "c"=>52, "l"=>20, "d"=>13, "_"=>34, "s"=>106, "z"=>1, "g"=>5, "t"=>36, "b"=>4, "o"=>7, "u"=>2, "q"=>2, "k"=>8, "m"=>1, "v"=>1},
|
57
|
+
"nn"=>{"a"=>79, "e"=>70, "_"=>50, "i"=>49, "m"=>1, "y"=>20, "o"=>2},
|
58
|
+
"Af"=>{"t"=>1},
|
59
|
+
"ft"=>{"o"=>2},
|
60
|
+
"Ag"=>{"a"=>1, "n"=>2, "r"=>1, "u"=>3},
|
61
|
+
"at"=>{"h"=>61, "a"=>14, "r"=>19, "e"=>9, "i"=>17, "t"=>10, "l"=>1, "y"=>2, "o"=>9, "_"=>1, "s"=>1, "u"=>2},
|
62
|
+
"th"=>{"a"=>52, "e"=>34, "i"=>12, "o"=>3, "_"=>35, "u"=>1, "l"=>5, "r"=>6, "y"=>8},
|
63
|
+
"gn"=>{"e"=>2, "u"=>1, "y"=>1, "a"=>3, "o"=>2},
|
64
|
+
"es"=>{"_"=>22, "h"=>27, "i"=>10, "s"=>29, "e"=>8, "t"=>24, "a"=>11, "m"=>1, "p"=>2, "c"=>3, "u"=>3, "l"=>5},
|
65
|
+
"nu"=>{"s"=>2, "l"=>1, "t"=>1, "e"=>4, "a"=>2},
|
66
|
+
"us"=>{"_"=>21, "t"=>23, "i"=>3, "e"=>4, "s"=>4, "a"=>7, "y"=>1},
|
67
|
+
"gr"=>{"i"=>3, "a"=>2, "e"=>3, "o"=>2},
|
68
|
+
"ip"=>{"i"=>1, "a"=>1, "e"=>2, "o"=>1, "_"=>3},
|
69
|
+
"pi"=>{"n"=>3, "f"=>1, "t"=>1, "a"=>2, "e"=>1},
|
70
|
+
"gu"=>{"e"=>6, "s"=>7, "r"=>1, "y"=>1},
|
71
|
+
"ue"=>{"d"=>1, "_"=>15, "n"=>2, "l"=>25, "t"=>6, "y"=>1, "s"=>1, "r"=>3, "e"=>2, "b"=>1, "a"=>1},
|
72
|
+
"ed"=>{"a"=>18, "_"=>17, "i"=>7, "o"=>2, "r"=>11, "e"=>10, "d"=>4, "w"=>1, "y"=>1},
|
73
|
+
"st"=>{"i"=>49, "a"=>27, "r"=>2, "_"=>5, "u"=>1, "e"=>27, "o"=>16, "y"=>9, "l"=>3, "h"=>1},
|
74
|
+
"ti"=>{"n"=>53, "o"=>3, "e"=>28, "_"=>11, "t"=>2, "a"=>13, "l"=>6, "s"=>7, "m"=>2, "c"=>4, "v"=>1},
|
75
|
+
"Ah"=>{"m"=>2},
|
76
|
+
"hm"=>{"a"=>1, "e"=>1},
|
77
|
+
"ma"=>{"d"=>4, "_"=>47, "l"=>7, "n"=>22, "r"=>21, "e"=>4, "i"=>6, "h"=>1, "a"=>1, "t"=>2, "s"=>6},
|
78
|
+
"ad"=>{"_"=>15, "a"=>14, "o"=>5, "e"=>10, "i"=>10, "f"=>1, "l"=>3, "y"=>6, "w"=>2, "r"=>1, "d"=>2, "g"=>1},
|
79
|
+
"me"=>{"d"=>5, "e"=>4, "t"=>6, "l"=>25, "r"=>18, "n"=>11, "_"=>6, "s"=>2, "y"=>1, "g"=>1, "o"=>1, "k"=>6, "i"=>1},
|
80
|
+
"Ai"=>{"_"=>1, "d"=>2, "k"=>1, "l"=>2, "m"=>1, "s"=>1},
|
81
|
+
"ik"=>{"o"=>19, "a"=>24, "_"=>2, "e"=>4, "i"=>6, "k"=>4},
|
82
|
+
"ko"=>{"_"=>39, "t"=>1, "l"=>3},
|
83
|
+
"ee"=>{"n"=>43, "_"=>61, "a"=>5, "d"=>5, "t"=>2, "m"=>3, "s"=>4, "l"=>3},
|
84
|
+
"im"=>{"e"=>3, "i"=>7, "p"=>2, "a"=>6, "_"=>3, "m"=>3, "b"=>9, "o"=>6},
|
85
|
+
"is"=>{"h"=>44, "_"=>62, "a"=>30, "e"=>29, "i"=>2, "o"=>7, "s"=>29, "t"=>54, "y"=>1, "c"=>5, "l"=>1, "b"=>1},
|
86
|
+
"sh"=>{"a"=>89, "i"=>14, "e"=>5, "l"=>8, "t"=>2, "_"=>5, "u"=>2, "n"=>1, "o"=>2},
|
87
|
+
"Aj"=>{"a"=>1},
|
88
|
+
"ja"=>{"_"=>6, "n"=>5, "m"=>1, "h"=>2, "i"=>1},
|
89
|
+
"Ak"=>{"i"=>2},
|
90
|
+
"ki"=>{"k"=>2, "l"=>1, "_"=>15, "e"=>10, "s"=>5, "a"=>5, "t"=>5, "n"=>1, "r"=>1},
|
91
|
+
"Al"=>{"_"=>1, "a"=>7, "b"=>8, "d"=>3, "e"=>26, "f"=>6, "i"=>18, "l"=>12, "m"=>3, "o"=>3, "p"=>3, "t"=>5, "v"=>6, "y"=>8},
|
92
|
+
"ay"=>{"n"=>16, "l"=>17, "_"=>17, "a"=>3, "t"=>1, "s"=>2, "e"=>6, "d"=>3, "c"=>3, "w"=>1, "m"=>7, "b"=>2, "o"=>1, "r"=>1, "f"=>1},
|
93
|
+
"yn"=>{"a"=>12, "_"=>71, "e"=>20, "n"=>12, "d"=>9, "t"=>2, "i"=>2, "s"=>1, "w"=>1, "o"=>1},
|
94
|
+
"ba"=>{"_"=>9, "l"=>2, "r"=>4, "n"=>1, "s"=>1, "t"=>1},
|
95
|
+
"ta"=>{"_"=>193, "g"=>1, "c"=>8, "s"=>7, "n"=>14, "l"=>12, "r"=>5, "y"=>2, "v"=>3, "e"=>1},
|
96
|
+
"ld"=>{"a"=>28, "e"=>10, "o"=>14, "_"=>11, "r"=>3, "i"=>4},
|
97
|
+
"ea"=>{"s"=>6, "_"=>22, "n"=>65, "t"=>10, "u"=>2, "d"=>1, "m"=>1, "r"=>7, "l"=>4, "h"=>1, "g"=>3},
|
98
|
+
"as"=>{"e"=>6, "t"=>8, "i"=>14, "_"=>18, "a"=>8, "s"=>15, "m"=>5, "o"=>4, "p"=>1, "h"=>25, "q"=>1, "u"=>1},
|
99
|
+
"se"=>{"_"=>42, "y"=>12, "t"=>6, "a"=>5, "l"=>18, "o"=>1, "b"=>2, "p"=>5, "n"=>8, "f"=>4, "s"=>3, "r"=>1, "v"=>1, "m"=>2},
|
100
|
+
"ec"=>{"_"=>1, "i"=>12, "k"=>4, "e"=>3, "t"=>1, "h"=>1, "o"=>1, "a"=>2, "c"=>2},
|
101
|
+
"ci"=>{"a"=>33, "o"=>9, "l"=>15, "_"=>8, "e"=>17, "d"=>1, "t"=>2, "n"=>8, "s"=>4, "u"=>1},
|
102
|
+
"ei"=>{"d"=>13, "s"=>6, "g"=>7, "c"=>1, "r"=>2, "k"=>4, "l"=>7, "t"=>3, "a"=>1, "f"=>1, "_"=>4, "n"=>3},
|
103
|
+
"ej"=>{"a"=>4},
|
104
|
+
"nd"=>{"r"=>44, "e"=>17, "a"=>94, "y"=>17, "_"=>17, "i"=>26, "o"=>17, "s"=>5},
|
105
|
+
"hi"=>{"a"=>17, "e"=>9, "_"=>4, "n"=>12, "q"=>1, "t"=>4, "s"=>1, "l"=>9, "k"=>4, "d"=>1, "r"=>8, "z"=>2},
|
106
|
+
"si"=>{"a"=>16, "l"=>4, "e"=>29, "m"=>1, "_"=>5, "d"=>5, "t"=>4, "r"=>3, "s"=>3, "u"=>1, "c"=>2, "k"=>1, "n"=>3, "o"=>1},
|
107
|
+
"ss"=>{"a"=>35, "u"=>1, "_"=>10, "i"=>24, "o"=>2, "e"=>11, "y"=>5},
|
108
|
+
"sa"=>{"n"=>19, "_"=>77, "u"=>3, "r"=>3, "b"=>6, "k"=>2, "a"=>1, "d"=>1, "i"=>2, "c"=>1, "y"=>2, "l"=>10, "m"=>2},
|
109
|
+
"et"=>{"a"=>19, "h"=>35, "t"=>146, "s"=>3, "_"=>24, "u"=>2, "r"=>8, "c"=>2, "i"=>4, "e"=>3, "l"=>1},
|
110
|
+
"he"=>{"a"=>10, "l"=>47, "n"=>9, "_"=>7, "r"=>74, "y"=>4, "s"=>2, "t"=>2, "w"=>2, "m"=>4, "b"=>3, "e"=>2, "i"=>2, "d"=>1, "o"=>4},
|
111
|
+
"ex"=>{"_"=>2, "a"=>4, "i"=>3, "t"=>1},
|
112
|
+
"xa"=>{"_"=>1, "n"=>8},
|
113
|
+
"xi"=>{"a"=>1, "s"=>1, "e"=>5, "m"=>3, "n"=>1},
|
114
|
+
"ns"=>{"o"=>4, "e"=>5, "t"=>2, "u"=>2, "i"=>3, "_"=>1, "y"=>1, "h"=>1},
|
115
|
+
"so"=>{"_"=>3, "n"=>24, "m"=>1, "b"=>1, "l"=>1},
|
116
|
+
"nz"=>{"o"=>4, "a"=>4, "i"=>2},
|
117
|
+
"zo"=>{"_"=>4, "n"=>1, "l"=>1},
|
118
|
+
"fr"=>{"e"=>13, "a"=>1, "i"=>2, "y"=>1},
|
119
|
+
"re"=>{"d"=>28, "_"=>25, "a"=>16, "e"=>21, "s"=>21, "w"=>2, "t"=>39, "y"=>11, "l"=>19, "n"=>51, "o"=>1, "k"=>1, "m"=>3, "i"=>3, "g"=>5, "c"=>2, "v"=>2},
|
120
|
+
"ic"=>{"a"=>27, "e"=>38, "i"=>16, "_"=>7, "t"=>4, "k"=>36, "h"=>24, "o"=>9, "r"=>1},
|
121
|
+
"ca"=>{"_"=>33, "s"=>2, "n"=>1, "l"=>1, "e"=>1, "h"=>1, "r"=>6},
|
122
|
+
"ce"=>{"_"=>70, "l"=>23, "n"=>10, "y"=>7, "p"=>2, "t"=>1, "s"=>4, "e"=>4, "d"=>2, "r"=>1},
|
123
|
+
"it"=>{"a"=>76, "r"=>1, "h"=>11, "o"=>4, "_"=>4, "t"=>17, "n"=>3, "l"=>6, "y"=>4, "i"=>2, "z"=>4, "e"=>4, "c"=>3, "s"=>2, "u"=>1},
|
124
|
+
"ix"=>{"_"=>2, "i"=>1, "t"=>1},
|
125
|
+
"iz"=>{"a"=>6, "_"=>3, "b"=>2, "e"=>3, "z"=>4, "u"=>2},
|
126
|
+
"za"=>{"_"=>8, "l"=>2, "b"=>3, "r"=>1, "n"=>5},
|
127
|
+
"eg"=>{"r"=>1, "o"=>4, "_"=>3, "g"=>5, "a"=>7, "h"=>2, "e"=>2, "i"=>4},
|
128
|
+
"ly"=>{"n"=>68, "s"=>10, "c"=>2, "_"=>39, "e"=>2, "t"=>1, "d"=>1, "a"=>1, "m"=>1, "v"=>1},
|
129
|
+
"ys"=>{"o"=>4, "a"=>1, "e"=>3, "h"=>1, "i"=>2, "s"=>2, "t"=>11, "_"=>2},
|
130
|
+
"lm"=>{"a"=>15, "e"=>6, "y"=>1, "i"=>4, "o"=>1, "_"=>1},
|
131
|
+
"lo"=>{"n"=>16, "_"=>12, "s"=>3, "t"=>6, "e"=>1, "r"=>32, "i"=>5, "d"=>6, "u"=>4, "y"=>4, "m"=>4, "p"=>1, "h"=>1, "w"=>1},
|
132
|
+
"ho"=>{"n"=>17, "_"=>1, "m"=>5, "l"=>4, "e"=>1, "d"=>1, "s"=>1, "r"=>1},
|
133
|
+
"lt"=>{"a"=>3, "h"=>2, "o"=>11, "_"=>1, "e"=>1, "r"=>1},
|
134
|
+
"ag"=>{"r"=>4, "m"=>1, "n"=>2, "a"=>7, "d"=>4, "e"=>3, "g"=>1, "h"=>1, "u"=>1, "o"=>1},
|
135
|
+
"ac"=>{"i"=>23, "e"=>15, "_"=>3, "a"=>1, "k"=>12, "l"=>1, "o"=>1, "q"=>15, "y"=>5, "h"=>15, "r"=>1},
|
136
|
+
"lv"=>{"a"=>11, "e"=>5, "i"=>16},
|
137
|
+
"va"=>{"_"=>25, "r"=>1, "n"=>13, "l"=>3, "d"=>3, "t"=>1},
|
138
|
+
"ve"=>{"r"=>16, "l"=>17, "_"=>7, "t"=>9, "v"=>1, "y"=>2, "n"=>6, "s"=>2},
|
139
|
+
"vi"=>{"n"=>22, "l"=>4, "s"=>7, "d"=>4, "e"=>12, "a"=>12, "r"=>1, "t"=>2, "o"=>2, "v"=>1, "_"=>1},
|
140
|
+
"yc"=>{"e"=>12, "i"=>1},
|
141
|
+
"Am"=>{"a"=>5, "b"=>3, "e"=>3, "i"=>5, "m"=>1, "o"=>1, "p"=>1, "y"=>1},
|
142
|
+
"mb"=>{"e"=>15, "r"=>3, "i"=>1, "u"=>1},
|
143
|
+
"rl"=>{"y"=>20, "a"=>16, "e"=>58, "i"=>27, "_"=>7, "o"=>8, "t"=>1, "s"=>1, "d"=>1},
|
144
|
+
"os"=>{"e"=>33, "_"=>6, "s"=>5, "t"=>1, "h"=>11, "i"=>7, "l"=>2, "p"=>2, "u"=>1, "a"=>20, "c"=>1, "y"=>1},
|
145
|
+
"mi"=>{"_"=>13, "e"=>19, "n"=>29, "r"=>7, "d"=>1, "l"=>14, "a"=>3, "o"=>1, "t"=>3, "k"=>13, "s"=>2, "c"=>1},
|
146
|
+
"ir"=>{"a"=>23, "d"=>2, "g"=>7, "_"=>2, "e"=>9, "k"=>2, "y"=>1, "o"=>2, "b"=>1, "s"=>3, "i"=>3, "n"=>1, "t"=>2, "l"=>6},
|
147
|
+
"mm"=>{"i"=>12, "y"=>8, "a"=>6, "e"=>5},
|
148
|
+
"mo"=>{"s"=>1, "n"=>23, "_"=>4, "g"=>2, "r"=>1, "u"=>1, "t"=>1, "k"=>1},
|
149
|
+
"mp"=>{"a"=>1, "l"=>2, "i"=>3},
|
150
|
+
"pa"=>{"r"=>2, "t"=>1, "_"=>1, "l"=>1, "n"=>1},
|
151
|
+
"my"=>{"_"=>13, "e"=>1},
|
152
|
+
"An"=>{"_"=>1, "a"=>6, "d"=>11, "e"=>1, "g"=>21, "h"=>1, "i"=>7, "j"=>3, "n"=>23, "t"=>15, "y"=>1},
|
153
|
+
"ab"=>{"e"=>17, "a"=>3, "i"=>5, "r"=>7, "l"=>2},
|
154
|
+
"rs"=>{"o"=>4, "t"=>6, "e"=>2, "c"=>2, "h"=>6, "_"=>1, "a"=>1, "u"=>1, "i"=>1},
|
155
|
+
"ew"=>{"_"=>4, "a"=>2, "e"=>3, "i"=>2, "t"=>1},
|
156
|
+
"dy"=>{"_"=>35, "c"=>1, "t"=>2, "s"=>1, "e"=>1},
|
157
|
+
"tt"=>{"e"=>70, "_"=>25, "a"=>63, "i"=>17, "y"=>8, "n"=>3, "h"=>1, "o"=>1},
|
158
|
+
"te"=>{"_"=>89, "n"=>12, "r"=>18, "l"=>18, "e"=>2, "s"=>2, "z"=>1, "b"=>1, "f"=>7, "m"=>1, "p"=>12, "v"=>3, "w"=>1},
|
159
|
+
"ng"=>{"e"=>25, "i"=>2, "l"=>3, "_"=>37, "a"=>2, "o"=>1, "r"=>1},
|
160
|
+
"ge"=>{"l"=>23, "n"=>14, "t"=>8, "_"=>10, "a"=>2, "r"=>7, "b"=>1},
|
161
|
+
"ka"=>{"_"=>36, "e"=>1, "h"=>1, "k"=>1, "r"=>1},
|
162
|
+
"iq"=>{"u"=>10},
|
163
|
+
"qu"=>{"e"=>24, "i"=>13, "a"=>5, "l"=>2},
|
164
|
+
"gi"=>{"e"=>8, "l"=>3, "t"=>3, "d"=>2, "a"=>7, "n"=>8, "_"=>2, "o"=>2},
|
165
|
+
"gl"=>{"a"=>3, "e"=>2},
|
166
|
+
"nh"=>{"_"=>6},
|
167
|
+
"ni"=>{"b"=>1, "k"=>8, "s"=>22, "t"=>32, "c"=>20, "e"=>70, "a"=>38, "n"=>8, "o"=>3, "_"=>25, "l"=>6, "q"=>5, "d"=>3, "f"=>6, "r"=>1},
|
168
|
+
"ib"=>{"a"=>1, "i"=>1, "e"=>6, "b"=>2, "r"=>1, "y"=>1},
|
169
|
+
"tr"=>{"a"=>7, "i"=>23, "e"=>1, "u"=>3, "o"=>1},
|
170
|
+
"nj"=>{"a"=>6, "e"=>1, "u"=>2},
|
171
|
+
"je"=>{"l"=>1},
|
172
|
+
"ae"=>{"_"=>20, "l"=>15, "g"=>1, "a"=>1, "k"=>1},
|
173
|
+
"em"=>{"a"=>13, "e"=>12, "m"=>2, "i"=>7, "y"=>1, "_"=>1, "b"=>2, "u"=>1, "o"=>1, "p"=>2},
|
174
|
+
"nm"=>{"a"=>2},
|
175
|
+
"nt"=>{"h"=>6, "i"=>17, "o"=>21, "w"=>1, "a"=>14, "_"=>11, "e"=>17, "y"=>1},
|
176
|
+
"ny"=>{"_"=>42, "a"=>13, "e"=>4, "s"=>1, "c"=>1},
|
177
|
+
"io"=>{"n"=>13, "_"=>25, "t"=>2, "l"=>6, "v"=>2, "r"=>1, "u"=>1, "s"=>1, "b"=>1, "m"=>1},
|
178
|
+
"oi"=>{"n"=>2, "s"=>9, "_"=>3, "e"=>1, "d"=>1, "r"=>1, "l"=>2},
|
179
|
+
"tw"=>{"a"=>1},
|
180
|
+
"wa"=>{"n"=>16, "y"=>2, "i"=>1, "r"=>4, "_"=>2, "l"=>1},
|
181
|
+
"ya"=>{"_"=>21, "k"=>1, "n"=>13, "c"=>1, "t"=>2, "l"=>2, "m"=>1},
|
182
|
+
"Ap"=>{"o"=>1, "r"=>2},
|
183
|
+
"po"=>{"l"=>4},
|
184
|
+
"pr"=>{"i"=>3, "y"=>1},
|
185
|
+
"ry"=>{"l"=>24, "_"=>51, "a"=>9, "c"=>1, "n"=>13, "o"=>1, "s"=>11, "b"=>2, "e"=>2, "j"=>2, "r"=>1},
|
186
|
+
"yl"=>{"_"=>14, "n"=>2, "o"=>6, "a"=>12, "e"=>17, "l"=>3, "i"=>5, "y"=>2, "v"=>3},
|
187
|
+
"Ar"=>{"a"=>4, "c"=>2, "d"=>8, "e"=>1, "g"=>2, "i"=>8, "l"=>13, "m"=>6, "n"=>6, "o"=>1, "r"=>1, "t"=>4, "v"=>1},
|
188
|
+
"rc"=>{"e"=>17, "h"=>2, "i"=>6, "y"=>4, "u"=>2, "a"=>1, "_"=>1, "o"=>2},
|
189
|
+
"ch"=>{"i"=>6, "_"=>5, "e"=>30, "a"=>14, "o"=>5},
|
190
|
+
"rd"=>{"a"=>8, "e"=>11, "i"=>9, "_"=>23, "o"=>9, "r"=>2},
|
191
|
+
"rg"=>{"e"=>16, "i"=>18, "a"=>12, "_"=>2, "h"=>1, "o"=>3, "r"=>2, "u"=>3, "y"=>1},
|
192
|
+
"rm"=>{"a"=>23, "i"=>13, "e"=>11, "o"=>3, "g"=>1, "y"=>1},
|
193
|
+
"rn"=>{"e"=>23, "i"=>13, "o"=>3, "u"=>1, "a"=>19, "_"=>7},
|
194
|
+
"no"=>{"l"=>4, "_"=>9, "r"=>22, "v"=>2, "c"=>2, "n"=>8, "b"=>1},
|
195
|
+
"rr"=>{"o"=>11, "e"=>18, "i"=>48, "y"=>19, "a"=>11, "_"=>1},
|
196
|
+
"hu"=>{"r"=>2, "_"=>3, "c"=>1, "n"=>4, "a"=>1, "o"=>1, "y"=>1},
|
197
|
+
"ur"=>{"_"=>3, "o"=>4, "a"=>12, "e"=>13, "l"=>3, "m"=>2, "t"=>8, "i"=>14, "y"=>1, "d"=>1, "r"=>1, "n"=>2},
|
198
|
+
"tu"=>{"r"=>3, "s"=>3, "m"=>2, "d"=>1, "a"=>1},
|
199
|
+
"rv"=>{"i"=>9, "e"=>3, "a"=>3},
|
200
|
+
"As"=>{"a"=>1, "h"=>12, "i"=>1, "l"=>1, "s"=>1, "t"=>1, "u"=>1},
|
201
|
+
"hl"=>{"e"=>7, "i"=>4, "y"=>3, "o"=>1},
|
202
|
+
"gh"=>{"_"=>6, "t"=>1, "a"=>5, "e"=>1, "n"=>1},
|
203
|
+
"ht"=>{"o"=>1, "_"=>1, "e"=>1, "a"=>1, "i"=>1},
|
204
|
+
"sl"=>{"e"=>4, "a"=>1, "y"=>2, "i"=>2},
|
205
|
+
"su"=>{"n"=>2, "e"=>4, "k"=>4, "s"=>3, "l"=>1},
|
206
|
+
"un"=>{"t"=>4, "c"=>3, "d"=>10, "a"=>5, "i"=>6, "o"=>1, "n"=>4, "_"=>8, "g"=>10, "e"=>1, "k"=>1, "s"=>1, "y"=>1},
|
207
|
+
"nc"=>{"i"=>17, "a"=>3, "h"=>5, "e"=>34, "o"=>2, "y"=>2},
|
208
|
+
"At"=>{"h"=>1},
|
209
|
+
"Au"=>{"b"=>1, "d"=>7, "g"=>5, "n"=>1, "r"=>6, "s"=>1, "t"=>1},
|
210
|
+
"ub"=>{"r"=>1, "e"=>3, "a"=>1, "i"=>4, "y"=>2},
|
211
|
+
"ud"=>{"i"=>15, "r"=>7, "_"=>5, "d"=>1, "e"=>7, "l"=>1, "s"=>1, "y"=>3, "o"=>2},
|
212
|
+
"ug"=>{"u"=>5, "_"=>1, "l"=>2, "e"=>5, "h"=>2, "o"=>1, "i"=>2},
|
213
|
+
"or"=>{"a"=>48, "e"=>46, "i"=>48, "d"=>17, "l"=>2, "n"=>4, "r"=>19, "t"=>14, "y"=>11, "s"=>4, "c"=>1, "o"=>4, "_"=>15, "g"=>18, "b"=>2, "m"=>4, "f"=>1},
|
214
|
+
"ut"=>{"u"=>1, "a"=>1, "t"=>1, "h"=>7},
|
215
|
+
"um"=>{"n"=>1, "b"=>3, "i"=>3, "_"=>2, "m"=>1, "a"=>1},
|
216
|
+
"mn"=>{"_"=>1},
|
217
|
+
"Av"=>{"a"=>1, "e"=>2, "i"=>1, "r"=>1},
|
218
|
+
"vr"=>{"i"=>1},
|
219
|
+
"Aw"=>{"i"=>1},
|
220
|
+
"wi"=>{"l"=>2, "c"=>1, "n"=>5, "t"=>1, "g"=>3, "s"=>1},
|
221
|
+
"Ay"=>{"a"=>3, "e"=>1},
|
222
|
+
"ak"=>{"o"=>5, "e"=>10, "i"=>11, "a"=>1},
|
223
|
+
"ye"=>{"s"=>4, "_"=>16, "n"=>2, "l"=>4, "t"=>4},
|
224
|
+
"Az"=>{"a"=>1, "u"=>1, "z"=>1},
|
225
|
+
"zu"=>{"c"=>1, "k"=>2, "e"=>1},
|
226
|
+
"uc"=>{"e"=>2, "k"=>2, "_"=>1, "i"=>16, "a"=>1, "r"=>2, "y"=>1},
|
227
|
+
"zz"=>{"i"=>3, "y"=>1, "e"=>1},
|
228
|
+
"zi"=>{"e"=>9, "_"=>2},
|
229
|
+
"_B"=>{"a"=>21, "e"=>72, "i"=>9, "l"=>9, "o"=>16, "r"=>70, "u"=>14, "y"=>1},
|
230
|
+
"Ba"=>{"b"=>2, "i"=>1, "m"=>1, "o"=>1, "r"=>14, "s"=>2},
|
231
|
+
"ao"=>{"_"=>4, "m"=>2, "l"=>1},
|
232
|
+
"rb"=>{"_"=>2, "a"=>2, "e"=>4, "i"=>1, "r"=>1, "y"=>2},
|
233
|
+
"Be"=>{"a"=>7, "b"=>1, "c"=>3, "e"=>1, "l"=>8, "n"=>9, "r"=>22, "s"=>2, "t"=>13, "u"=>2, "v"=>4},
|
234
|
+
"au"=>{"_"=>3, "l"=>11, "n"=>14, "d"=>11, "s"=>3, "r"=>27, "g"=>1},
|
235
|
+
"eb"=>{"e"=>10, "_"=>2, "b"=>6, "i"=>3, "o"=>3, "r"=>4, "a"=>5},
|
236
|
+
"ck"=>{"i"=>13, "y"=>5, "_"=>23, "a"=>5, "e"=>7, "l"=>1, "q"=>1, "s"=>1, "o"=>2},
|
237
|
+
"ky"=>{"_"=>5, "e"=>1},
|
238
|
+
"lk"=>{"i"=>1, "e"=>2, "a"=>1},
|
239
|
+
"ct"=>{"_"=>1, "o"=>4, "a"=>2},
|
240
|
+
"ts"=>{"e"=>1, "y"=>2, "u"=>4},
|
241
|
+
"sy"=>{"_"=>13},
|
242
|
+
"ty"=>{"_"=>21, "a"=>2, "e"=>1, "n"=>2},
|
243
|
+
"eu"=>{"l"=>2, "b"=>1, "s"=>1},
|
244
|
+
"ev"=>{"_"=>1, "e"=>11, "i"=>9, "o"=>5, "a"=>8},
|
245
|
+
"Bi"=>{"a"=>1, "b"=>1, "l"=>5, "r"=>2},
|
246
|
+
"Bl"=>{"a"=>6, "o"=>2, "y"=>1},
|
247
|
+
"ke"=>{"_"=>9, "r"=>3, "l"=>3, "e"=>1, "i"=>1, "n"=>4, "s"=>3, "d"=>1, "t"=>1, "y"=>3},
|
248
|
+
"om"=>{"_"=>3, "e"=>11, "i"=>13, "o"=>4, "y"=>1, "a"=>17, "m"=>4},
|
249
|
+
"yt"=>{"h"=>4, "o"=>1, "_"=>1},
|
250
|
+
"Bo"=>{"_"=>1, "b"=>6, "k"=>1, "n"=>4, "o"=>1, "r"=>1, "y"=>2},
|
251
|
+
"ob"=>{"_"=>3, "b"=>9, "e"=>8, "a"=>1, "l"=>1, "u"=>1, "i"=>5, "t"=>1, "y"=>2, "h"=>1},
|
252
|
+
"ok"=>{"_"=>4, "e"=>2, "s"=>1, "o"=>6},
|
253
|
+
"oo"=>{"k"=>5, "d"=>6, "n"=>2, "s"=>1, "_"=>1},
|
254
|
+
"oy"=>{"c"=>5, "d"=>4, "l"=>2, "_"=>8, "t"=>1, "a"=>4, "e"=>1, "i"=>1},
|
255
|
+
"yd"=>{"_"=>4, "e"=>3, "s"=>1, "a"=>1, "i"=>2, "n"=>1},
|
256
|
+
"Br"=>{"a"=>15, "e"=>13, "i"=>26, "o"=>6, "u"=>4, "y"=>6},
|
257
|
+
"df"=>{"o"=>1},
|
258
|
+
"dl"=>{"e"=>2, "y"=>2},
|
259
|
+
"dg"=>{"e"=>7, "a"=>2},
|
260
|
+
"tn"=>{"e"=>7, "i"=>2, "y"=>1},
|
261
|
+
"oc"=>{"k"=>2, "h"=>5, "e"=>2, "_"=>1, "c"=>2, "i"=>1, "o"=>1},
|
262
|
+
"od"=>{"e"=>7, "i"=>7, "y"=>3, "_"=>10, "a"=>1, "g"=>1, "n"=>1, "o"=>5, "r"=>3, "d"=>1},
|
263
|
+
"nw"=>{"y"=>1, "o"=>2},
|
264
|
+
"wy"=>{"n"=>3, "l"=>1},
|
265
|
+
"ks"=>{"_"=>1, "o"=>1},
|
266
|
+
"ru"=>{"c"=>2, "n"=>4, "z"=>2, "s"=>2, "d"=>7, "e"=>1, "l"=>1, "m"=>1},
|
267
|
+
"yo"=>{"n"=>4, "_"=>1, "k"=>3, "l"=>1},
|
268
|
+
"Bu"=>{"c"=>1, "d"=>2, "e"=>1, "f"=>2, "l"=>2, "n"=>1, "r"=>4, "s"=>1},
|
269
|
+
"uf"=>{"f"=>1, "o"=>1, "e"=>1, "i"=>1, "u"=>1},
|
270
|
+
"ff"=>{"y"=>1, "_"=>2, "o"=>1, "i"=>3, "r"=>3, "e"=>5, "a"=>5},
|
271
|
+
"fy"=>{"_"=>1},
|
272
|
+
"By"=>{"r"=>1},
|
273
|
+
"yr"=>{"o"=>5, "i"=>2, "s"=>1, "u"=>1, "n"=>2, "a"=>4, "l"=>2, "t"=>5, "e"=>3},
|
274
|
+
"_C"=>{"a"=>129, "e"=>21, "h"=>112, "i"=>11, "l"=>49, "o"=>61, "r"=>20, "u"=>3, "y"=>7},
|
275
|
+
"Ca"=>{"i"=>2, "l"=>5, "m"=>10, "n"=>11, "p"=>1, "r"=>68, "s"=>12, "t"=>19, "y"=>1},
|
276
|
+
"tl"=>{"i"=>2, "y"=>3, "e"=>5, "a"=>1, "_"=>1},
|
277
|
+
"ap"=>{"r"=>1, "h"=>3, "l"=>1, "o"=>1},
|
278
|
+
"ot"=>{"a"=>3, "t"=>11, "i"=>2, "h"=>4, "_"=>4},
|
279
|
+
"ln"=>{"_"=>3, "a"=>1, "o"=>1},
|
280
|
+
"hr"=>{"i"=>25, "y"=>4, "e"=>1},
|
281
|
+
"hy"=>{"_"=>6, "l"=>6, "r"=>1},
|
282
|
+
"Ce"=>{"c"=>7, "d"=>2, "l"=>10, "o"=>1, "s"=>1},
|
283
|
+
"ls"=>{"a"=>3, "i"=>6, "e"=>5, "w"=>1, "y"=>1, "o"=>2},
|
284
|
+
"eo"=>{"l"=>5, "_"=>5, "p"=>2, "r"=>17, "t"=>2, "n"=>21, "f"=>2, "m"=>3, "d"=>4},
|
285
|
+
"Ch"=>{"a"=>51, "e"=>25, "i"=>7, "l"=>1, "o"=>1, "r"=>23, "u"=>4},
|
286
|
+
"dw"=>{"i"=>5, "a"=>2},
|
287
|
+
"ek"=>{"o"=>2, "_"=>1, "i"=>3, "a"=>8},
|
288
|
+
"ui"=>{"t"=>5, "s"=>9, "e"=>3, "l"=>4, "_"=>3, "n"=>6, "g"=>1, "d"=>1, "a"=>1},
|
289
|
+
"oe"=>{"_"=>6, "a"=>1, "l"=>8, "s"=>1, "t"=>2, "y"=>1, "m"=>1, "b"=>1},
|
290
|
+
"op"=>{"e"=>3, "h"=>5, "a"=>1, "o"=>1},
|
291
|
+
"pe"=>{"r"=>5, "_"=>6, "h"=>1, "n"=>1},
|
292
|
+
"Ci"=>{"a"=>1, "c"=>1, "e"=>2, "n"=>6, "r"=>1},
|
293
|
+
"Cl"=>{"a"=>26, "e"=>14, "i"=>5, "o"=>3, "y"=>1},
|
294
|
+
"rk"=>{"_"=>4, "e"=>2, "i"=>1, "u"=>1, "l"=>1},
|
295
|
+
"if"=>{"f"=>9, "t"=>1, "a"=>2, "e"=>2, "_"=>1, "r"=>2},
|
296
|
+
"Co"=>{"d"=>2, "l"=>15, "n"=>11, "r"=>31, "u"=>1, "y"=>1},
|
297
|
+
"lu"=>{"m"=>2, "p"=>1, "_"=>2, "s"=>1},
|
298
|
+
"bu"=>{"s"=>1, "k"=>1, "r"=>2},
|
299
|
+
"ep"=>{"c"=>1, "t"=>2, "p"=>2, "h"=>14, "a"=>1},
|
300
|
+
"pc"=>{"i"=>1},
|
301
|
+
"pt"=>{"i"=>1, "e"=>1},
|
302
|
+
"nr"=>{"a"=>1, "i"=>4, "y"=>1, "o"=>1},
|
303
|
+
"az"=>{"o"=>1, "y"=>1, "e"=>1, "m"=>2, "u"=>1, "a"=>1, "i"=>1, "_"=>1},
|
304
|
+
"iu"=>{"s"=>7, "_"=>2},
|
305
|
+
"ez"=>{"_"=>3, "l"=>1},
|
306
|
+
"ou"=>{"r"=>6, "g"=>3, "i"=>6, "s"=>2, "_"=>3, "a"=>2, "e"=>2, "v"=>1, "l"=>1, "n"=>1},
|
307
|
+
"Cr"=>{"a"=>1, "e"=>1, "i"=>14, "u"=>1, "y"=>3},
|
308
|
+
"uz"=>{"_"=>3, "a"=>4, "e"=>1, "i"=>2, "y"=>1},
|
309
|
+
"Cu"=>{"c"=>1, "r"=>2},
|
310
|
+
"Cy"=>{"n"=>3, "r"=>3, "t"=>1},
|
311
|
+
"_D"=>{"a"=>93, "e"=>111, "i"=>27, "o"=>68, "r"=>5, "u"=>9, "w"=>4, "y"=>2},
|
312
|
+
"Da"=>{"c"=>1, "g"=>2, "h"=>1, "i"=>4, "k"=>1, "l"=>6, "m"=>5, "n"=>31, "p"=>2, "r"=>29, "v"=>5, "w"=>3, "y"=>3},
|
313
|
+
"gm"=>{"a"=>1},
|
314
|
+
"hn"=>{"e"=>3, "_"=>2, "a"=>4, "i"=>2, "n"=>3, "s"=>2},
|
315
|
+
"cy"=>{"_"=>12},
|
316
|
+
"rw"=>{"i"=>3, "o"=>1},
|
317
|
+
"av"=>{"e"=>10, "i"=>15, "o"=>11, "a"=>4},
|
318
|
+
"aw"=>{"n"=>18, "a"=>9, "e"=>1, "r"=>1},
|
319
|
+
"wn"=>{"_"=>6, "a"=>4, "e"=>2, "d"=>2, "n"=>1, "t"=>1, "y"=>2},
|
320
|
+
"De"=>{"a"=>11, "b"=>12, "d"=>2, "e"=>7, "i"=>3, "j"=>1, "l"=>31, "m"=>5, "n"=>16, "o"=>2, "r"=>3, "s"=>8, "t"=>1, "v"=>5, "w"=>3, "x"=>1},
|
321
|
+
"bo"=>{"r"=>3, "n"=>3},
|
322
|
+
"oa"=>{"h"=>2, "_"=>1, "n"=>9, "q"=>2},
|
323
|
+
"lc"=>{"i"=>2, "e"=>1, "o"=>2},
|
324
|
+
"fi"=>{"n"=>6, "e"=>3, "r"=>1, "a"=>2, "l"=>1},
|
325
|
+
"cu"=>{"s"=>2},
|
326
|
+
"nv"=>{"e"=>1, "i"=>1},
|
327
|
+
"sm"=>{"o"=>2, "e"=>1, "a"=>1, "i"=>4},
|
328
|
+
"sp"=>{"i"=>1, "e"=>3, "h"=>2},
|
329
|
+
"vo"=>{"n"=>17, "r"=>4, "_"=>1},
|
330
|
+
"we"=>{"y"=>1, "n"=>6, "l"=>4, "r"=>1},
|
331
|
+
"xt"=>{"e"=>1, "a"=>1},
|
332
|
+
"Di"=>{"a"=>8, "c"=>1, "e"=>4, "g"=>1, "l"=>1, "m"=>1, "n"=>4, "o"=>4, "r"=>1, "v"=>1, "x"=>1},
|
333
|
+
"go"=>{"_"=>6, "r"=>4, "t"=>1, "c"=>1, "b"=>1},
|
334
|
+
"pl"=>{"e"=>3},
|
335
|
+
"iv"=>{"i"=>9, "e"=>4, "a"=>4, "k"=>1},
|
336
|
+
"Do"=>{"d"=>1, "l"=>4, "m"=>11, "n"=>18, "r"=>26, "t"=>3, "u"=>3, "v"=>1, "y"=>1},
|
337
|
+
"nq"=>{"u"=>1},
|
338
|
+
"ov"=>{"a"=>6, "i"=>4, "e"=>6},
|
339
|
+
"Dr"=>{"e"=>3, "u"=>2},
|
340
|
+
"Du"=>{"a"=>1, "d"=>1, "l"=>2, "n"=>2, "s"=>3},
|
341
|
+
"ua"=>{"n"=>20, "r"=>3, "d"=>1, "l"=>4, "_"=>2},
|
342
|
+
"Dw"=>{"a"=>3, "i"=>1},
|
343
|
+
"Dy"=>{"a"=>1, "l"=>1},
|
344
|
+
"_E"=>{"a"=>11, "b"=>3, "c"=>1, "d"=>25, "f"=>3, "h"=>1, "i"=>2, "l"=>99, "m"=>28, "n"=>9, "p"=>1, "r"=>27, "s"=>13, "t"=>9, "u"=>16, "v"=>21, "w"=>1, "x"=>1, "z"=>3},
|
345
|
+
"Ea"=>{"r"=>10, "s"=>1},
|
346
|
+
"Eb"=>{"o"=>3},
|
347
|
+
"Ec"=>{"h"=>1},
|
348
|
+
"Ed"=>{"_"=>1, "a"=>1, "d"=>3, "e"=>2, "g"=>2, "i"=>3, "m"=>3, "n"=>1, "r"=>2, "u"=>1, "w"=>4, "y"=>2},
|
349
|
+
"dm"=>{"o"=>1, "u"=>2},
|
350
|
+
"mu"=>{"n"=>3, "e"=>2, "l"=>1, "a"=>1},
|
351
|
+
"dn"=>{"a"=>1, "e"=>3},
|
352
|
+
"Ef"=>{"f"=>1, "r"=>2},
|
353
|
+
"Eh"=>{"t"=>1},
|
354
|
+
"Ei"=>{"l"=>2},
|
355
|
+
"El"=>{"a"=>8, "b"=>2, "d"=>5, "e"=>13, "f"=>3, "i"=>24, "k"=>1, "l"=>13, "m"=>4, "n"=>2, "o"=>6, "r"=>1, "s"=>4, "t"=>1, "v"=>8, "w"=>2, "y"=>1, "z"=>1},
|
356
|
+
"ij"=>{"a"=>2, "u"=>1},
|
357
|
+
"zb"=>{"e"=>2},
|
358
|
+
"ze"=>{"b"=>1, "k"=>1, "q"=>1, "l"=>7, "t"=>5},
|
359
|
+
"sw"=>{"o"=>1, "a"=>1},
|
360
|
+
"wo"=>{"r"=>1, "o"=>5},
|
361
|
+
"lr"=>{"o"=>1, "i"=>2},
|
362
|
+
"lw"=>{"a"=>1, "o"=>1},
|
363
|
+
"lz"=>{"a"=>1},
|
364
|
+
"Em"=>{"a"=>2, "e"=>9, "i"=>8, "m"=>7, "o"=>2},
|
365
|
+
"og"=>{"e"=>4, "a"=>1},
|
366
|
+
"En"=>{"a"=>1, "d"=>1, "e"=>2, "i"=>1, "o"=>2, "r"=>2},
|
367
|
+
"Ep"=>{"i"=>1},
|
368
|
+
"fa"=>{"n"=>13, "_"=>2, "l"=>1, "e"=>2},
|
369
|
+
"Er"=>{"a"=>2, "i"=>9, "l"=>3, "m"=>3, "n"=>6, "r"=>1, "v"=>1, "w"=>1, "y"=>1},
|
370
|
+
"Es"=>{"m"=>1, "p"=>1, "s"=>1, "t"=>10},
|
371
|
+
"ef"=>{"a"=>7, "f"=>8, "e"=>1, "_"=>1, "i"=>2, "u"=>2},
|
372
|
+
"Et"=>{"h"=>6, "s"=>1, "t"=>2},
|
373
|
+
"uk"=>{"o"=>8, "e"=>1, "_"=>2, "i"=>2},
|
374
|
+
"Eu"=>{"f"=>1, "g"=>5, "l"=>3, "n"=>3, "r"=>1, "s"=>3},
|
375
|
+
"fe"=>{"m"=>1, "r"=>9, "l"=>1},
|
376
|
+
"Ev"=>{"a"=>5, "e"=>11, "i"=>3, "o"=>2},
|
377
|
+
"Ew"=>{"a"=>1},
|
378
|
+
"Ex"=>{"i"=>1},
|
379
|
+
"Ez"=>{"e"=>2, "r"=>1},
|
380
|
+
"eq"=>{"u"=>2},
|
381
|
+
"zr"=>{"a"=>1},
|
382
|
+
"_F"=>{"a"=>19, "e"=>23, "i"=>6, "l"=>22, "o"=>4, "r"=>38, "u"=>1},
|
383
|
+
"Fa"=>{"b"=>2, "e"=>1, "i"=>2, "l"=>1, "n"=>2, "r"=>2, "t"=>2, "u"=>3, "v"=>1, "w"=>1, "y"=>2},
|
384
|
+
"Fe"=>{"_"=>1, "d"=>1, "l"=>13, "r"=>8},
|
385
|
+
"co"=>{"_"=>6, "i"=>1, "b"=>1, "l"=>10, "m"=>1, "s"=>1, "e"=>1, "t"=>4, "r"=>1},
|
386
|
+
"Fi"=>{"d"=>3, "l"=>2, "o"=>1},
|
387
|
+
"Fl"=>{"a"=>1, "e"=>2, "o"=>19},
|
388
|
+
"tc"=>{"h"=>5},
|
389
|
+
"Fo"=>{"n"=>1, "r"=>2, "s"=>1},
|
390
|
+
"Fr"=>{"a"=>19, "e"=>16, "i"=>3},
|
391
|
+
"sc"=>{"a"=>5, "o"=>3, "h"=>2, "i"=>2},
|
392
|
+
"nk"=>{"_"=>2, "i"=>2, "l"=>2, "o"=>1},
|
393
|
+
"kl"=>{"i"=>1, "y"=>2, "e"=>1},
|
394
|
+
"tz"=>{"_"=>1, "a"=>1, "i"=>2},
|
395
|
+
"Fu"=>{"m"=>1},
|
396
|
+
"_G"=>{"a"=>29, "e"=>51, "h"=>1, "i"=>24, "l"=>16, "o"=>5, "r"=>23, "u"=>8, "w"=>6},
|
397
|
+
"Ga"=>{"b"=>5, "i"=>1, "l"=>4, "r"=>9, "s"=>1, "v"=>1, "y"=>8},
|
398
|
+
"rf"=>{"i"=>2},
|
399
|
+
"Ge"=>{"a"=>1, "m"=>2, "n"=>14, "o"=>16, "r"=>18},
|
400
|
+
"of"=>{"f"=>1, "e"=>1, "i"=>3},
|
401
|
+
"Gh"=>{"i"=>1},
|
402
|
+
"Gi"=>{"a"=>2, "d"=>1, "g"=>1, "l"=>7, "n"=>5, "o"=>2, "s"=>3, "t"=>1, "u"=>2},
|
403
|
+
"pp"=>{"e"=>1, "i"=>1},
|
404
|
+
"Gl"=>{"a"=>4, "e"=>7, "i"=>1, "o"=>2, "y"=>2},
|
405
|
+
"ds"=>{"_"=>1, "o"=>1, "a"=>2, "e"=>2, "y"=>1},
|
406
|
+
"Go"=>{"l"=>3, "n"=>1, "r"=>1},
|
407
|
+
"Gr"=>{"a"=>11, "e"=>8, "i"=>3, "o"=>1},
|
408
|
+
"zy"=>{"n"=>1, "_"=>2},
|
409
|
+
"gg"=>{"_"=>1, "i"=>3, "a"=>1, "y"=>1},
|
410
|
+
"Gu"=>{"a"=>1, "d"=>1, "i"=>2, "s"=>3, "y"=>1},
|
411
|
+
"up"=>{"e"=>3, "i"=>1},
|
412
|
+
"uy"=>{"_"=>2, "e"=>3},
|
413
|
+
"Gw"=>{"e"=>4, "y"=>2},
|
414
|
+
"_H"=>{"a"=>38, "e"=>36, "i"=>17, "o"=>20, "s"=>1, "u"=>11, "w"=>1, "y"=>6},
|
415
|
+
"Ha"=>{"_"=>1, "e"=>1, "i"=>2, "l"=>5, "n"=>9, "r"=>12, "s"=>2, "t"=>1, "y"=>4, "z"=>1},
|
416
|
+
"yw"=>{"o"=>1},
|
417
|
+
"He"=>{"a"=>2, "c"=>1, "d"=>2, "e"=>1, "i"=>4, "l"=>6, "n"=>3, "r"=>15, "s"=>1, "t"=>1},
|
418
|
+
"lg"=>{"a"=>2},
|
419
|
+
"Hi"=>{"e"=>2, "l"=>11, "p"=>1, "r"=>2, "s"=>1},
|
420
|
+
"Ho"=>{"a"=>1, "b"=>1, "l"=>5, "m"=>1, "n"=>2, "p"=>1, "r"=>5, "s"=>1, "u"=>1, "w"=>1, "y"=>1},
|
421
|
+
"ow"=>{"a"=>2, "e"=>2, "_"=>2},
|
422
|
+
"Hs"=>{"i"=>1},
|
423
|
+
"Hu"=>{"b"=>1, "e"=>2, "g"=>2, "i"=>1, "l"=>1, "m"=>1, "n"=>2, "o"=>1},
|
424
|
+
"uo"=>{"n"=>3, "i"=>1},
|
425
|
+
"Hw"=>{"a"=>1},
|
426
|
+
"Hy"=>{"a"=>1, "e"=>1, "m"=>1, "o"=>2, "u"=>1},
|
427
|
+
"ym"=>{"a"=>2, "e"=>2, "i"=>1, "_"=>1, "b"=>1, "p"=>1, "o"=>4, "u"=>1},
|
428
|
+
"yu"=>{"n"=>3},
|
429
|
+
"_I"=>{"a"=>1, "d"=>4, "e"=>1, "g"=>2, "k"=>1, "l"=>11, "m"=>3, "n"=>13, "o"=>3, "r"=>12, "s"=>20, "v"=>9, "z"=>2},
|
430
|
+
"Ia"=>{"n"=>1},
|
431
|
+
"Id"=>{"a"=>2, "e"=>2},
|
432
|
+
"Ie"=>{"s"=>1},
|
433
|
+
"Ig"=>{"n"=>2},
|
434
|
+
"Ik"=>{"e"=>1},
|
435
|
+
"Il"=>{"a"=>2, "d"=>1, "e"=>3, "i"=>1, "l"=>1, "o"=>1, "s"=>1, "u"=>1},
|
436
|
+
"Im"=>{"a"=>1, "e"=>1, "o"=>1},
|
437
|
+
"In"=>{"_"=>1, "a"=>1, "d"=>2, "e"=>3, "g"=>5, "o"=>1},
|
438
|
+
"Io"=>{"l"=>1, "n"=>2},
|
439
|
+
"Ir"=>{"a"=>2, "e"=>2, "i"=>3, "m"=>2, "v"=>2, "w"=>1},
|
440
|
+
"mg"=>{"a"=>1},
|
441
|
+
"Is"=>{"a"=>10, "e"=>1, "i"=>4, "m"=>1, "o"=>1, "r"=>2, "s"=>1},
|
442
|
+
"aa"=>{"c"=>1, "l"=>1},
|
443
|
+
"sr"=>{"a"=>1, "e"=>1},
|
444
|
+
"Iv"=>{"a"=>3, "e"=>3, "o"=>2, "y"=>1},
|
445
|
+
"vy"=>{"_"=>1},
|
446
|
+
"Iz"=>{"e"=>1, "o"=>1},
|
447
|
+
"_J"=>{"a"=>114, "c"=>1, "e"=>90, "i"=>9, "o"=>92, "u"=>42},
|
448
|
+
"Ja"=>{"_"=>1, "c"=>29, "d"=>3, "e"=>1, "i"=>3, "k"=>1, "l"=>2, "m"=>15, "n"=>36, "q"=>2, "r"=>6, "s"=>4, "u"=>1, "v"=>1, "y"=>7, "z"=>2},
|
449
|
+
"kq"=>{"u"=>1},
|
450
|
+
"cl"=>{"y"=>1},
|
451
|
+
"cq"=>{"u"=>15},
|
452
|
+
"aq"=>{"u"=>9},
|
453
|
+
"zm"=>{"i"=>2},
|
454
|
+
"Jc"=>{"_"=>1},
|
455
|
+
"Je"=>{"a"=>18, "d"=>1, "f"=>7, "n"=>25, "r"=>21, "s"=>14, "t"=>2, "w"=>2},
|
456
|
+
"Ji"=>{"_"=>1, "l"=>2, "m"=>3, "n"=>3},
|
457
|
+
"Jo"=>{"_"=>1, "a"=>10, "c"=>1, "d"=>4, "e"=>10, "h"=>15, "i"=>2, "l"=>7, "n"=>14, "r"=>3, "s"=>18, "v"=>2, "y"=>5},
|
458
|
+
"oh"=>{"a"=>6, "n"=>12, "e"=>1, "_"=>1},
|
459
|
+
"eh"=>{"_"=>1},
|
460
|
+
"Ju"=>{"a"=>3, "d"=>6, "l"=>22, "n"=>6, "s"=>4, "t"=>1},
|
461
|
+
"_K"=>{"a"=>117, "e"=>58, "h"=>2, "i"=>37, "l"=>1, "o"=>5, "r"=>28, "u"=>3, "y"=>10},
|
462
|
+
"Ka"=>{"_"=>1, "c"=>4, "i"=>4, "l"=>6, "m"=>4, "n"=>8, "r"=>35, "s"=>7, "t"=>38, "y"=>9, "z"=>1},
|
463
|
+
"Ke"=>{"c"=>1, "e"=>5, "i"=>6, "l"=>12, "m"=>1, "n"=>19, "r"=>8, "s"=>2, "t"=>1, "v"=>3},
|
464
|
+
"Kh"=>{"a"=>2},
|
465
|
+
"Ki"=>{"a"=>3, "e"=>4, "l"=>1, "m"=>12, "n"=>3, "p"=>1, "r"=>6, "s"=>1, "t"=>3, "y"=>1, "z"=>2},
|
466
|
+
"iy"=>{"o"=>2},
|
467
|
+
"Kl"=>{"a"=>1},
|
468
|
+
"Ko"=>{"r"=>4, "u"=>1},
|
469
|
+
"Kr"=>{"a"=>1, "i"=>20, "y"=>7},
|
470
|
+
"Ku"=>{"m"=>1, "r"=>2},
|
471
|
+
"Ky"=>{"l"=>4, "m"=>2, "o"=>2, "r"=>1, "u"=>1},
|
472
|
+
"_L"=>{"a"=>136, "e"=>90, "i"=>65, "l"=>1, "o"=>71, "u"=>46, "y"=>21},
|
473
|
+
"La"=>{"c"=>6, "d"=>3, "e"=>1, "h"=>1, "i"=>3, "j"=>1, "k"=>10, "l"=>1, "m"=>3, "n"=>15, "q"=>2, "r"=>12, "s"=>14, "t"=>19, "u"=>19, "v"=>18, "w"=>5, "y"=>2, "z"=>1},
|
474
|
+
"cr"=>{"e"=>3, "u"=>1},
|
475
|
+
"aj"=>{"u"=>2, "o"=>2, "a"=>1},
|
476
|
+
"ju"=>{"a"=>5},
|
477
|
+
"rh"=>{"o"=>1, "t"=>1},
|
478
|
+
"yi"=>{"a"=>1, "s"=>1},
|
479
|
+
"wr"=>{"e"=>1},
|
480
|
+
"Le"=>{"_"=>1, "a"=>12, "c"=>1, "d"=>1, "e"=>6, "i"=>10, "k"=>1, "l"=>4, "m"=>1, "n"=>9, "o"=>21, "r"=>2, "s"=>10, "t"=>7, "v"=>1, "w"=>1, "x"=>1, "z"=>1},
|
481
|
+
"zl"=>{"i"=>1},
|
482
|
+
"Li"=>{"_"=>1, "a"=>4, "b"=>4, "d"=>2, "e"=>2, "g"=>1, "l"=>14, "n"=>17, "o"=>1, "s"=>9, "t"=>1, "v"=>1, "z"=>8},
|
483
|
+
"sb"=>{"e"=>1},
|
484
|
+
"Ll"=>{"o"=>1},
|
485
|
+
"Lo"=>{"a"=>1, "g"=>1, "i"=>3, "l"=>2, "m"=>1, "n"=>8, "r"=>34, "t"=>1, "u"=>13, "v"=>4, "w"=>1, "y"=>2},
|
486
|
+
"uv"=>{"e"=>2},
|
487
|
+
"Lu"=>{"_"=>1, "a"=>4, "b"=>1, "c"=>19, "d"=>2, "e"=>3, "i"=>4, "k"=>1, "l"=>2, "n"=>1, "p"=>2, "r"=>3, "t"=>1, "v"=>1, "z"=>1},
|
488
|
+
"Ly"=>{"d"=>2, "l"=>2, "m"=>1, "n"=>16},
|
489
|
+
"_M"=>{"a"=>284, "c"=>2, "e"=>64, "i"=>86, "o"=>31, "u"=>4, "y"=>16},
|
490
|
+
"Ma"=>{"_"=>1, "b"=>3, "c"=>6, "d"=>14, "e"=>2, "f"=>1, "g"=>11, "h"=>1, "i"=>8, "j"=>2, "k"=>1, "l"=>14, "m"=>2, "n"=>11, "o"=>1, "p"=>1, "r"=>166, "s"=>2, "t"=>9, "u"=>10, "v"=>1, "x"=>7, "y"=>9, "z"=>1},
|
491
|
+
"bl"=>{"e"=>3, "o"=>1},
|
492
|
+
"af"=>{"a"=>3, "i"=>1},
|
493
|
+
"gd"=>{"a"=>5},
|
494
|
+
"jo"=>{"r"=>4, "_"=>1},
|
495
|
+
"gy"=>{"_"=>2},
|
496
|
+
"rj"=>{"o"=>2},
|
497
|
+
"ku"=>{"s"=>1},
|
498
|
+
"rq"=>{"u"=>5},
|
499
|
+
"rx"=>{"_"=>1},
|
500
|
+
"yb"=>{"e"=>4, "i"=>1, "l"=>1},
|
501
|
+
"yj"=>{"a"=>1, "o"=>1},
|
502
|
+
"ax"=>{"_"=>1, "i"=>5, "w"=>1},
|
503
|
+
"xw"=>{"e"=>1},
|
504
|
+
"Mc"=>{"k"=>2},
|
505
|
+
"nl"=>{"e"=>2},
|
506
|
+
"Me"=>{"a"=>2, "c"=>1, "d"=>1, "e"=>1, "g"=>5, "i"=>1, "l"=>29, "n"=>1, "r"=>22, "t"=>1},
|
507
|
+
"Mi"=>{"_"=>1, "a"=>1, "c"=>20, "e"=>1, "g"=>4, "k"=>6, "l"=>15, "m"=>1, "n"=>11, "q"=>1, "r"=>10, "s"=>6, "t"=>8, "y"=>1},
|
508
|
+
"kk"=>{"i"=>4},
|
509
|
+
"Mo"=>{"d"=>2, "h"=>3, "i"=>2, "l"=>2, "n"=>10, "o"=>1, "r"=>5, "s"=>3, "z"=>3},
|
510
|
+
"oz"=>{"e"=>4, "a"=>1},
|
511
|
+
"Mu"=>{"i"=>1, "o"=>1, "r"=>2},
|
512
|
+
"My"=>{"_"=>1, "e"=>1, "l"=>1, "o"=>1, "r"=>11, "u"=>1},
|
513
|
+
"_N"=>{"a"=>39, "e"=>31, "g"=>4, "i"=>36, "o"=>28, "u"=>3, "y"=>2},
|
514
|
+
"Na"=>{"_"=>1, "d"=>4, "i"=>1, "k"=>4, "m"=>1, "n"=>10, "o"=>2, "p"=>1, "r"=>1, "t"=>14},
|
515
|
+
"Ne"=>{"a"=>1, "c"=>1, "d"=>3, "e"=>1, "i"=>2, "l"=>9, "n"=>2, "o"=>2, "r"=>3, "s"=>1, "t"=>2, "v"=>3, "w"=>1},
|
516
|
+
"wt"=>{"o"=>1},
|
517
|
+
"Ng"=>{"a"=>2, "o"=>1, "u"=>1},
|
518
|
+
"Ni"=>{"a"=>1, "c"=>18, "d"=>2, "e"=>2, "g"=>1, "k"=>5, "l"=>3, "n"=>2, "s"=>1, "t"=>1},
|
519
|
+
"nf"=>{"a"=>1, "o"=>3, "r"=>1},
|
520
|
+
"No"=>{"a"=>1, "b"=>2, "e"=>6, "h"=>1, "l"=>2, "m"=>1, "n"=>1, "r"=>12, "v"=>2},
|
521
|
+
"Nu"=>{"_"=>1, "b"=>1, "m"=>1},
|
522
|
+
"Ny"=>{"d"=>1, "l"=>1},
|
523
|
+
"_O"=>{"b"=>1, "c"=>3, "d"=>7, "f"=>1, "k"=>1, "l"=>15, "m"=>4, "n"=>4, "p"=>2, "r"=>9, "s"=>4, "t"=>5, "u"=>1, "w"=>1, "z"=>3},
|
524
|
+
"Ob"=>{"d"=>1},
|
525
|
+
"Oc"=>{"i"=>1, "t"=>2},
|
526
|
+
"Od"=>{"a"=>1, "e"=>4, "i"=>2},
|
527
|
+
"Of"=>{"e"=>1},
|
528
|
+
"Ok"=>{"_"=>1},
|
529
|
+
"Ol"=>{"a"=>1, "e"=>4, "g"=>1, "i"=>7, "l"=>1, "y"=>1},
|
530
|
+
"Om"=>{"a"=>2, "e"=>2},
|
531
|
+
"On"=>{"a"=>1, "e"=>1, "i"=>2},
|
532
|
+
"Op"=>{"a"=>1, "h"=>1},
|
533
|
+
"Or"=>{"a"=>3, "e"=>2, "l"=>1, "p"=>1, "v"=>2},
|
534
|
+
"rp"=>{"h"=>1},
|
535
|
+
"Os"=>{"c"=>1, "s"=>1, "v"=>1, "w"=>1},
|
536
|
+
"sv"=>{"a"=>1},
|
537
|
+
"Ot"=>{"e"=>1, "h"=>1, "i"=>2, "t"=>1},
|
538
|
+
"Ou"=>{"i"=>1},
|
539
|
+
"Ow"=>{"e"=>1},
|
540
|
+
"Oz"=>{"e"=>2, "i"=>1},
|
541
|
+
"_P"=>{"a"=>44, "e"=>24, "h"=>13, "i"=>7, "o"=>7, "r"=>9, "u"=>1},
|
542
|
+
"Pa"=>{"_"=>1, "b"=>1, "g"=>1, "i"=>1, "l"=>3, "m"=>7, "n"=>2, "o"=>1, "r"=>4, "s"=>2, "t"=>12, "u"=>8, "z"=>1},
|
543
|
+
"sq"=>{"u"=>1},
|
544
|
+
"Pe"=>{"a"=>6, "d"=>1, "g"=>3, "i"=>1, "n"=>5, "r"=>3, "t"=>5},
|
545
|
+
"Ph"=>{"e"=>1, "i"=>5, "o"=>1, "u"=>2, "y"=>4},
|
546
|
+
"Pi"=>{"a"=>1, "e"=>2, "l"=>1, "n"=>2, "p"=>1},
|
547
|
+
"Po"=>{"k"=>1, "l"=>1, "r"=>5},
|
548
|
+
"Pr"=>{"e"=>2, "i"=>5, "o"=>1, "u"=>1},
|
549
|
+
"Pu"=>{"r"=>1},
|
550
|
+
"_Q"=>{"i"=>1, "u"=>9},
|
551
|
+
"Qi"=>{"a"=>1},
|
552
|
+
"Qu"=>{"e"=>3, "i"=>5, "y"=>1},
|
553
|
+
"_R"=>{"a"=>49, "e"=>58, "h"=>7, "i"=>22, "o"=>113, "u"=>23, "y"=>2},
|
554
|
+
"Ra"=>{"c"=>8, "e"=>3, "f"=>2, "g"=>1, "i"=>2, "l"=>2, "m"=>4, "n"=>11, "p"=>1, "q"=>1, "s"=>3, "u"=>1, "v"=>1, "y"=>9},
|
555
|
+
"yf"=>{"o"=>1},
|
556
|
+
"Re"=>{"a"=>4, "b"=>7, "d"=>1, "e"=>2, "f"=>2, "g"=>8, "i"=>5, "m"=>3, "n"=>14, "s"=>1, "t"=>3, "u"=>1, "v"=>1, "x"=>1, "y"=>5},
|
557
|
+
"cc"=>{"a"=>3, "o"=>1},
|
558
|
+
"fu"=>{"g"=>2, "s"=>1},
|
559
|
+
"Rh"=>{"e"=>3, "i"=>1, "o"=>3},
|
560
|
+
"Ri"=>{"a"=>1, "c"=>12, "g"=>1, "k"=>1, "l"=>1, "m"=>1, "n"=>1, "s"=>1, "t"=>1, "v"=>2},
|
561
|
+
"vk"=>{"a"=>1},
|
562
|
+
"Ro"=>{"b"=>13, "c"=>6, "d"=>7, "g"=>2, "l"=>6, "m"=>7, "n"=>9, "o"=>1, "r"=>1, "s"=>48, "w"=>1, "x"=>7, "y"=>3, "z"=>2},
|
563
|
+
"bt"=>{"_"=>1},
|
564
|
+
"ox"=>{"a"=>5, "i"=>1, "y"=>1},
|
565
|
+
"xy"=>{"_"=>1},
|
566
|
+
"Ru"=>{"b"=>6, "d"=>3, "e"=>1, "f"=>2, "p"=>1, "s"=>4, "t"=>6},
|
567
|
+
"Ry"=>{"a"=>2},
|
568
|
+
"_S"=>{"a"=>61, "c"=>6, "e"=>21, "h"=>164, "i"=>21, "k"=>1, "l"=>1, "o"=>24, "p"=>3, "t"=>40, "u"=>32, "v"=>1, "y"=>8},
|
569
|
+
"Sa"=>{"b"=>4, "c"=>2, "d"=>3, "g"=>1, "l"=>9, "m"=>10, "n"=>18, "r"=>7, "s"=>1, "t"=>1, "u"=>3, "v"=>2},
|
570
|
+
"Sc"=>{"a"=>2, "o"=>4},
|
571
|
+
"Se"=>{"a"=>2, "b"=>2, "e"=>2, "l"=>4, "n"=>2, "p"=>1, "r"=>5, "t"=>2, "y"=>1},
|
572
|
+
"Sh"=>{"a"=>89, "e"=>52, "i"=>14, "o"=>7, "u"=>1, "y"=>1},
|
573
|
+
"Si"=>{"b"=>1, "d"=>2, "e"=>1, "g"=>2, "l"=>4, "m"=>5, "n"=>2, "o"=>1, "r"=>1, "u"=>1, "x"=>1},
|
574
|
+
"bh"=>{"a"=>1},
|
575
|
+
"Sk"=>{"y"=>1},
|
576
|
+
"Sl"=>{"y"=>1},
|
577
|
+
"yv"=>{"i"=>1},
|
578
|
+
"So"=>{"_"=>1, "c"=>1, "f"=>1, "i"=>1, "l"=>4, "m"=>2, "n"=>8, "o"=>3, "p"=>2, "r"=>1},
|
579
|
+
"Sp"=>{"a"=>1, "e"=>1, "r"=>1},
|
580
|
+
"St"=>{"a"=>14, "e"=>24, "o"=>1, "u"=>1},
|
581
|
+
"Su"=>{"_"=>1, "a"=>1, "d"=>1, "e"=>3, "k"=>1, "l"=>1, "m"=>2, "n"=>6, "s"=>8, "z"=>8},
|
582
|
+
"Sv"=>{"e"=>1},
|
583
|
+
"Sy"=>{"b"=>2, "d"=>1, "l"=>3, "n"=>1, "r"=>1},
|
584
|
+
"_T"=>{"a"=>75, "e"=>44, "h"=>28, "i"=>28, "o"=>43, "r"=>34, "u"=>4, "w"=>5, "y"=>11},
|
585
|
+
"Ta"=>{"_"=>1, "b"=>3, "d"=>1, "i"=>3, "j"=>1, "k"=>2, "l"=>3, "m"=>25, "n"=>13, "r"=>7, "s"=>4, "t"=>3, "u"=>1, "w"=>6, "y"=>2},
|
586
|
+
"mr"=>{"a"=>1},
|
587
|
+
"Te"=>{"d"=>2, "e"=>1, "g"=>1, "i"=>1, "l"=>1, "m"=>4, "n"=>5, "o"=>3, "q"=>1, "r"=>21, "s"=>4},
|
588
|
+
"Th"=>{"a"=>5, "e"=>13, "i"=>1, "o"=>5, "r"=>1, "u"=>3},
|
589
|
+
"Ti"=>{"a"=>4, "e"=>4, "f"=>6, "j"=>1, "l"=>2, "m"=>4, "n"=>3, "s"=>3, "t"=>1},
|
590
|
+
"To"=>{"b"=>4, "c"=>1, "d"=>2, "i"=>1, "m"=>11, "n"=>12, "r"=>6, "s"=>3, "v"=>1, "w"=>1, "y"=>1},
|
591
|
+
"Tr"=>{"a"=>8, "e"=>11, "i"=>9, "o"=>1, "u"=>5},
|
592
|
+
"Tu"=>{"_"=>1, "a"=>1, "l"=>1, "y"=>1},
|
593
|
+
"Tw"=>{"a"=>3, "i"=>1, "y"=>1},
|
594
|
+
"Ty"=>{"_"=>1, "e"=>1, "i"=>1, "l"=>1, "n"=>1, "r"=>5, "s"=>1},
|
595
|
+
"_U"=>{"l"=>3, "n"=>2, "r"=>1, "s"=>1, "t"=>1},
|
596
|
+
"Ul"=>{"a"=>1, "r"=>1, "y"=>1},
|
597
|
+
"Un"=>{"_"=>1, "a"=>1},
|
598
|
+
"Ur"=>{"s"=>1},
|
599
|
+
"Us"=>{"h"=>1},
|
600
|
+
"Ut"=>{"e"=>1},
|
601
|
+
"_V"=>{"a"=>30, "e"=>42, "i"=>39, "o"=>4},
|
602
|
+
"Va"=>{"d"=>1, "l"=>15, "n"=>11, "s"=>2, "u"=>1},
|
603
|
+
"Ve"=>{"d"=>1, "l"=>6, "n"=>7, "o"=>1, "r"=>25, "s"=>1, "t"=>1},
|
604
|
+
"Vi"=>{"_"=>1, "c"=>9, "d"=>1, "k"=>2, "l"=>1, "n"=>7, "o"=>4, "r"=>6, "t"=>2, "v"=>6},
|
605
|
+
"Vo"=>{"n"=>4},
|
606
|
+
"_W"=>{"a"=>20, "e"=>13, "h"=>2, "i"=>41, "m"=>1, "o"=>2, "y"=>3},
|
607
|
+
"Wa"=>{"d"=>1, "i"=>1, "l"=>7, "n"=>5, "r"=>3, "v"=>1, "y"=>2},
|
608
|
+
"We"=>{"i"=>1, "l"=>1, "n"=>7, "r"=>1, "s"=>3},
|
609
|
+
"Wh"=>{"i"=>2},
|
610
|
+
"Wi"=>{"l"=>32, "n"=>9},
|
611
|
+
"lh"=>{"e"=>2},
|
612
|
+
"ms"=>{"_"=>1},
|
613
|
+
"Wm"=>{"_"=>1},
|
614
|
+
"Wo"=>{"n"=>1, "o"=>1},
|
615
|
+
"Wy"=>{"a"=>1, "n"=>2},
|
616
|
+
"_X"=>{"a"=>1, "e"=>1, "i"=>2, "o"=>1, "u"=>1},
|
617
|
+
"Xa"=>{"v"=>1},
|
618
|
+
"Xe"=>{"n"=>1},
|
619
|
+
"Xi"=>{"a"=>1, "o"=>1},
|
620
|
+
"Xo"=>{"c"=>1},
|
621
|
+
"Xu"=>{"a"=>1},
|
622
|
+
"_Y"=>{"a"=>11, "e"=>8, "i"=>2, "o"=>11, "u"=>12, "v"=>3},
|
623
|
+
"Ya"=>{"d"=>1, "e"=>2, "h"=>1, "j"=>1, "n"=>3, "s"=>3},
|
624
|
+
"Ye"=>{"e"=>1, "l"=>1, "n"=>1, "r"=>1, "s"=>2, "t"=>1, "v"=>1},
|
625
|
+
"Yi"=>{"_"=>1, "n"=>1},
|
626
|
+
"Yo"=>{"k"=>1, "l"=>4, "n"=>2, "s"=>2, "u"=>2},
|
627
|
+
"Yu"=>{"_"=>1, "e"=>1, "k"=>4, "l"=>1, "n"=>2, "o"=>1, "r"=>2},
|
628
|
+
"Yv"=>{"e"=>1, "o"=>2},
|
629
|
+
"_Z"=>{"a"=>10, "e"=>8, "i"=>2, "o"=>8, "u"=>3},
|
630
|
+
"Za"=>{"c"=>5, "d"=>1, "i"=>1, "n"=>3},
|
631
|
+
"Ze"=>{"l"=>3, "n"=>4, "t"=>1},
|
632
|
+
"Zi"=>{"n"=>1, "t"=>1},
|
633
|
+
"Zo"=>{"e"=>1, "f"=>1, "i"=>1, "l"=>1, "n"=>2, "r"=>2},
|
634
|
+
"Zu"=>{"l"=>3}}
|
data/lib/game.rb
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
require_relative "./messages"
|
2
|
+
|
3
|
+
class Game
|
4
|
+
attr_reader :stream, :in_progress
|
5
|
+
|
6
|
+
def initialize home, away, prng
|
7
|
+
@stream = [Messages.StartOfGame(to_s)]
|
8
|
+
@in_progress = true
|
9
|
+
@home, @away, @prng = [home, away, prng]
|
10
|
+
@score = {
|
11
|
+
:home => 0,
|
12
|
+
:away => 0
|
13
|
+
}
|
14
|
+
@actions = 0
|
15
|
+
@period = 1
|
16
|
+
@face_off = true
|
17
|
+
@team_with_puck = nil
|
18
|
+
@puckless_team = nil
|
19
|
+
@puck_holder = nil
|
20
|
+
@shooting_chance = 0
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_s
|
24
|
+
puts "#{home.emoji} #{home.name} vs #{away.name} #{away.emoji}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def update
|
28
|
+
return unless @in_progress
|
29
|
+
|
30
|
+
@stream << Messages.StartOfPeriod(@period) if @actions == 0
|
31
|
+
@actions += 1
|
32
|
+
|
33
|
+
if @face_off
|
34
|
+
if @puck_holder == nil
|
35
|
+
# Pass opposite team to who wins the puck to switch_team_with_puck,
|
36
|
+
# so @team_with_puck & @puckless_team are set to the correct values.
|
37
|
+
switch_team_with_puck(
|
38
|
+
action_succeeds?(@home.roster[:center].stats[:offense],
|
39
|
+
@away.roster[:center].stats[:offense]) ? @away : @home)
|
40
|
+
|
41
|
+
@puck_holder = @team_with_puck.roster[:center]
|
42
|
+
@stream << Messages.FaceOff(@puck_holder.name)
|
43
|
+
else
|
44
|
+
pass
|
45
|
+
@face_off = false
|
46
|
+
end
|
47
|
+
return
|
48
|
+
end
|
49
|
+
|
50
|
+
case @prng.rand 5 + @shooting_chance
|
51
|
+
when 0..4
|
52
|
+
pass
|
53
|
+
when 5..6 # Check
|
54
|
+
defender = puckless_non_goalie
|
55
|
+
@stream << Messages.Hit(@puck_holder.name, defender.name,
|
56
|
+
try_take_puck(defender), 0, :defense)
|
57
|
+
else # Shoot
|
58
|
+
unless @shooting_chance < 5 and
|
59
|
+
try_block_shot @puckless_team.roster[@prng.rand(2) == 0 ? :ldef : :rdef] or
|
60
|
+
try_block_shot @puckless_team.roster[:goalie]
|
61
|
+
@score[@team_with_puck == @home ? :home : :away] += 1
|
62
|
+
|
63
|
+
@stream << Messages.Shoot(shooter,
|
64
|
+
nil, false,
|
65
|
+
@home.name, @away.name,
|
66
|
+
*@score.values)
|
67
|
+
|
68
|
+
@shooting_chance = 0
|
69
|
+
@face_off = true
|
70
|
+
@actions = 60 if @period > 3 # Sudden death overtime
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
if @actions == 60
|
75
|
+
@stream << Messages.EndOfPeriod(@period, @home.name, @away.name, *@score.values)
|
76
|
+
@actions = 0
|
77
|
+
@period += 1
|
78
|
+
if @period > 3 and not(@score[:home] == @score[:away] and @period < 12)
|
79
|
+
# Game is over
|
80
|
+
@in_progress = false
|
81
|
+
|
82
|
+
winner, loser = case @score[:home] <=> @score[:away]
|
83
|
+
when 1
|
84
|
+
[@home, @away]
|
85
|
+
when -1
|
86
|
+
[@away, @home]
|
87
|
+
else # Tie
|
88
|
+
@stream << Messages.EndOfGame
|
89
|
+
@home.losses += 1
|
90
|
+
@away.losses += 1
|
91
|
+
return
|
92
|
+
end
|
93
|
+
|
94
|
+
@stream << Messages.EndOfGame(winner.name)
|
95
|
+
winner.wins += 1
|
96
|
+
loser.losses += 1
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
private
|
102
|
+
def action_succeeds? helping_stat, hindering_stat
|
103
|
+
@prng.rand(10) + helping_stat - hindering_stat > 4
|
104
|
+
end
|
105
|
+
|
106
|
+
def switch_team_with_puck team_with_puck = @team_with_puck
|
107
|
+
@team_with_puck, @puckless_team = team_with_puck == @home ?
|
108
|
+
[@away, @home] : [@home, @away]
|
109
|
+
@shooting_chance = 0
|
110
|
+
end
|
111
|
+
|
112
|
+
def pass
|
113
|
+
sender_name = @puck_holder.name
|
114
|
+
receiver = puckless_non_goalie(@team_with_puck)
|
115
|
+
interceptor = puckless_non_goalie
|
116
|
+
|
117
|
+
if not @face_off and try_take_puck interceptor, 2 # Pass intercepted
|
118
|
+
@stream << Message.Pass(sender_name, receiver.name, interceptor)
|
119
|
+
return
|
120
|
+
end
|
121
|
+
|
122
|
+
@stream << Message.Pass(sender_name, receiver.name)
|
123
|
+
@puck_holder = receiver
|
124
|
+
@shooting_chance += 1
|
125
|
+
end
|
126
|
+
|
127
|
+
def try_take_puck player, dis = 0, stat = :agility
|
128
|
+
return false unless action_succeeds?(player.stats[stat] - dis,
|
129
|
+
@puck_holder.stats[stat])
|
130
|
+
|
131
|
+
switch_team_with_puck
|
132
|
+
@puck_holder = player
|
133
|
+
|
134
|
+
true
|
135
|
+
end
|
136
|
+
|
137
|
+
def try_block_shot blocker
|
138
|
+
return false unless action_succeeds?(blocker.stats[:defense],
|
139
|
+
@puck_holder.stats[:offense])
|
140
|
+
|
141
|
+
@shooting_chance += 1
|
142
|
+
@stream << Message.Shoot(@puck_holder, blocker, try_take_puck(blocker))
|
143
|
+
|
144
|
+
true
|
145
|
+
end
|
146
|
+
|
147
|
+
def puckless_non_goalie team = @puckless_team
|
148
|
+
team.roster.values.select do |p|
|
149
|
+
p != team.roster[:goalie] and p != @puck_holder
|
150
|
+
end.sample random: @prng
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
data/lib/league.rb
ADDED
@@ -0,0 +1,130 @@
|
|
1
|
+
require_relative "./game"
|
2
|
+
require_relative "./team"
|
3
|
+
|
4
|
+
class League
|
5
|
+
attr_reader :day, :divisions, :games_in_progress, :playoff_teams, :champion_team
|
6
|
+
|
7
|
+
def initialize season, start_time
|
8
|
+
@day = 0
|
9
|
+
@divisions = {
|
10
|
+
"Wet Warm": [
|
11
|
+
Team.new("Antalya Pirates", "🌊"),
|
12
|
+
Team.new("Baden Hallucinations", "🍄"),
|
13
|
+
Team.new("Kópavogur Seals", "🦭"),
|
14
|
+
Team.new("Lagos Soup", "🥣"),
|
15
|
+
Team.new("Pica Acid", "🧪")
|
16
|
+
],
|
17
|
+
"Dry Warm": [
|
18
|
+
Team.new("Dawson City Impostors", "🔪"),
|
19
|
+
Team.new("Erlangen Ohms", "🇴"),
|
20
|
+
Team.new("Pompei Eruptions", "🌋"),
|
21
|
+
Team.new("Rio de Janeiro Directors", "🎦"),
|
22
|
+
Team.new("Wyrzysk Rockets", "🚀")
|
23
|
+
],
|
24
|
+
"Wet Cool": [
|
25
|
+
Team.new("Cape Town Transplants", "🌱"),
|
26
|
+
Team.new("Manbij Fish", "🐠"),
|
27
|
+
Team.new("Nagqu Paint", "🎨"),
|
28
|
+
Team.new("Nice Backflippers", "🔄"),
|
29
|
+
Team.new("Orcadas Base Fog", "🌁")
|
30
|
+
],
|
31
|
+
"Dry Cool": [
|
32
|
+
Team.new("Baghdad Abacuses", "🧮"),
|
33
|
+
Team.new("Jakarta Architects", "📐"),
|
34
|
+
Team.new("Kyoto Payphones", "📳"),
|
35
|
+
Team.new("Stony Brook Reapers", "💀"),
|
36
|
+
Team.new("Sydney Thinkers", "🤔")
|
37
|
+
]
|
38
|
+
}
|
39
|
+
@games_in_progress = []
|
40
|
+
@games = []
|
41
|
+
@champion_team = nil
|
42
|
+
@last_update_time = start_time
|
43
|
+
@passed_updates = 0
|
44
|
+
@prng = Random.new 69420 * season
|
45
|
+
@shuffled_teams = @divisions.values.reduce(:+).shuffle random: @prng
|
46
|
+
@playoff_teams = nil
|
47
|
+
@game_in_matchup = 3
|
48
|
+
end
|
49
|
+
|
50
|
+
def update_state
|
51
|
+
return if @champion_team
|
52
|
+
|
53
|
+
now = Time.now
|
54
|
+
five_sec_intervals = (now - @last_update_time).floor / 5
|
55
|
+
|
56
|
+
if five_sec_intervals > 0
|
57
|
+
five_sec_intervals.times do |i|
|
58
|
+
if (i + @passed_updates) % 720 == 0
|
59
|
+
new_games
|
60
|
+
else
|
61
|
+
update_games
|
62
|
+
end
|
63
|
+
|
64
|
+
return if @champion_team
|
65
|
+
end
|
66
|
+
|
67
|
+
@last_update_time = now
|
68
|
+
@passed_updates += five_sec_intervals
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
def new_games
|
74
|
+
if @game_in_matchup != (@day > 38 ? 5 : 3)
|
75
|
+
# New game in matchups
|
76
|
+
@games.map! do |game| Game.new(game.away, game.home, @prng) end
|
77
|
+
@game_in_matchup += 1
|
78
|
+
return
|
79
|
+
end
|
80
|
+
|
81
|
+
# New matchups
|
82
|
+
@games.clear
|
83
|
+
@game_in_matchup = 1
|
84
|
+
@day += 1
|
85
|
+
|
86
|
+
case @day <=> 39
|
87
|
+
when -1
|
88
|
+
(@shuffled_teams.length / 2).times do |i|
|
89
|
+
pair = [@shuffled_teams[i], @shuffled_teams[-i]]
|
90
|
+
@games << Game.new(*(@day > 19 ? pair : pair.reverse), @prng)
|
91
|
+
end
|
92
|
+
|
93
|
+
@shuffled_teams.insert 1, @shuffled_teams.pop
|
94
|
+
when 0
|
95
|
+
@playoff_teams = Team.sort_teams(
|
96
|
+
@divisions.values.map do |teams|
|
97
|
+
Team.sort_teams(teams).first(2)
|
98
|
+
end.reduce(:+).map &:copy
|
99
|
+
)
|
100
|
+
|
101
|
+
new_playoff_matchups
|
102
|
+
when 1
|
103
|
+
@playoff_teams = Team.sort_teams(@playoff_teams).first(@playoff_teams.length / 2)
|
104
|
+
|
105
|
+
if @playoff_teams.length == 1
|
106
|
+
@champion_team = @playoff_teams[0]
|
107
|
+
return
|
108
|
+
end
|
109
|
+
|
110
|
+
new_playoff_matchups
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
def update_games
|
115
|
+
@games_in_progress = @games.select do |game| game.in_progress end
|
116
|
+
@games_in_progress.each do |game| game.update end
|
117
|
+
end
|
118
|
+
|
119
|
+
def new_playoff_matchups
|
120
|
+
@playoff_teams.each do |team|
|
121
|
+
team.wins = 0
|
122
|
+
team.losses = 0
|
123
|
+
end
|
124
|
+
|
125
|
+
(0...@playoff_teams.length).step 2 do |i|
|
126
|
+
@games << Game.new(*@playoff_teams[i, 2], @prng)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
data/lib/messages.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
class Messages
|
2
|
+
def initialize event, fields, data
|
3
|
+
@event = event
|
4
|
+
data_fields.zip data do |(f, d)|
|
5
|
+
instance_variable_set "@" + f, d
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
private_class_method :new
|
10
|
+
|
11
|
+
[
|
12
|
+
[:StartOfGame, :title],
|
13
|
+
[:EndOfGame, :winning_team],
|
14
|
+
[:StartOfPeriod, :period],
|
15
|
+
[:EndOfPeriod, :period, :home, :away, :home_score, :away_score],
|
16
|
+
[:FaceOff, :winning_player],
|
17
|
+
[:Hit, :puck_holder, :defender, :puck_taken],
|
18
|
+
[:Pass, :sender, :receiver, :interceptor],
|
19
|
+
[:Shoot, :shooter, :blocker, :puck_taken, :home, :away, :home_score, :away_score]
|
20
|
+
].each do |event, *fields|
|
21
|
+
define_method event do |*data|
|
22
|
+
new event, fields, data
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_s
|
27
|
+
case @event
|
28
|
+
when :StartOfGame
|
29
|
+
@title + "\nHocky!"
|
30
|
+
when :EndOfGame
|
31
|
+
"Game over.\n#{@winning_team or "Nobody"} wins!"
|
32
|
+
when :StartOfPeriod
|
33
|
+
"Start" + of_period
|
34
|
+
when :EndOfPeriod
|
35
|
+
"End" + of_period + score
|
36
|
+
when :FaceOff
|
37
|
+
@winning_player + " wins the faceoff!"
|
38
|
+
when :Hit
|
39
|
+
"#{@defender} hits #{@puck_holder + takes}!"
|
40
|
+
when :Pass
|
41
|
+
"#{@sender} passes to #{@receiver}#{@interceptor ?
|
42
|
+
"... intercepted by #{@interceptor}!" : "."}"
|
43
|
+
when :Shoot
|
44
|
+
"#{@shooter} takes a shot... #{@blocker ?
|
45
|
+
"#{@blocker} blocks the shot#{takes}!" : "and scores!" + score}"
|
46
|
+
else
|
47
|
+
raise "Unknown message"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
def of_period
|
53
|
+
" of period #{@period}."
|
54
|
+
end
|
55
|
+
|
56
|
+
def score
|
57
|
+
"\n#{@home} #{@home_score}, #{@away} #{@away_score}"
|
58
|
+
end
|
59
|
+
|
60
|
+
def takes
|
61
|
+
@puck_taken ? " and takes the puck" : ""
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
data/lib/player.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require_relative "./data/names_markov_chain"
|
2
|
+
|
3
|
+
class Player
|
4
|
+
attr_reader :name, :stats
|
5
|
+
|
6
|
+
@@prng = Random.new 8010897121101114 # This never changes
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@name = 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
ADDED
@@ -0,0 +1,46 @@
|
|
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.name}"
|
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| a.wins - a.losses <=> b.wins - b.losses end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
metadata
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hlockey
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0'
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Lavender Perry
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-06-21 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Hockey sports sim.
|
14
|
+
email: endie2@protonmail.com
|
15
|
+
executables:
|
16
|
+
- hlockey
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- bin/hlockey
|
21
|
+
- lib/data/names_markov_chain.rb
|
22
|
+
- lib/game.rb
|
23
|
+
- lib/league.rb
|
24
|
+
- lib/messages.rb
|
25
|
+
- lib/player.rb
|
26
|
+
- lib/team.rb
|
27
|
+
homepage: https://github.com/Lavender-Perry/hlockey
|
28
|
+
licenses:
|
29
|
+
- LicenseRef-LICENSE.md
|
30
|
+
metadata:
|
31
|
+
source_code_uri: https://github.com/Lavender-Perry/hlockey
|
32
|
+
post_install_message:
|
33
|
+
rdoc_options: []
|
34
|
+
require_paths:
|
35
|
+
- lib
|
36
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
requirements: []
|
47
|
+
rubygems_version: 3.3.7
|
48
|
+
signing_key:
|
49
|
+
specification_version: 4
|
50
|
+
summary: Hlockey season 0.
|
51
|
+
test_files: []
|