开心网的“AI智能人”游戏的作弊程序
开心网的“谁最牛”模块有一个叫“AI智能人”的Flash游戏。偶每次玩到第10关都被难住。哀叹自己智商如此低下之余,也十分好奇这关到底应该咋过呢?网上又没找到攻略秘籍,只好自己DIY一个作弊程序了。
游戏的地址为:http://xyx.kaixin.com/upload/detail.php?game=A_I, 游戏规则是每次可以命令任意一个机器人朝某个方向行进,只有遇到其它机器人才会停下来,如果没有其他机器人的阻挡,就会一直走到棋盘边缘并坠落,任务失败。使红色机器人停留在棋盘中心的紫色格子里则过关。有兴趣的话可以玩一下。
可以用一个矩阵来表示棋盘。0代表空白的方格,1代表灰色机器人,2代表红色机器人。上图中的棋盘就可以这样来表示:
m = [[1,0,0,0,0],
[0,0,0,1,0],
[0,0,1,0,0],
[0,0,0,0,0],
[1,1,0,2,0]]
算法的话就是直接递归穷举所有可能的走法。Ruby代码如下。
代码写得很丑(真是书到用时方很少呀),真是对不起Ruby这么优雅的语言了,汗。其中的 “pp_extension” 在我的这篇文章里。 运行之后的效果:
按照右侧的输出的每一步把机器人从“#”移动到“$”即可。
程序已通过全部18关测试,看到自己的名字显示在前10以内,虚荣心真是小小地满足了一把,吼吼吼。
在一个地方被折磨了很久。就是AI.rb的地79行:
if(state_stack.has_key?(next_m) == false) then
s1 = [[1, 0, 0, 0, 0],
[1, 1, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 1, 2, 0, 0]]
s2 = [[1,0,0,0,0],
[1,1,0,0,0],
[0,1,2,0,0],
[0,0,1,0,0],
[0,0,0,0,0]]
s1.hash 和 s2.hash居然是相等的!都是3589,真是搞不懂。liangliangzai 和众位高手,请指点一二。
2008-1-14 更新
为了对得起Ruby,我又把这个程序重写了一遍,这回感觉好多了。代码:
比较难的几关的攻略:
游戏的地址为:http://xyx.kaixin.com/upload/detail.php?game=A_I, 游戏规则是每次可以命令任意一个机器人朝某个方向行进,只有遇到其它机器人才会停下来,如果没有其他机器人的阻挡,就会一直走到棋盘边缘并坠落,任务失败。使红色机器人停留在棋盘中心的紫色格子里则过关。有兴趣的话可以玩一下。
可以用一个矩阵来表示棋盘。0代表空白的方格,1代表灰色机器人,2代表红色机器人。上图中的棋盘就可以这样来表示:
m = [[1,0,0,0,0],
[0,0,0,1,0],
[0,0,1,0,0],
[0,0,0,0,0],
[1,1,0,2,0]]
算法的话就是直接递归穷举所有可能的走法。Ruby代码如下。
文件名AI.rb
require 'pp'
require 'pp_extension'
require 'mathn'
def suc_state?(m)
return m[2][2] == 2
end
# Returns a clone of a, a is a tow-dimension array
def clone_2d_array(a)
result = []
a.each {|i| result<<i.clone }
return result
end
def get_possible_move(m, x, y)
result = []
m_up = clone_2d_array(m)
(0y).to_a.reverse.each { |i|
if(m_up[i][x] > 0) then
m_up[i+1][x], m_up[y][x] = m_up[y][x], m_up[i+1][x]
break
end
}
m_down = clone_2d_array(m)
(y+1..m.length-1).each { |i|
if(m_down[i][x] > 0) then
m_down[i-1][x], m_down[y][x] = m_down[y][x], m_down[i-1][x]
break
end
}
m_left = clone_2d_array(m)
(0x).to_a.reverse.each { |i|
if(m_left[y][i] > 0) then
m_left[y][i+1], m_left[y][x] = m_left[y][x], m_left[y][i+1]
break
end
}
m_right = clone_2d_array(m)
(x+1..m[y].length-1).each { |i|
if(m_right[y][i] > 0) then
m_right[y][i-1], m_right[y][x] = m_right[y][x], m_right[y][i-1]
break
end
}
result << m_up if m != m_up
result << m_down if m != m_down
result << m_left if m != m_left
result << m_right if m !=m_right
return result
end
def get_possible_next_states(m)
result = []
m.each_index { |y|
m[y].each_index { |x|
result |= get_possible_move(m, x, y) if(m[y][x] > 0)
}
}
return result
end
def eai(m, state_stack)
# get all possible next states
next_states = get_possible_next_states(m)
next_states.each { |next_m|
if(suc_state?(next_m)) then
@move_map << next_m
return true
else
if(state_stack.has_key?(next_m) == false) then
state_stack[next_m] = 'exists'
suc = eai(next_m, state_stack)
if(suc==true) then
@move_map << next_m
return true
end
end
end
}
end
def root_eai(m)
next_states = get_possible_next_states(m)
next_states.each { |next_m|
@move_map=[]
if(suc_state?(next_m)) then
@move_map << next_m
return
else
state_stack=Hash.new
state_stack[next_m] = 'exists'
suc = eai(next_m, state_stack)
if(suc==true) then
@move_map << next_m
@move_map << m
return
end
end
}
end
def set_mark(move_map)
result = move_map.reverse
result.each_index { |i|
if(i < result.length-1) then
state0 = result[i]
state1 = result[i+1]
start_x = -1
start_y = -1
end_x = -1
end_y = -1
state0.each_index { |y|
state0[y].each_index { |x|
p0 = state0[y][x]>=1? 1 : 0
p1 = state1[y][x]>=1? 1 : 0
if(p0 != p1 && p0>0) then
start_x = x
start_y = y
end
if(p0 != p1 && p0==0) then
end_x = x
end_y = y
end
}
}
state0[start_y][start_x] = '#'
state0[end_y][end_x] = '$'
#puts "(#{start_x},#{start_y}) To (#{end_x},#{end_y})"
end
}
return result
end
m = [[1,0,0,0,0],
[0,0,0,1,0],
[0,0,1,0,0],
[0,0,0,0,0],
[1,1,0,2,0]]
root_eai(m)
result = set_mark(@move_map)
result.each { |matrix|
matrix.each_index { |y|
matrix[y].each_index { |x|
matrix[y][x] = matrix[y][x].to_s
}
}
}
require 'pp'
require 'pp_extension'
require 'mathn'
def suc_state?(m)
return m[2][2] == 2
end
# Returns a clone of a, a is a tow-dimension array
def clone_2d_array(a)
result = []
a.each {|i| result<<i.clone }
return result
end
def get_possible_move(m, x, y)
result = []
m_up = clone_2d_array(m)
(0y).to_a.reverse.each { |i|
if(m_up[i][x] > 0) then
m_up[i+1][x], m_up[y][x] = m_up[y][x], m_up[i+1][x]
break
end
}
m_down = clone_2d_array(m)
(y+1..m.length-1).each { |i|
if(m_down[i][x] > 0) then
m_down[i-1][x], m_down[y][x] = m_down[y][x], m_down[i-1][x]
break
end
}
m_left = clone_2d_array(m)
(0x).to_a.reverse.each { |i|
if(m_left[y][i] > 0) then
m_left[y][i+1], m_left[y][x] = m_left[y][x], m_left[y][i+1]
break
end
}
m_right = clone_2d_array(m)
(x+1..m[y].length-1).each { |i|
if(m_right[y][i] > 0) then
m_right[y][i-1], m_right[y][x] = m_right[y][x], m_right[y][i-1]
break
end
}
result << m_up if m != m_up
result << m_down if m != m_down
result << m_left if m != m_left
result << m_right if m !=m_right
return result
end
def get_possible_next_states(m)
result = []
m.each_index { |y|
m[y].each_index { |x|
result |= get_possible_move(m, x, y) if(m[y][x] > 0)
}
}
return result
end
def eai(m, state_stack)
# get all possible next states
next_states = get_possible_next_states(m)
next_states.each { |next_m|
if(suc_state?(next_m)) then
@move_map << next_m
return true
else
if(state_stack.has_key?(next_m) == false) then
state_stack[next_m] = 'exists'
suc = eai(next_m, state_stack)
if(suc==true) then
@move_map << next_m
return true
end
end
end
}
end
def root_eai(m)
next_states = get_possible_next_states(m)
next_states.each { |next_m|
@move_map=[]
if(suc_state?(next_m)) then
@move_map << next_m
return
else
state_stack=Hash.new
state_stack[next_m] = 'exists'
suc = eai(next_m, state_stack)
if(suc==true) then
@move_map << next_m
@move_map << m
return
end
end
}
end
def set_mark(move_map)
result = move_map.reverse
result.each_index { |i|
if(i < result.length-1) then
state0 = result[i]
state1 = result[i+1]
start_x = -1
start_y = -1
end_x = -1
end_y = -1
state0.each_index { |y|
state0[y].each_index { |x|
p0 = state0[y][x]>=1? 1 : 0
p1 = state1[y][x]>=1? 1 : 0
if(p0 != p1 && p0>0) then
start_x = x
start_y = y
end
if(p0 != p1 && p0==0) then
end_x = x
end_y = y
end
}
}
state0[start_y][start_x] = '#'
state0[end_y][end_x] = '$'
#puts "(#{start_x},#{start_y}) To (#{end_x},#{end_y})"
end
}
return result
end
m = [[1,0,0,0,0],
[0,0,0,1,0],
[0,0,1,0,0],
[0,0,0,0,0],
[1,1,0,2,0]]
root_eai(m)
result = set_mark(@move_map)
result.each { |matrix|
matrix.each_index { |y|
matrix[y].each_index { |x|
matrix[y][x] = matrix[y][x].to_s
}
}
}
代码写得很丑(真是书到用时方很少呀),真是对不起Ruby这么优雅的语言了,汗。其中的 “pp_extension” 在我的这篇文章里。 运行之后的效果:
按照右侧的输出的每一步把机器人从“#”移动到“$”即可。
程序已通过全部18关测试,看到自己的名字显示在前10以内,虚荣心真是小小地满足了一把,吼吼吼。
在一个地方被折磨了很久。就是AI.rb的地79行:
if(state_stack.has_key?(next_m) == false) then
state_stack[next_m] = 'exists'
本来我写的是
if(state_stack.has_key?(next_m.hash) == false) then
state_stack[next_m.hash] = 'exists'
s1 = [[1, 0, 0, 0, 0],
[1, 1, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 1, 2, 0, 0]]
s2 = [[1,0,0,0,0],
[1,1,0,0,0],
[0,1,2,0,0],
[0,0,1,0,0],
[0,0,0,0,0]]
s1.hash 和 s2.hash居然是相等的!都是3589,真是搞不懂。liangliangzai 和众位高手,请指点一二。
2008-1-14 更新
为了对得起Ruby,我又把这个程序重写了一遍,这回感觉好多了。代码:
文件名 AI3.rb
require 'pp'
require 'pp_extension'
require 'mathn'
class Point
attr_accessor :x
attr_accessor :y
attr_accessor :v
def initialize(x=0, y=0, v=0)
@x = x
@y = y
@v = v
end
def to_s()
return "(#@x,#@y)=#@v"
end
def pretty_print(q)
q.text(to_s)
end
end
def suc_state?(m)
return m[2][2] == 2
end
def is_person?(v)
return v > 0
end
def find_horizon_people_pair(m)
result = []
m.each_index do |y|
current_person = nil
row = m[y]
row.each_index do |x|
if is_person?(row[x]) then
result << [current_person, Point.new(x, y, row[x])] unless current_person.nil?
current_person = Point.new(x, y, row[x])
end
end
end
return result
end
def get_next_states_from_horizon_people_pair(m, left_people, right_people)
result = []
y = left_people.y
next_state1 = m.collect { |x| x.collect } # deep copy
next_state1[y][left_people.x+1], next_state1[y][right_people.x] = next_state1[y][right_people.x], next_state1[y][left_people.x+1]
next_state2 = m.collect { |x| x.collect } # deep copy
next_state2[y][right_people.x-1], next_state2[y][left_people.x] = next_state2[y][left_people.x], next_state2[y][right_people.x-1]
result << next_state1 if next_state1 != m
result << next_state2 if next_state2 != m
return result
end
def get_next_states(m)
result = []
# get horizion next states
people_pairs = find_horizon_people_pair(m)
people_pairs.each do |people_pair|
result.concat(get_next_states_from_horizon_people_pair(m, *people_pair))
end
# get vertical next states
mt = Matrix[*m].transpose.to_a
people_pairs = find_horizon_people_pair(mt)
people_pairs.each do |people_pair|
result.concat(get_next_states_from_horizon_people_pair(mt, *people_pair).collect! { |x| Matrix[*x].transpose.to_a } )
end
return result
end
def eai(m, state_stack)
state_stack << m
return true if(suc_state?(m))
next_states = get_next_states(m)
next_states.each do |next_m|
unless(state_stack.include?(next_m)) then
suc = eai(next_m, state_stack)
return true if suc
end
end
state_stack.pop
return false
end
def set_mark(m_array)
result = m_array.collect { |m| m.collect { |x| x.collect } } # deep copy
(1m_array.length).each do |i|
m_array[i].each_index do |y|
m_array[i][y].each_index do |x|
if(m_array[i-1][y][x] == m_array[i][y][x]) then
result[i][y][x] = '|'
else
result[i][y][x] = m_array[i][y][x].to_s
end
end
end
end
return result
end
m = [[1,0,0,1,0],
[0,0,0,0,0],
[0,0,0,2,0],
[0,0,0,0,0],
[1,1,0,0,1]]
result = []
suc = eai(m, result)
roads = set_mark(result)
roads.each_index do |i|
puts "---#{i}---"
pp roads[i]
end
require 'pp'
require 'pp_extension'
require 'mathn'
class Point
attr_accessor :x
attr_accessor :y
attr_accessor :v
def initialize(x=0, y=0, v=0)
@x = x
@y = y
@v = v
end
def to_s()
return "(#@x,#@y)=#@v"
end
def pretty_print(q)
q.text(to_s)
end
end
def suc_state?(m)
return m[2][2] == 2
end
def is_person?(v)
return v > 0
end
def find_horizon_people_pair(m)
result = []
m.each_index do |y|
current_person = nil
row = m[y]
row.each_index do |x|
if is_person?(row[x]) then
result << [current_person, Point.new(x, y, row[x])] unless current_person.nil?
current_person = Point.new(x, y, row[x])
end
end
end
return result
end
def get_next_states_from_horizon_people_pair(m, left_people, right_people)
result = []
y = left_people.y
next_state1 = m.collect { |x| x.collect } # deep copy
next_state1[y][left_people.x+1], next_state1[y][right_people.x] = next_state1[y][right_people.x], next_state1[y][left_people.x+1]
next_state2 = m.collect { |x| x.collect } # deep copy
next_state2[y][right_people.x-1], next_state2[y][left_people.x] = next_state2[y][left_people.x], next_state2[y][right_people.x-1]
result << next_state1 if next_state1 != m
result << next_state2 if next_state2 != m
return result
end
def get_next_states(m)
result = []
# get horizion next states
people_pairs = find_horizon_people_pair(m)
people_pairs.each do |people_pair|
result.concat(get_next_states_from_horizon_people_pair(m, *people_pair))
end
# get vertical next states
mt = Matrix[*m].transpose.to_a
people_pairs = find_horizon_people_pair(mt)
people_pairs.each do |people_pair|
result.concat(get_next_states_from_horizon_people_pair(mt, *people_pair).collect! { |x| Matrix[*x].transpose.to_a } )
end
return result
end
def eai(m, state_stack)
state_stack << m
return true if(suc_state?(m))
next_states = get_next_states(m)
next_states.each do |next_m|
unless(state_stack.include?(next_m)) then
suc = eai(next_m, state_stack)
return true if suc
end
end
state_stack.pop
return false
end
def set_mark(m_array)
result = m_array.collect { |m| m.collect { |x| x.collect } } # deep copy
(1m_array.length).each do |i|
m_array[i].each_index do |y|
m_array[i][y].each_index do |x|
if(m_array[i-1][y][x] == m_array[i][y][x]) then
result[i][y][x] = '|'
else
result[i][y][x] = m_array[i][y][x].to_s
end
end
end
end
return result
end
m = [[1,0,0,1,0],
[0,0,0,0,0],
[0,0,0,2,0],
[0,0,0,0,0],
[1,1,0,0,1]]
result = []
suc = eai(m, result)
roads = set_mark(result)
roads.each_index do |i|
puts "---#{i}---"
pp roads[i]
end
比较难的几关的攻略:
第9关
---0---
[[1, 0, 0, 0, 0],
[0, 0, 0, 1, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 0, 0],
[1, 1, 0, 2, 0]]
---1---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "2", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "2", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---0---
[[1, 0, 0, 0, 0],
[0, 0, 0, 1, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 0, 0],
[1, 1, 0, 2, 0]]
---1---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "2", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "2", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
第10关
---0---
[[0, 2, 0, 0, 0],
[0, 0, 0, 0, 1],
[1, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[1, 1, 1, 0, 0]]
---1---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "1", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "1", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---12---
[["|", "0", "|", "|", "|"],
["|", "2", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---13---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---14---
[["|", "|", "|", "|", "|"],
["|", "0", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---15---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---16---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---0---
[[0, 2, 0, 0, 0],
[0, 0, 0, 0, 1],
[1, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[1, 1, 1, 0, 0]]
---1---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "1", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "1", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---12---
[["|", "0", "|", "|", "|"],
["|", "2", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---13---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---14---
[["|", "|", "|", "|", "|"],
["|", "0", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---15---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---16---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
第11关
---0---
[[1, 2, 0, 0, 0],
[0, 0, 0, 1, 0],
[1, 0, 0, 0, 0],
[0, 0, 0, 0, 1],
[0, 0, 1, 0, 0]]
---1---
[["0", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["0", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "0"],
["|", "|", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "0", "|", "|", "|"],
["|", "2", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---12---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---13---
[["|", "|", "|", "|", "|"],
["|", "0", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---14---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---0---
[[1, 2, 0, 0, 0],
[0, 0, 0, 1, 0],
[1, 0, 0, 0, 0],
[0, 0, 0, 0, 1],
[0, 0, 1, 0, 0]]
---1---
[["0", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["0", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "0"],
["|", "|", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "0", "|", "|", "|"],
["|", "2", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---12---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---13---
[["|", "|", "|", "|", "|"],
["|", "0", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---14---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
第13关
---0---
[[1, 0, 0, 0, 2],
[0, 0, 0, 0, 0],
[1, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[1, 0, 1, 0, 1]]
---1---
[["0", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"]]
---5---
[["|", "|", "|", "|", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "2"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "0"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---12---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---13---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "|", "|"]]
---14---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "2", "0"],
["|", "|", "|", "|", "|"]]
---15---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "2", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "|", "|"]]
---16---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "2", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---0---
[[1, 0, 0, 0, 2],
[0, 0, 0, 0, 0],
[1, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[1, 0, 1, 0, 1]]
---1---
[["0", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"]]
---5---
[["|", "|", "|", "|", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "2"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "0"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---12---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---13---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "|", "|"]]
---14---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "2", "0"],
["|", "|", "|", "|", "|"]]
---15---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "2", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "|", "|"]]
---16---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "2", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
第14关
---0---
[[1, 0, 0, 0, 2],
[0, 0, 0, 0, 0],
[1, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[1, 0, 1, 0, 1]]
---1---
[["0", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"]]
---5---
[["|", "|", "|", "|", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "2"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "0"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---12---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---13---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "|", "|"]]
---14---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "2", "0"],
["|", "|", "|", "|", "|"]]
---15---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "2", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "|", "|"]]
---16---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "2", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
>Exit code: 0
>ruby AI3.rb
---0---
[[1, 0, 0, 0, 0],
[0, 0, 0, 1, 1],
[0, 0, 0, 0, 1],
[0, 0, 0, 0, 0],
[2, 0, 0, 1, 0]]
---1---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["2", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["0", "2", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "2", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---0---
[[1, 0, 0, 0, 2],
[0, 0, 0, 0, 0],
[1, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[1, 0, 1, 0, 1]]
---1---
[["0", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"]]
---5---
[["|", "|", "|", "|", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "2"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "0"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---12---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---13---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "|", "|"]]
---14---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "2", "0"],
["|", "|", "|", "|", "|"]]
---15---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "2", "|"],
["|", "|", "|", "0", "|"],
["|", "|", "|", "|", "|"]]
---16---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "2", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
>Exit code: 0
>ruby AI3.rb
---0---
[[1, 0, 0, 0, 0],
[0, 0, 0, 1, 1],
[0, 0, 0, 0, 1],
[0, 0, 0, 0, 0],
[2, 0, 0, 1, 0]]
---1---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["2", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["0", "2", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "2", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
第15关
---0---
[[1, 1, 0, 0, 1],
[0, 0, 0, 0, 0],
[1, 0, 0, 0, 0],
[0, 0, 0, 0, 1],
[0, 2, 0, 0, 0]]
---1---
[["|", "|", "1", "|", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---3---
[["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---4---
[["0", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "0", "|"],
["|", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "0"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---12---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---13---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "2", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---14---
[["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"]]
---15---
[["|", "|", "|", "|", "|"],
["0", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---16---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "2", "|", "|"],
["|", "|", "|", "|", "|"]]
---17---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "2", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"]]
---0---
[[1, 1, 0, 0, 1],
[0, 0, 0, 0, 0],
[1, 0, 0, 0, 0],
[0, 0, 0, 0, 1],
[0, 2, 0, 0, 0]]
---1---
[["|", "|", "1", "|", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["0", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---3---
[["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---4---
[["0", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "0", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "0", "|"],
["|", "|", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "0"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---12---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---13---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "2", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---14---
[["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"]]
---15---
[["|", "|", "|", "|", "|"],
["0", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---16---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "2", "|", "|"],
["|", "|", "|", "|", "|"]]
---17---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "2", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"]]
第16关
---0---
[[0, 1, 0, 0, 1],
[0, 0, 0, 0, 1],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[2, 0, 0, 1, 1]]
---1---
[["|", "|", "1", "|", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "0"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "2", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "2", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "1", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "0", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---12---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---0---
[[0, 1, 0, 0, 1],
[0, 0, 0, 0, 1],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[2, 0, 0, 1, 1]]
---1---
[["|", "|", "1", "|", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "0", "|"]]
---3---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "0"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "0", "|", "1", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["0", "2", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "2", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---8---
[["|", "|", "|", "|", "|"],
["|", "|", "1", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---9---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "1", "0"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---10---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "|"],
["|", "|", "|", "|", "|"]]
---11---
[["|", "|", "|", "|", "|"],
["|", "0", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---12---
[["|", "|", "|", "|", "|"],
["|", "|", "0", "|", "|"],
["|", "|", "2", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
第18关
---0---
[[1, 0, 0, 1, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 2, 0],
[0, 0, 0, 0, 0],
[1, 1, 0, 0, 1]]
---1---
[["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "0"]]
---3---
[["0", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "2", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---0---
[[1, 0, 0, 1, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 2, 0],
[0, 0, 0, 0, 0],
[1, 1, 0, 0, 1]]
---1---
[["|", "1", "|", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---2---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "1", "|", "0"]]
---3---
[["0", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["1", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]
---4---
[["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---5---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "0", "|", "|"]]
---6---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "1", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "0", "|", "|", "|"]]
---7---
[["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "2", "0", "|"],
["|", "|", "|", "|", "|"],
["|", "|", "|", "|", "|"]]