kansi_valid 0.0.7
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.
- data/LICENSE.txt +15 -0
- data/README +133 -0
- data/dic/dic.txt +6888 -0
- data/dic/ji_s.txt +1 -0
- data/dic/jouyou_kanji.txt +1 -0
- data/dic/kaku.dic +31 -0
- data/dic/kanji_list.txt +1 -0
- data/dic/parts.dic +1313 -0
- data/dic/yomi.dic +6404 -0
- data/kansi_valid.gemspec +45 -0
- data/lib/kansi_valid.rb +299 -0
- data/lib/kansi_valid/_24hudou.rb +146 -0
- data/lib/kansi_valid/_3ren.rb +22 -0
- data/lib/kansi_valid/be_hyo.rb +15 -0
- data/lib/kansi_valid/be_soku.rb +15 -0
- data/lib/kansi_valid/bouin.rb +38 -0
- data/lib/kansi_valid/check_okosi.rb +13 -0
- data/lib/kansi_valid/check_ouin.rb +17 -0
- data/lib/kansi_valid/check_ryouin.rb +47 -0
- data/lib/kansi_valid/check_tuuin.rb +30 -0
- data/lib/kansi_valid/check_zekku.rb +23 -0
- data/lib/kansi_valid/hyousoku.rb +46 -0
- data/lib/kansi_valid/inji.rb +65 -0
- data/lib/kansi_valid/kanji.rb +18 -0
- data/lib/kansi_valid/kansi_analyze.rb +16 -0
- data/lib/kansi_valid/kansi_comment.rb +23 -0
- data/lib/kansi_valid/kansi_generate.rb +387 -0
- data/lib/kansi_valid/kansi_htm.rb +151 -0
- data/lib/kansi_valid/kansi_organize.rb +57 -0
- data/lib/kansi_valid/kohyo.rb +37 -0
- data/lib/kansi_valid/kougo.rb +132 -0
- data/lib/kansi_valid/nihongo.rb +12 -0
- data/lib/kansi_valid/pick.rb +57 -0
- data/lib/kansi_valid/sample.rb +17 -0
- data/lib/kansi_valid/search.rb +28 -0
- data/lib/kansi_valid/seikei.rb +20 -0
- data/lib/kansi_valid/version.rb +14 -0
- data/lib/kansi_valid/wiktionary.rb +79 -0
- data/test/tc_kansi_valid.rb +92 -0
- metadata +120 -0
data/kansi_valid.gemspec
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# coding:utf-8
|
2
|
+
require 'rubygems'
|
3
|
+
require './lib/kansi_valid/version'
|
4
|
+
require './license'
|
5
|
+
spec = Gem::Specification.new do |s|
|
6
|
+
s.platform = Gem::Platform::RUBY
|
7
|
+
s.summary = "漢詩の作成補助、添削。 Easy to make Kanshi(Zekku)(Han-poet)and validate it. str=generate(5);kansi_valid(str);kv_bool(str)"
|
8
|
+
s.author="Takayasu Hayashi"
|
9
|
+
s.email="joe.ko9ji@gmail.com"
|
10
|
+
#s.homepage="http://maru.selfip.com/mygem/"
|
11
|
+
s.name = "kansi_valid"
|
12
|
+
s.version = Kansi_valid::Version
|
13
|
+
|
14
|
+
#s.requirements << 'rmagick'
|
15
|
+
#s.requirements << 'gruff'
|
16
|
+
#s.add_dependency('serialport','>= 1.0.4')
|
17
|
+
s.require_path = 'lib'
|
18
|
+
s.has_rdoc=true
|
19
|
+
|
20
|
+
#s.files = Dir.glob("{test,lib}/**/*.rb")
|
21
|
+
s.files = Dir.glob("{lib}/**/*.{rb,txt,dic}")+
|
22
|
+
Dir.glob("test/{ts,tc}*.rb")+
|
23
|
+
Dir.glob("dic/*")+
|
24
|
+
#Dir.glob("bin/*.rb")+
|
25
|
+
["kansi_valid.gemspec","LICENSE.txt"]
|
26
|
+
s.test_file="test/tc_kansi_valid.rb"
|
27
|
+
s.extra_rdoc_files="README"
|
28
|
+
s.description = <<EOF
|
29
|
+
Usage:
|
30
|
+
requrie "rubyems"
|
31
|
+
require "Kansi_valid"
|
32
|
+
inclide Kansi_valid
|
33
|
+
|
34
|
+
puts str1 = generate(7) # => make random poet(7 gon Zekku)
|
35
|
+
puts str2 = generate(5) # => make random poet(5 gon Zekku)
|
36
|
+
|
37
|
+
kansi_valid(str1) # => research dictionary and answer,validate
|
38
|
+
kv(str1) # => same above
|
39
|
+
valid(str1) # => same above
|
40
|
+
|
41
|
+
valid?(str1) # =>true,false(nil)
|
42
|
+
kv_bool(str1) # => same above
|
43
|
+
EOF
|
44
|
+
end
|
45
|
+
|
data/lib/kansi_valid.rb
ADDED
@@ -0,0 +1,299 @@
|
|
1
|
+
#coding:utf-8
|
2
|
+
$KCODE="u" if RUBY_VERSION<"1.9"
|
3
|
+
File.expand_path(File.dirname(__FILE__))
|
4
|
+
File.expand_path(File.dirname(__FILE__)+"../dic")
|
5
|
+
|
6
|
+
Dir.glob(File.dirname(__FILE__)+"/kansi_valid/*.rb").each do |file|
|
7
|
+
p file if $DEBUG
|
8
|
+
require file
|
9
|
+
end
|
10
|
+
|
11
|
+
=begin rdoc
|
12
|
+
=== 漢詩を作ったり、解析したりするのに役立つモジュール、関数をつくりました。
|
13
|
+
kansi_valid is a varidator of Han character poem(Kan si).
|
14
|
+
Author:: Takayasu Hayashi(林 貴康 joe.ko9ji@gmail.com )
|
15
|
+
License::GPL v2
|
16
|
+
* 辞書の使用は自己責任でお願いします。辞書は漢太郎の作者、Jigen様の作成された辞書を御許可いただきUTF-8テキストにしてあります。Jigen様、ありがとうございます。間違いがありましたら修正したいと思いますのでご連絡ください。
|
17
|
+
* Dictionary saved "/dic/dic.txt"UTF-8,about 6800 chars ,made by Jigen Kanou.
|
18
|
+
If you resume this,please tell me.
|
19
|
+
* 文字コードは UTF-8 ですので、WinXPなどは出力をKconvで変換したり、対応のエディタで見てください。
|
20
|
+
===:Usage 使い方
|
21
|
+
requrie "rubyems" if "RUBY_VERSION"<"1.9"
|
22
|
+
require "kansi_valid"
|
23
|
+
include Kansi_valid
|
24
|
+
puts kv(generate)
|
25
|
+
|
26
|
+
=== 先ずは有名なサンプルで。
|
27
|
+
sample # =>"#偶成 朱熹\n少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声\n"
|
28
|
+
#other valid=>"少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声"
|
29
|
+
#other valid=>"少年易老学難成 一寸光陰不可軽 未覚池塘春草夢 階前梧葉已秋声"
|
30
|
+
#other valid=>"少年易老学難成一寸光陰不可軽未覚池塘春草夢階前梧葉已秋声"
|
31
|
+
|
32
|
+
===漢詩ではないサンプル漢詩を機械的に生成します
|
33
|
+
samples(10) # =>make many 'Meaningless' poet.
|
34
|
+
|
35
|
+
* 七言絶句(7を指定)五言絶句(5を指定) make random 'Meaningless' poet(7or5 gon Zekku)
|
36
|
+
srand(0);str1 = generate(7) # => "戻里唆双差及援\n罷傷脈拘序周元\n家据弱役露宵屋\n稚守途紅稿軸温"
|
37
|
+
srand(0);generate(5) # => "戻里唆双飯\n差猫及硬温\n除慌女収嫁\n枢寂厄痴援"
|
38
|
+
* srand は同じ詩を生成するために使用していますので通常は不要
|
39
|
+
|
40
|
+
===kansi_valid(String) 絶句ならば禁則評価と辞書の結果表示、research dictionary and answer,validate
|
41
|
+
kansi_valid(sample)
|
42
|
+
# =>#偶成 朱熹
|
43
|
+
少年易老学難成
|
44
|
+
一寸光陰不可軽
|
45
|
+
未覚池塘春草夢
|
46
|
+
階前梧葉已秋声
|
47
|
+
|
48
|
+
# 庚 平起
|
49
|
+
#篠●先○陌●皓●覚●寒◇庚○
|
50
|
+
#質●願●陽○侵◇物◇哿●庚◇
|
51
|
+
#未●覚●支○陽○真○皓●東◇
|
52
|
+
#佳○先○虞◇葉●紙●尤○庚○
|
53
|
+
#Valid 絶句(Ver0.0.6)
|
54
|
+
#2013-01-03 22:58:18 +0900
|
55
|
+
|
56
|
+
#少:●:篠:嘯:ショウ:すくない すこし わかい
|
57
|
+
#年:○:一先::ネン:とし よわい みのり
|
58
|
+
以下省略#
|
59
|
+
|
60
|
+
kv(sample) # =>同上、 same above
|
61
|
+
valid(sample) # =>同上、 same above
|
62
|
+
=== 文字列が絶句であれば true を返す
|
63
|
+
valid?(sample) # =>true (絶句が正しいならtrue。)
|
64
|
+
(両韻・畳字などはtrueを返せない)
|
65
|
+
kv_bool(sample) # =>同上、 same above
|
66
|
+
|
67
|
+
===漢詩でないものも第二水準漢字程度まで調べられます。日本の国字<峠辻>なども調べられますが、絶句の評価はできません。
|
68
|
+
dic("漢字辞典") # =>文字列を調べる。普通こちら、Simple dictionary using Dic[]
|
69
|
+
# =>"漢:●:翰::カン:国名 あや から
|
70
|
+
字:●:寘::ジ:あざ あざな じ
|
71
|
+
辞:○:四支::ジ:やめる ことば ことわる
|
72
|
+
典:●:銑::テン:ふみ のり つかさどる
|
73
|
+
"
|
74
|
+
Dic["漢"] # =>単漢字を調べる、Character Hash Dictionary(Author Jigen Kanou,in Kantarou)
|
75
|
+
# =>["漢", "413", "", "0", "●", "翰", "去声", "", "カン", "",
|
76
|
+
"国名 あや から", "3441", "2033", "13", "水艸口夫漢", "0"]
|
77
|
+
|
78
|
+
=== 辞書の音訓などから調べる場合は search を使います
|
79
|
+
search("かえで") # =>Dicの内容から該当する漢字のハッシュをつくる
|
80
|
+
# =>{"楓"=>["楓", "2440", "", "0", "○", "一東", "上平", "", "フウ", "",
|
81
|
+
"かえで", "4976", "4186", "13", "木風几丿虫", "0"],
|
82
|
+
"槭"=>["槭", "4166", "", "0", "●", "屋", "入声", "", "セキ", "",
|
83
|
+
"かえで", "5C65", "6069", "15", "木戚戈上小", "0"]}
|
84
|
+
===平韻の字表の配列です
|
85
|
+
inji # =>平韻の配列表(inji[x],x=0..29)
|
86
|
+
(inji[0]が一東です)
|
87
|
+
inji[29] # =>"咸銜鹹緘岩巌杉衫凡鑑函監讒帆"
|
88
|
+
===常用漢字の配列です(約1945字)
|
89
|
+
Jouyou=["哀","愛",..,"湾","腕"]
|
90
|
+
===全ての辞書漢字の配列です(約6715字、国字など含む。)
|
91
|
+
Ji =["亜","唖",..,"禔","赶"]
|
92
|
+
|
93
|
+
===平仄韻からランダムに文字をあてはめます
|
94
|
+
poetter("常国◇○●\n◇○○●◎\n○○●○●\n○●●○◎",[Jouyou,inji[0]])
|
95
|
+
# =>"常国雇坪坂\n飲戯眠分崇\n諸番襲硝看\n評緯越然籠"
|
96
|
+
zekku_list # =>絶句として適した文字を当てはめる配列
|
97
|
+
kougo("◇●常国○◎") # =>"囚故常国挑琴\n#侵" 平仄式から字を充て、最後に韻をコメント。
|
98
|
+
# "◇不問 ●仄 ○平 ◎韻"
|
99
|
+
kougo() # =>無意味な香語調を生成します、make random 'Meaningless' "kougo".
|
100
|
+
|
101
|
+
|
102
|
+
hyousoku("菩薩") # =>"虞◇曷●" (韻と平仄式を返す)
|
103
|
+
hyosoku("菩薩") # =>同上、 same above
|
104
|
+
|
105
|
+
漢詩バリデータ(ルールどおりか評価する)
|
106
|
+
漢詩のルールにしたがっているかをチェックするスクリプト
|
107
|
+
記号
|
108
|
+
平=韻+○
|
109
|
+
仄=韻+●
|
110
|
+
両韻=◇
|
111
|
+
国字など=■
|
112
|
+
それ以外=?
|
113
|
+
|
114
|
+
チェック可能漢詩:
|
115
|
+
七言絶句
|
116
|
+
五言絶句
|
117
|
+
|
118
|
+
チェック項目
|
119
|
+
押韻、おういん(重複禁)、踏み落とし(三句目)
|
120
|
+
二四不動、にしふどう(挟み平(転句)はOK)
|
121
|
+
二六対、にろくつい(挟み平(転句)はOK)
|
122
|
+
下三連禁、あさんれんきん
|
123
|
+
挟み平(転句はOK)
|
124
|
+
二弧平禁(七言は四弧平禁)
|
125
|
+
冒韻禁,韻字の句内での重複(畳字なども未チェック)
|
126
|
+
|
127
|
+
他のチェック事項
|
128
|
+
韻
|
129
|
+
平起、仄起
|
130
|
+
|
131
|
+
やりたいこと
|
132
|
+
読みかた(音、訓)# =>漢字辞書などへ転送など。
|
133
|
+
できてないこと
|
134
|
+
対句,畳字など技法のチェック
|
135
|
+
両韻の振り分けなど(◇でしか対応できない。基本1字1韻対応となる。)
|
136
|
+
たぶんチェックできないこと
|
137
|
+
2、2、3(五言は2,3)の字で区切られているか
|
138
|
+
多少目をつむるなどの融通はきかない。
|
139
|
+
=end
|
140
|
+
module Kansi_valid
|
141
|
+
module_function
|
142
|
+
#全辞書ハッシュ
|
143
|
+
Dic=kanji
|
144
|
+
#常用漢字の配列
|
145
|
+
Jouyou=File.read(File.dirname(__FILE__)+"/../dic/jouyou_kanji.txt").chomp.split(//)
|
146
|
+
#辞書の全ての漢字の配列(ひらがな等は、除外、国字は含む)
|
147
|
+
Ji =File.read(File.dirname(__FILE__)+"/../dic/kanji_list.txt").chomp.split(//)
|
148
|
+
#漢詩の総合チェック。
|
149
|
+
#漢詩部分の切り出し(#の行は読みとばす)
|
150
|
+
# '\n',""なども読みとばす
|
151
|
+
def kansi_valid(str)
|
152
|
+
begin
|
153
|
+
comment=kansi_comment(str)#コメントの切り出し
|
154
|
+
kansi=kansi_organize(str)# =>整形(半角英数、半角空白など外す)
|
155
|
+
kekka=hyousoku(kansi)
|
156
|
+
|
157
|
+
warning=""#警告コメント
|
158
|
+
#日本語かどうかの評価
|
159
|
+
_nihongo=nihongo(kekka)
|
160
|
+
if _nihongo==true
|
161
|
+
warning+="#Error:including Japanene or undefined char.\n"
|
162
|
+
end
|
163
|
+
|
164
|
+
zekku=check_zekku(kansi)# =>5,7,nil
|
165
|
+
|
166
|
+
ouIn=check_ouin(kekka)# =>東、元など
|
167
|
+
okosi=check_okosi(kekka)# =>○●■◇?など
|
168
|
+
#data<<韻、起し
|
169
|
+
if okosi=="●"
|
170
|
+
data="\n\n# #{ouIn} 仄起\n"
|
171
|
+
elsif okosi=="○"
|
172
|
+
data="\n\n# #{ouIn} 平起\n"
|
173
|
+
else
|
174
|
+
data="\n\n# #{ouIn} #{okosi}起\n"
|
175
|
+
end
|
176
|
+
#漢詩としての評価はじめ
|
177
|
+
a=kansi_analyze(kekka)#kekkaの分割
|
178
|
+
|
179
|
+
#通韻チェック
|
180
|
+
tuuIn=check_tuuin(a,zekku,ouIn)#true or false
|
181
|
+
unless tuuIn
|
182
|
+
warning+="# 違反・押韻(又は両韻字)\n"
|
183
|
+
end
|
184
|
+
|
185
|
+
#二四不動(挟み平(転句)はOK)
|
186
|
+
#二六対(挟み平(転句)はOK)
|
187
|
+
hudo=_24hudou(a,zekku)
|
188
|
+
unless hudo
|
189
|
+
warning+="# 違反・二四不同、(二六対)\n"
|
190
|
+
end
|
191
|
+
|
192
|
+
#下三連禁
|
193
|
+
_simo3ren=_3ren(a)
|
194
|
+
unless _simo3ren
|
195
|
+
warning+="# 警告・下三連禁(下平三連、下仄三連)\n"
|
196
|
+
end
|
197
|
+
|
198
|
+
#二弧平禁(七言は四弧平禁)
|
199
|
+
_kohyo=kohyo(a,zekku)
|
200
|
+
unless _kohyo
|
201
|
+
warning+="# 警告・二弧平禁(七言は四弧平禁)\n"
|
202
|
+
end
|
203
|
+
|
204
|
+
#冒韻禁,韻字の句内での重複
|
205
|
+
_bouin=bouin(a,zekku,ouIn)&&tuuIn#韻を踏んで(tuuin==true)更にbouin==true
|
206
|
+
unless _bouin
|
207
|
+
Kansi warning+="# 注・冒韻(両韻文字、韻が多いなど)\n"
|
208
|
+
end
|
209
|
+
p warning if $DEBUG
|
210
|
+
warning="#Valid 絶句(Ver#{Version})\n##{Time.now.to_s}\n" if warning==""
|
211
|
+
|
212
|
+
ryouin_list=check_ryouin(kansi_organize(str))
|
213
|
+
|
214
|
+
result=str+data+seikei(kekka)+warning+"\n"+seikei(ryouin_list)
|
215
|
+
yield result if block_given?
|
216
|
+
return result
|
217
|
+
rescue
|
218
|
+
result=str+"\n\n"+seikei(hyosoku(kansi_organize(str)))+"\n"+seikei(check_ryouin(kansi_organize(str)))
|
219
|
+
yield result if block_given?
|
220
|
+
return result
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
def kv_bool(str)
|
225
|
+
bool=true
|
226
|
+
begin
|
227
|
+
comment=kansi_comment(str)#コメントの切り出し
|
228
|
+
kansi=kansi_organize(str)# =>整形(半角英数、半角空白など外す)
|
229
|
+
kekka=hyousoku(kansi)
|
230
|
+
|
231
|
+
#日本語かどうかの評価
|
232
|
+
_nihongo=nihongo(kekka)
|
233
|
+
if _nihongo==true
|
234
|
+
return false
|
235
|
+
end
|
236
|
+
|
237
|
+
zekku=check_zekku(kansi)# =>5,7,nil
|
238
|
+
|
239
|
+
ouIn=check_ouin(kekka)# =>東、元など
|
240
|
+
okosi=check_okosi(kekka)# =>○●■◇?など
|
241
|
+
|
242
|
+
#漢詩としての評価はじめ
|
243
|
+
a=kansi_analyze(kekka)#kekkaの分割
|
244
|
+
|
245
|
+
#通韻チェック
|
246
|
+
tuuIn=check_tuuin(a,zekku,ouIn)#true or false
|
247
|
+
unless tuuIn
|
248
|
+
return false
|
249
|
+
end
|
250
|
+
|
251
|
+
#二四不動(挟み平(転句)はOK)
|
252
|
+
#二六対(挟み平(転句)はOK)
|
253
|
+
hudo=_24hudou(a,zekku)
|
254
|
+
unless hudo
|
255
|
+
return false
|
256
|
+
end
|
257
|
+
|
258
|
+
#下三連禁
|
259
|
+
_simo3ren=_3ren(a)
|
260
|
+
unless _simo3ren
|
261
|
+
return false
|
262
|
+
end
|
263
|
+
|
264
|
+
#挟み平(転句)はOK
|
265
|
+
#二弧平禁(七言は四弧平禁)
|
266
|
+
_kohyo=kohyo(a,zekku)
|
267
|
+
unless _kohyo
|
268
|
+
return false
|
269
|
+
#warning+="# 警告・二弧平禁(七言は四弧平禁)\n"
|
270
|
+
end
|
271
|
+
|
272
|
+
#冒韻禁,韻字の句内での重複
|
273
|
+
_bouin=bouin(a,zekku,ouIn)&&tuuIn#韻を踏んで(tuuin==true)更にbouin==true
|
274
|
+
unless _bouin
|
275
|
+
return false
|
276
|
+
end
|
277
|
+
yield bool if block_given?
|
278
|
+
rescue
|
279
|
+
yield nil if block_given?
|
280
|
+
return nil
|
281
|
+
end
|
282
|
+
return bool
|
283
|
+
end
|
284
|
+
|
285
|
+
alias kv kansi_valid
|
286
|
+
alias valid kansi_valid
|
287
|
+
|
288
|
+
alias dic check_ryouin
|
289
|
+
|
290
|
+
alias hyosoku hyousoku
|
291
|
+
alias kansi_ kansi_organize
|
292
|
+
alias kohyou kohyo
|
293
|
+
|
294
|
+
alias valid? kv_bool
|
295
|
+
alias bool kv_bool
|
296
|
+
|
297
|
+
alias generate kansi_generate
|
298
|
+
alias generate2 kansi_generate2
|
299
|
+
end
|
@@ -0,0 +1,146 @@
|
|
1
|
+
# coding:utf-8
|
2
|
+
|
3
|
+
module Kansi_valid
|
4
|
+
module_function
|
5
|
+
#24不同、26対を評価する。
|
6
|
+
#trueが正しい
|
7
|
+
#falseは正しくない
|
8
|
+
#nilは評価不能を示す。
|
9
|
+
#_24hudou(poem_string(詩),zekku=(5 or 7))
|
10
|
+
def _24hudou(a,zekku)
|
11
|
+
#p a
|
12
|
+
if zekku
|
13
|
+
#p a
|
14
|
+
#p a[0][3]
|
15
|
+
if zekku==7
|
16
|
+
case a[0][3]
|
17
|
+
when "◇"
|
18
|
+
bool1=
|
19
|
+
be_soku(a[1][3])&&
|
20
|
+
be_soku(a[2][3])&&
|
21
|
+
be_hyo(a[3][3])&&
|
22
|
+
|
23
|
+
be_soku(a[0][7])&&
|
24
|
+
be_hyo(a[1][7])&&
|
25
|
+
be_hyo(a[2][7])&&
|
26
|
+
be_soku(a[3][7])&&
|
27
|
+
|
28
|
+
be_hyo(a[0][11])&&
|
29
|
+
be_soku(a[1][11])&&
|
30
|
+
(be_soku(a[2][11]) || be_soku(a[2][9]))&&#挟み平
|
31
|
+
be_hyo(a[3][11])
|
32
|
+
|
33
|
+
bool2=
|
34
|
+
be_hyo(a[1][3])&&
|
35
|
+
be_hyo(a[2][3])&&
|
36
|
+
be_soku(a[3][3])&&
|
37
|
+
|
38
|
+
be_hyo(a[0][7])&&
|
39
|
+
be_soku(a[1][7])&&
|
40
|
+
be_soku(a[2][7])&&
|
41
|
+
be_hyo(a[3][7])&&
|
42
|
+
|
43
|
+
be_soku(a[0][11])&&
|
44
|
+
be_hyo(a[1][11])&&
|
45
|
+
be_hyo(a[2][11])&&
|
46
|
+
be_soku(a[3][11])
|
47
|
+
|
48
|
+
#p bool
|
49
|
+
return (bool1 or bool2)
|
50
|
+
|
51
|
+
when "○"
|
52
|
+
bool=
|
53
|
+
be_soku(a[1][3])&&
|
54
|
+
be_soku(a[2][3])&&
|
55
|
+
be_hyo(a[3][3])&&
|
56
|
+
|
57
|
+
be_soku(a[0][7])&&
|
58
|
+
be_hyo(a[1][7])&&
|
59
|
+
be_hyo(a[2][7])&&
|
60
|
+
be_soku(a[3][7])&&
|
61
|
+
|
62
|
+
be_hyo(a[0][11])&&
|
63
|
+
be_soku(a[1][11])&&
|
64
|
+
(be_soku(a[2][11]) || be_soku(a[2][9]))&&#挟み平
|
65
|
+
be_hyo(a[3][11])
|
66
|
+
|
67
|
+
#p bool
|
68
|
+
return bool
|
69
|
+
when "●"
|
70
|
+
bool=
|
71
|
+
be_hyo(a[1][3])&&
|
72
|
+
be_hyo(a[2][3])&&
|
73
|
+
be_soku(a[3][3])&&
|
74
|
+
|
75
|
+
be_hyo(a[0][7])&&
|
76
|
+
be_soku(a[1][7])&&
|
77
|
+
be_soku(a[2][7])&&
|
78
|
+
be_hyo(a[3][7])&&
|
79
|
+
|
80
|
+
be_soku(a[0][11])&&
|
81
|
+
be_hyo(a[1][11])&&
|
82
|
+
be_hyo(a[2][11])&&
|
83
|
+
be_soku(a[3][11])
|
84
|
+
return bool
|
85
|
+
end
|
86
|
+
elsif zekku==5
|
87
|
+
case a[0][3]
|
88
|
+
when "◇"
|
89
|
+
bool1=
|
90
|
+
be_soku(a[1][3])&&
|
91
|
+
be_soku(a[2][3])&&
|
92
|
+
be_hyo(a[3][3])&&
|
93
|
+
|
94
|
+
(be_soku(a[0][7])|| be_hyou(a[0][7]))&&
|
95
|
+
be_hyo(a[1][7])&&
|
96
|
+
be_hyo(a[2][7])&&
|
97
|
+
be_soku(a[3][7])
|
98
|
+
|
99
|
+
bool2=
|
100
|
+
be_hyo(a[1][3])&&
|
101
|
+
be_hyo(a[2][3])&&
|
102
|
+
be_soku(a[3][3])&&
|
103
|
+
|
104
|
+
be_hyo(a[0][7])&&
|
105
|
+
be_soku(a[1][7])&&
|
106
|
+
(be_soku(a[2][7])||be_soku(a[2][5]))&&#挟み平
|
107
|
+
be_hyo(a[3][7])
|
108
|
+
return (bool1 or bool2)
|
109
|
+
|
110
|
+
|
111
|
+
when "○"
|
112
|
+
bool=
|
113
|
+
be_soku(a[1][3])&&
|
114
|
+
be_soku(a[2][3])&&
|
115
|
+
be_hyo(a[3][3])&&
|
116
|
+
|
117
|
+
(be_soku(a[0][7])|| be_hyou(a[0][7]))&&
|
118
|
+
be_hyo(a[1][7])&&
|
119
|
+
be_hyo(a[2][7])&&
|
120
|
+
be_soku(a[3][7])
|
121
|
+
return bool
|
122
|
+
when "●"
|
123
|
+
bool=
|
124
|
+
be_hyo(a[1][3])&&
|
125
|
+
be_hyo(a[2][3])&&
|
126
|
+
be_soku(a[3][3])&&
|
127
|
+
|
128
|
+
be_hyo(a[0][7])&&
|
129
|
+
be_soku(a[1][7])&&
|
130
|
+
(be_soku(a[2][7])||be_soku(a[2][5]))&&#挟み平
|
131
|
+
be_hyo(a[3][7])
|
132
|
+
return bool
|
133
|
+
end
|
134
|
+
else
|
135
|
+
return false
|
136
|
+
end
|
137
|
+
else
|
138
|
+
return false
|
139
|
+
end
|
140
|
+
#評価されなかったら、最終値はnil
|
141
|
+
nil
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
#if $0==__FILE__
|
146
|
+
#end
|