shogi-server source
Révision | 1b3407692131e16a8af23434f41b381134bf2fc0 (tree) |
---|---|
l'heure | 2015-02-14 17:40:28 |
Auteur | Daigo Moriwaki <daigo@debi...> |
Commiter | Daigo Moriwaki |
util/statistics.rb: Updated to investigate floodgate-600-10 games.
@@ -1,3 +1,11 @@ | ||
1 | +2015-02-14 Daigo Moriwaki <daigo at debian dot org> | |
2 | + | |
3 | + * util/statistics.rb: | |
4 | + - Updated to investigate floodgate-600-10 games. | |
5 | + Consult the result at | |
6 | + http://www.sgtpepper.net/hyspro/diary/20150214.html. | |
7 | + - Added a companion R script: histogram.R | |
8 | + | |
1 | 9 | 2015-01-20 Daigo Moriwaki <daigo at debian dot org> |
2 | 10 | |
3 | 11 | * [mk_rate] |
@@ -0,0 +1,53 @@ | ||
1 | +args <- commandArgs(TRUE) | |
2 | +file1<- args[1] | |
3 | +file2 <- args[2] | |
4 | +title <- args[3] | |
5 | + | |
6 | +print(file) | |
7 | + | |
8 | +d1 <- read.csv(file1, header=F) | |
9 | +d2 <- read.csv(file2, header=F) | |
10 | + | |
11 | +sink(file="summary1.txt", split=T) | |
12 | +summary(d1) | |
13 | +sink() | |
14 | + | |
15 | +con <- file("summary1.txt") | |
16 | +open(con) | |
17 | +summary_text <- readLines(con) | |
18 | +close(con) | |
19 | + | |
20 | +sink(file="summary2.txt", split=T) | |
21 | +summary(d2) | |
22 | +sink() | |
23 | + | |
24 | +con <- file("summary2.txt") | |
25 | +open(con) | |
26 | +summary_text <- readLines(con) | |
27 | +close(con) | |
28 | + | |
29 | + | |
30 | +png(sprintf("%s.png", file1)) | |
31 | + | |
32 | +library(MASS) | |
33 | +par(mar = c(4.5, 4.5, 4.5, 5.5)) | |
34 | + | |
35 | +max <- 60 | |
36 | + | |
37 | +truehist(d1$V1, xlim=c(0,max), col="#66ff6640", border="#66ff66", axes = FALSE, xlab = "", ylab = "", prob=FALSE) | |
38 | +axis(side = 1) # x axis | |
39 | +axis(side = 2, col.axis = "#66ff66", col = "#66ff66") # left y axis | |
40 | +mtext("floodgate-900-0", side = 2, line=3) | |
41 | + | |
42 | +par(new = TRUE) | |
43 | + | |
44 | +truehist(d2$V1, xlim=c(0,max), col="#6699ff40", border="#6699ff", axes = FALSE, xlab = "", ylab = "", prob=FALSE) | |
45 | +axis(side = 4, col.axis = "#6699ff", col = "#6699ff") # right y axis | |
46 | +mtext("floodgate-600-0", side = 4, line=3) | |
47 | + | |
48 | +mtext(title, side=1, line=3) | |
49 | + | |
50 | +dev.off() | |
51 | +q() | |
52 | + | |
53 | + |
@@ -112,33 +112,24 @@ $states = State.new | ||
112 | 112 | |
113 | 113 | def do_file(file) |
114 | 114 | $OPT_REPEAT -= 1 if $OPT_REPEAT > 0 |
115 | - csa = CsaFileReader.new(file) | |
115 | + csa = CsaFileReader.new(file, "EUC-JP") | |
116 | 116 | |
117 | - # See games between 2008/03 to 2009/07 | |
118 | - return if csa.start_time.nil? || | |
119 | - csa.start_time < Time.parse("2008/03/01") || | |
120 | - csa.start_time >= Time.parse("2009/08/01") | |
121 | - | |
122 | - # Want to see complete games | |
117 | + # Want to see completed games only | |
123 | 118 | $states.add csa.state |
124 | 119 | return unless csa.state == "toryo" |
125 | 120 | |
126 | - # Process monthly | |
121 | + # 1. Process monthly | |
127 | 122 | $monthly.add(csa) |
128 | 123 | |
129 | - # Process gametime | |
124 | + # 2. Process gametime | |
130 | 125 | duration = (csa.end_time - csa.start_time).to_i |
131 | - if duration > 2200 | |
132 | - $stderr.puts "Too long game: #{file}" | |
133 | - return | |
134 | - end | |
135 | 126 | $gametime.add duration.to_i |
136 | 127 | |
137 | - # Process movetime | |
128 | + # 3. Process movetime | |
138 | 129 | values = csa.movetimes |
139 | 130 | $movetime.add values |
140 | 131 | |
141 | - #Process moves | |
132 | + # 4. Process moves | |
142 | 133 | $moves.add values.size |
143 | 134 | |
144 | 135 | rescue => ex |