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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b00f463812297cb9cdb55639a511e4bc309f305836fd489d639c089ebeefca66
4
- data.tar.gz: 788ccc75ecab48a649d22db13e4fe86d16774aafec56d344a90c189f03602ff2
3
+ metadata.gz: 81197416100863f9824b775ede3d0dc02f9ce0272f079a162aecbfe3bcca4bb7
4
+ data.tar.gz: 952823c2c47e8ff96e9c0bbab2d16ad1f56deb68443232c6551350d15d235d87
5
5
  SHA512:
6
- metadata.gz: cecc8e9cebc4aa1eadccceeea49e78202cbb94662cbcd8ea40e927a88c8cdb037503e1234c50cba5451605eefacb8110d75f74cc6dc5dac5a68321c22317f650
7
- data.tar.gz: 976b1be13f808d0addc5cc57be1ed05802b8b3eebb4ae8c3f154ba2b9c4fb3b1c8f18625b9c37c6da00bfabc925f64976be0bdf2c96538c44fbb20ad694e6390
6
+ metadata.gz: 89a0fb10502412bae5674189a08968ff3d76c5a469c1c21924bc2bdaa97ea5376856129b91c36c87ae0a331a30b97f077acc08051541c9d9751d67a001f1355d
7
+ data.tar.gz: 1d8f03d833a141f10d224ecbcb772cd8ea6b3de3e7483e73e582cf9138d08e1eddfd7c5fd1bf87ba425eaf156ea4c5ac77cd2c421c9c1d61627f9d8308ea9afa
@@ -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 "%-10s %8s %8s %8s" % ["Level", "Unsolved", "Solved", "Total"]
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 %8s %8s %8s" % [k, stat[:unsolved], stat[:solved], stat[:total]]
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 "%-10s unsolved(%3s) solved(%3s) total(%3s)" % [level+(i.to_s), stat[:unsolved], stat[:solved], stat[:total]]
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 "%-10s unsolved(%3s) solved(%3s) total(%3s)" % [level, stat[:unsolved], stat[:solved], stat[:total]]
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 "%-10s%-10s%-15s" % [prob[1][:level], prob[0], prob[1][:title]]
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("boj-solvedac> ")
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.3.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.3.x -> 'solved [ID]' method added. \n"
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: