Comment detail
トランプの和と積のパズル (Nested Flatten)トランプが9マイしかないロジックになってしまっていました・・・・ 修正。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | // 準備
def patterns = []
(1..13).each{ x ->
(x..13).each{ y ->
patterns << [x:x, y:y, a:x*y, b:x+y]
}
}
println "=====シミュレーション====="
patterns.each{ pattern ->
try{
// ■Aさんから見た回答
def avalue = pattern.a
def potentialsA = patterns
potentialsA = potentialsA.findAll{
it.a == avalue
}
if( potentialsA.size() == 1 ){
throw new Exception("わかってるジャン!")
}
// ■Bさんから見た回答
def bvalue = pattern.b
def potentialsB = patterns
potentialsB = potentialsB.findAll{
it.b == bvalue
}
if( potentialsB.size() == 1 ){
throw new Exception("わかってるジャン!")
}
//println potentialsB.size()
//println potentialsB
// Aさんの回答として2つ以上あるものを抜き出し
if( potentialsB.collect{ it.a }.unique().size() <= 1 ){
// 回答がわかっている
throw new Exception()
}
// ■結果
def potentials = potentialsA.intersect(potentialsB)
if( potentials.size() >= 2 ){
throw new Exception()
}
println "■カードは ${pattern.x} と ${pattern.y}"
} catch ( Exception ){
// 次へ
}
}
|




genzou
#6478()
[
Groovy
]
Rating0/0=0.00
問題のご認識があるかもしれません。 気づいた方連絡ください。
// 準備 def patterns = [] (1..9).each{ x -> (x..9).each{ y -> patterns << [x:x, y:y, a:x*y, b:x+y] } } println "=====シミュレーション=====" patterns.each{ pattern -> try{ // ■Aさんから見た回答 def avalue = pattern.a def potentialsA = patterns potentialsA = potentialsA.findAll{ it.a == avalue } if( potentialsA.size() == 1 ){ throw new Exception("わかってるジャン!") } // ■Bさんから見た回答 def bvalue = pattern.b def potentialsB = patterns potentialsB = potentialsB.findAll{ it.b == bvalue } if( potentialsB.size() == 1 ){ throw new Exception("わかってるジャン!") } //println potentialsB.size() //println potentialsB // Aさんの回答として2つ以上あるものを抜き出し if( potentialsB.collect{ it.a }.unique().size() <= 1 ){ // 回答がわかっている throw new Exception() } // ■結果 def potentials = potentialsA.intersect(potentialsB) if( potentials.size() >= 2 ){ throw new Exception() } println "■カードは ${pattern.x} と ${pattern.y}" } catch ( Exception ){ // 次へ } }Rating0/0=0.00-0+
1 reply [ reply ]