403 lines
5.1 KiB
Plaintext
403 lines
5.1 KiB
Plaintext
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# This is GNU Go, a Go program. Contact gnugo@gnu.org, or see #
|
|
# http://www.gnu.org/software/gnugo/ for more information. #
|
|
# #
|
|
# Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, #
|
|
# 2008 and 2009 by the Free Software Foundation. #
|
|
# #
|
|
# This program is free software; you can redistribute it and/or #
|
|
# modify it under the terms of the GNU General Public License #
|
|
# as published by the Free Software Foundation - version 3, #
|
|
# or (at your option) any later version. #
|
|
# #
|
|
# This program is distributed in the hope that it will be #
|
|
# useful, but WITHOUT ANY WARRANTY; without even the implied #
|
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR #
|
|
# PURPOSE. See the GNU General Public License in file COPYING #
|
|
# for more details. #
|
|
# #
|
|
# You should have received a copy of the GNU General Public #
|
|
# License along with this program; if not, write to the Free #
|
|
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, #
|
|
# Boston, MA 02111, USA #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#
|
|
# defense.db - pattern database for finding tactical defense moves
|
|
#
|
|
# The tactical reading functions try to defend by playing on the
|
|
# immediate liberties only. This database is intended to find
|
|
# additional defense moves. Notice though that these patterns doesn't
|
|
# help the tactical reading to find defense moves later in a move
|
|
# sequence but only at stackp=0.
|
|
#
|
|
# See patterns.db for a specification of the current database format.
|
|
#
|
|
# Since these patterns are matched during make_worms() it doesn't
|
|
# make any sense to use classifications such as X and O. No other
|
|
# classification than D is useful either since we only have tactical
|
|
# defense moves here.
|
|
#
|
|
# The semantics of these patterns are that the move at * is tried
|
|
# as a defense for each attackable O string in the pattern.
|
|
# The patterns are matched with either player as O.
|
|
#
|
|
# FIXME: There are still some redundant patterns.
|
|
#
|
|
##################################################################
|
|
|
|
|
|
attribute_map none
|
|
|
|
goal_elements none
|
|
callback_data O
|
|
|
|
|
|
Pattern Def1
|
|
|
|
X*
|
|
Ox
|
|
|
|
:8,D
|
|
|
|
X*
|
|
Ox
|
|
|
|
;olib(*)>1
|
|
|
|
|
|
Pattern Def2
|
|
# Require that the common tesuji at b doesn't invalidate this defense move.
|
|
|
|
O.*
|
|
O..
|
|
|
|
:8,D
|
|
|
|
a.*
|
|
a.b
|
|
|
|
;attack(a) && oplay_defend(*,b,a)
|
|
|
|
|
|
Pattern Def4
|
|
|
|
XOO? capture one stone
|
|
OX..
|
|
O.*?
|
|
?.??
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def5
|
|
|
|
OXoO connect under
|
|
O*..
|
|
....
|
|
----
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def6
|
|
|
|
OXXO connect under (the connection may or may not be broken)
|
|
O.*.
|
|
....
|
|
----
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def9
|
|
|
|
OX*O cut!
|
|
.OX?
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def10
|
|
|
|
XO? connection pattern
|
|
*.O
|
|
?.?
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def12
|
|
|
|
?O*X
|
|
o.XO
|
|
?O.X
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def16
|
|
|
|
-----
|
|
...O?
|
|
*.OXO
|
|
XO.X?
|
|
?XX??
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def17
|
|
|
|
+----
|
|
|.*oo
|
|
|O.o? defend with good eye shape
|
|
|XOOo
|
|
|XX??
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def21
|
|
|
|
|oOO
|
|
|.X.
|
|
|.OX
|
|
|*XO
|
|
|.O? capture to connect
|
|
|
|
:8,D
|
|
|
|
|oaa
|
|
|.X.
|
|
|.OX
|
|
|*XO
|
|
|.O?
|
|
|
|
;lib(a)>2
|
|
|
|
|
|
Pattern Def25
|
|
|
|
?XO threaten to capture
|
|
?OX
|
|
..*
|
|
?O.
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def26
|
|
|
|
O.O? Bamboo joint for defense
|
|
O.*?
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def28
|
|
|
|
?O?
|
|
Ox* defend with eye shape
|
|
?O?
|
|
|
|
:-,D
|
|
|
|
|
|
Pattern Def29
|
|
|
|
?X? make shape
|
|
.O.
|
|
...
|
|
.*.
|
|
?.?
|
|
|
|
:|,D
|
|
|
|
|
|
Pattern Def39
|
|
|
|
?X?.?? jump under
|
|
O..*.?
|
|
O....?
|
|
o....?
|
|
------
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def44
|
|
|
|
??Xx?
|
|
XXO*. override solid connection
|
|
OO...
|
|
.....
|
|
-----
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def45
|
|
|
|
OOXX push to capture X
|
|
.XO*
|
|
....
|
|
----
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def49
|
|
|
|
??X?
|
|
O*.X Draw back to defend connection
|
|
..OX
|
|
....
|
|
----
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def50
|
|
|
|
??o? hanging connection
|
|
?O.*
|
|
XXO.
|
|
----
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def52
|
|
|
|
??????
|
|
?....x jump into empty space
|
|
?.*.OO
|
|
?....x
|
|
??????
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def55
|
|
# Not on edge
|
|
|
|
ooo
|
|
O.O form eye to protect
|
|
.*X
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def56
|
|
|
|
xXO extend after hane
|
|
XO.
|
|
.*.
|
|
...
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def57
|
|
|
|
..O
|
|
o*X
|
|
..O
|
|
|
|
:-,D
|
|
|
|
|
|
Pattern Def58
|
|
|
|
?????
|
|
....? jump! (But not down to second line)
|
|
O.*.?
|
|
....?
|
|
X...?
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def59
|
|
|
|
.... jump!
|
|
O.*.
|
|
....
|
|
X.X.
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def60
|
|
|
|
OXO block opponent
|
|
.*.
|
|
?.?
|
|
|
|
:|,D
|
|
|
|
|
|
Pattern Def61
|
|
|
|
?.? extend to defend
|
|
.*.
|
|
XO?
|
|
X.?
|
|
XO?
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def62
|
|
|
|
oOo? attach
|
|
...?
|
|
.*X.
|
|
...?
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def63
|
|
|
|
O.Oo
|
|
XO.. protect by drawing back
|
|
XX*O
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def68
|
|
|
|
o.X? try to defend by clamping to connect
|
|
OX*O
|
|
....
|
|
----
|
|
|
|
:8,D
|
|
|
|
|
|
Pattern Def69
|
|
|
|
OX* atari on opponent to defend
|
|
?O.
|
|
|
|
:8,D
|
|
|
|
aC*
|
|
?b.
|
|
|
|
;lib(a)>1 && lib(b)>1 && lib(C)<=2 && olib(*)>1
|
|
|
|
|
|
Pattern Def70
|
|
# pp New Pattern - see endgame:860 (3.5.1)
|
|
|
|
OOOO* a very specific position (defend the stone on the first line)
|
|
O....
|
|
XO...
|
|
-----
|
|
|
|
:8,D
|
|
|