216 lines
3.9 KiB
Plaintext
216 lines
3.9 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. #
|
||
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
||
|
#
|
||
|
# attack.db - pattern database for finding tactical attack moves
|
||
|
#
|
||
|
# The tactical reading functions try to capture by attacking
|
||
|
# on the immediate liberties plus certain caps and backfilling
|
||
|
# moves. This database is intended to find additional attacking
|
||
|
# moves. Notice though that these patterns doesn't help the
|
||
|
# tactical reading to find attacking 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 is useful either except A since we only have
|
||
|
# tactical attack moves here.
|
||
|
#
|
||
|
# The semantics of these patterns are that the move at * is tried as
|
||
|
# an attack of each X string in the pattern. The patterns are matched
|
||
|
# with either player as O.
|
||
|
#
|
||
|
##################################################################
|
||
|
|
||
|
|
||
|
attribute_map none
|
||
|
|
||
|
goal_elements none
|
||
|
callback_data X
|
||
|
|
||
|
|
||
|
Pattern Attack1
|
||
|
# Even if a ladder works (and is found by the tactical reading) we
|
||
|
# also want to consider the geta capture.
|
||
|
|
||
|
XOO? capture one stone
|
||
|
OX..
|
||
|
O.*?
|
||
|
?.??
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
|
||
|
Pattern Attack2
|
||
|
|
||
|
OOXX push to capture X
|
||
|
.XO*
|
||
|
....
|
||
|
----
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
|
||
|
Pattern Attack4
|
||
|
|
||
|
*OX extend to kill
|
||
|
.XO
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
|
||
|
Pattern Attack5
|
||
|
|
||
|
|.X
|
||
|
|XO
|
||
|
|*.
|
||
|
|.X
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
|
||
|
Pattern Attack6
|
||
|
|
||
|
?X block to attack and defend
|
||
|
?O
|
||
|
X*
|
||
|
O.
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
|
||
|
Pattern Attack10
|
||
|
|
||
|
?O. common geta
|
||
|
OX.
|
||
|
O.*
|
||
|
?.?
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
|
||
|
Pattern Attack11
|
||
|
|
||
|
o..?? catch two stones in a net
|
||
|
O.*.?
|
||
|
?X..o
|
||
|
?X.oo
|
||
|
??O??
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
|
||
|
Pattern Attack13
|
||
|
|
||
|
----
|
||
|
....
|
||
|
X...
|
||
|
O*.O
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
|
||
|
Pattern Attack14
|
||
|
|
||
|
?.? Sometimes better to capture indirectly
|
||
|
*.O
|
||
|
OXO
|
||
|
?O?
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
|
||
|
Pattern Attack15
|
||
|
|
||
|
XOX Capture one step away
|
||
|
X.*
|
||
|
---
|
||
|
|
||
|
:8,A,NULL
|
||
|
|
||
|
AOX
|
||
|
A.*
|
||
|
---
|
||
|
|
||
|
; lib(A)==1
|
||
|
|
||
|
|
||
|
Pattern Attack16
|
||
|
|
||
|
?*X? Capture with snapback
|
||
|
O.OX
|
||
|
?XX?
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
?*X?
|
||
|
b.OX
|
||
|
?AA?
|
||
|
|
||
|
;lib(A)==1 && olib(*)>1 && lib(b)>1
|
||
|
|
||
|
|
||
|
Pattern Attack17
|
||
|
# This is only intended for finding an alternative attack. It should
|
||
|
# have a constraint to first check whether the move above * was
|
||
|
# successful.
|
||
|
# FIXME: Add necessary machinery for this.
|
||
|
|
||
|
?X?
|
||
|
O.O
|
||
|
?*o
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
|
||
|
Pattern Attack18
|
||
|
# gf New pattern. (3.3.4)
|
||
|
|
||
|
OX
|
||
|
O.
|
||
|
X*
|
||
|
--
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
|
||
|
Pattern Attack19
|
||
|
# pp New pattern (3.3.18)
|
||
|
|
||
|
*.O May be better to capture indirectly
|
||
|
O.X
|
||
|
..O
|
||
|
|
||
|
:8,A
|
||
|
|
||
|
*.O
|
||
|
O.A
|
||
|
..O
|
||
|
|
||
|
; lib(A) == 1
|
||
|
|
||
|
|
||
|
# END OF FILE
|