Initial commit of GNU Go v3.8.
[sgk-go] / patterns / attack.db
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# 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