boj-solvedac 0.3.0 → 0.4.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 +4 -4
- data/lib/boj-solvedac.rb +22 -13
- data/lib/colorize/colorize.rb +59 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81197416100863f9824b775ede3d0dc02f9ce0272f079a162aecbfe3bcca4bb7
|
4
|
+
data.tar.gz: 952823c2c47e8ff96e9c0bbab2d16ad1f56deb68443232c6551350d15d235d87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89a0fb10502412bae5674189a08968ff3d76c5a469c1c21924bc2bdaa97ea5376856129b91c36c87ae0a331a30b97f077acc08051541c9d9751d67a001f1355d
|
7
|
+
data.tar.gz: 1d8f03d833a141f10d224ecbcb772cd8ea6b3de3e7483e73e582cf9138d08e1eddfd7c5fd1bf87ba425eaf156ea4c5ac77cd2c421c9c1d61627f9d8308ea9afa
|
data/lib/boj-solvedac.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'data/data.rb'
|
2
|
+
require 'colorize/colorize.rb'
|
2
3
|
|
3
4
|
module BOJ
|
4
5
|
class BOJSolvedAC < BOJData
|
@@ -44,15 +45,15 @@ module BOJ
|
|
44
45
|
def command_stat(level)
|
45
46
|
@prev = ''
|
46
47
|
if level == "all"
|
47
|
-
puts "%-
|
48
|
+
puts "%-12s%8s%8s%8s" % ["Level", "Unsolved", "Solved", "Total"]
|
48
49
|
@stats.each_pair do |k, v|
|
49
50
|
stat = @levels[v.to_sym]
|
50
|
-
puts "%-10s
|
51
|
+
puts "%-17s%10s%8s%8s" % [color(k), stat[:unsolved], stat[:solved], stat[:total]]
|
51
52
|
end
|
52
53
|
elsif %w(bronze silver gold platinum diamond ruby).include? level
|
53
54
|
5.downto(1) do |i|
|
54
55
|
stat = @levels[@stats[(level+(i.to_s)).to_sym].to_sym]
|
55
|
-
puts "%-
|
56
|
+
puts "%-15s unsolved(%3s) solved(%3s) total(%3s)" % [color(level+(i.to_s)), stat[:unsolved], stat[:solved], stat[:total]]
|
56
57
|
end
|
57
58
|
else
|
58
59
|
if !level or !@stats[level.to_sym]
|
@@ -60,7 +61,7 @@ module BOJ
|
|
60
61
|
return
|
61
62
|
end
|
62
63
|
stat = @levels[@stats[level.to_sym].to_sym]
|
63
|
-
puts "%-
|
64
|
+
puts "%-15s unsolved(%3s) solved(%3s) total(%3s)" % [color(level), stat[:unsolved], stat[:solved], stat[:total]]
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
@@ -71,7 +72,7 @@ module BOJ
|
|
71
72
|
return
|
72
73
|
end
|
73
74
|
|
74
|
-
puts "%-10s %-15s" % ["ID", "Title"]
|
75
|
+
puts "%-10s %-10s %-15s" % ["Level", "ID", "Title"]
|
75
76
|
|
76
77
|
if op == "solved"
|
77
78
|
level_min = 0
|
@@ -90,7 +91,7 @@ module BOJ
|
|
90
91
|
solved = solved.sort
|
91
92
|
i = 0
|
92
93
|
solved.each do |prob|
|
93
|
-
puts "%-
|
94
|
+
puts "%-15s%-10s%-15s" % [color(prob[1][:level]), prob[0], prob[1][:title]]
|
94
95
|
i+=1
|
95
96
|
if (i+1)%10 == 0
|
96
97
|
print("..... [q=quit] ")
|
@@ -99,6 +100,7 @@ module BOJ
|
|
99
100
|
end
|
100
101
|
end
|
101
102
|
else
|
103
|
+
puts "%-10s %-15s" % ["ID", "Title"]
|
102
104
|
list = @levels[@stats[op.to_sym].to_sym][:prob]
|
103
105
|
size = list.size
|
104
106
|
i = 0
|
@@ -116,14 +118,21 @@ module BOJ
|
|
116
118
|
end
|
117
119
|
|
118
120
|
def command_random(level)
|
119
|
-
problems = @levels[@stats[level.to_sym].to_sym][:prob] unless level==nil
|
120
|
-
level_str = level
|
121
|
-
|
122
121
|
if level == nil
|
123
122
|
max_level = 31
|
124
123
|
level = rand(max_level).to_s
|
125
124
|
problems = @levels[level.to_sym][:prob]
|
126
125
|
level_str = @stats.keys[level.to_i]
|
126
|
+
elsif %w(bronze silver gold platinum diamond ruby).include? level
|
127
|
+
level_str = level + (rand(5)+1).to_s
|
128
|
+
problems = @levels[@stats[level_str.to_sym].to_sym][:prob]
|
129
|
+
lever_str = @stats.keys[level.to_i]
|
130
|
+
elsif @stats[level.to_sym] == nil
|
131
|
+
puts "'#{level}' level does not exist.."
|
132
|
+
return
|
133
|
+
else
|
134
|
+
problems = @levels[@stats[level.to_sym].to_sym][:prob] unless level==nil
|
135
|
+
level_str = level
|
127
136
|
end
|
128
137
|
|
129
138
|
unsolved = []
|
@@ -132,15 +141,15 @@ module BOJ
|
|
132
141
|
end
|
133
142
|
|
134
143
|
if unsolved.size == 0
|
135
|
-
puts "You solved every problems in '#{level_str}'"
|
144
|
+
puts "You solved every problems in '#{color(level_str)}'"
|
136
145
|
return
|
137
146
|
end
|
138
147
|
id = unsolved[rand(unsolved.size)]
|
139
148
|
title = problems[id][:title]
|
140
149
|
|
141
150
|
puts
|
142
|
-
puts "Level: #{level_str}"
|
143
|
-
puts "ID : #{id} (https://www.acmicpc.net/problem/#{id})"
|
151
|
+
puts "Level: #{color(level_str)}"
|
152
|
+
puts "ID : #{id} (https://www.acmicpc.net/problem/#{id})".default
|
144
153
|
puts "Title: #{title}"
|
145
154
|
puts
|
146
155
|
end
|
@@ -192,7 +201,7 @@ module BOJ
|
|
192
201
|
|
193
202
|
def start
|
194
203
|
while true do
|
195
|
-
print
|
204
|
+
print "%s" % "boj-solvedac> ".default
|
196
205
|
command(gets.chomp)
|
197
206
|
end
|
198
207
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
class String
|
2
|
+
def color_code(code)
|
3
|
+
"\e[#{code}m#{self}\e0"
|
4
|
+
end
|
5
|
+
|
6
|
+
def default
|
7
|
+
color_code(39)
|
8
|
+
end
|
9
|
+
|
10
|
+
def unrated
|
11
|
+
# red
|
12
|
+
color_code(31)
|
13
|
+
end
|
14
|
+
|
15
|
+
def bronze
|
16
|
+
# default
|
17
|
+
color_code(39)
|
18
|
+
end
|
19
|
+
|
20
|
+
def silver
|
21
|
+
# white
|
22
|
+
color_code(97)
|
23
|
+
end
|
24
|
+
|
25
|
+
def gold
|
26
|
+
# yellow
|
27
|
+
color_code(93)
|
28
|
+
end
|
29
|
+
|
30
|
+
def platinum
|
31
|
+
# light cyan
|
32
|
+
color_code(96)
|
33
|
+
end
|
34
|
+
|
35
|
+
def diamond
|
36
|
+
# blue
|
37
|
+
color_code(34)
|
38
|
+
end
|
39
|
+
|
40
|
+
def ruby
|
41
|
+
# magenta
|
42
|
+
color_code(35)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def color(str)
|
47
|
+
temp = str.to_s.scan(/[a-z]/).join
|
48
|
+
str = str.to_s
|
49
|
+
case temp
|
50
|
+
when 'unrated' then str.unrated
|
51
|
+
when 'bronze' then str.bronze
|
52
|
+
when 'silver' then str.silver
|
53
|
+
when 'gold' then str.gold
|
54
|
+
when 'platinum' then str.platinum
|
55
|
+
when 'diamond' then str.diamond
|
56
|
+
when 'ruby' then str.ruby
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boj-solvedac
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jione Eu
|
@@ -10,13 +10,14 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2020-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description: " version 0.
|
13
|
+
description: " version 0.4.x -> colors added to each level\n"
|
14
14
|
email:
|
15
15
|
executables: []
|
16
16
|
extensions: []
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
19
|
- lib/boj-solvedac.rb
|
20
|
+
- lib/colorize/colorize.rb
|
20
21
|
- lib/data/data.rb
|
21
22
|
homepage: https://solved.ac/
|
22
23
|
licenses:
|