475 lines
5.5 KiB
Plaintext
475 lines
5.5 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 #
|
||
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
||
|
#
|
||
|
# The atari_atari attack pattern database.
|
||
|
#
|
||
|
# Further documentation may be found in the Texinfo documentation.
|
||
|
#
|
||
|
# First there is a pattern title of the form: Pattern [string]. The
|
||
|
# string is used for identifying the pattern while tuning or debugging.
|
||
|
#
|
||
|
# Then a block of the following characters representing the pattern
|
||
|
# itself.
|
||
|
#
|
||
|
# ? : don't care
|
||
|
# . : empty
|
||
|
# X : your piece,
|
||
|
# O : my piece,
|
||
|
# x : your piece or empty
|
||
|
# o : my piece or empty
|
||
|
# * : my next move
|
||
|
# -, | : edge of board
|
||
|
# + : corner of board
|
||
|
#
|
||
|
# If a pattern must not match at the edge of the board,
|
||
|
# an extra row of ?'s in the pattern may be added. (This
|
||
|
# will not add to the time taken to check the pattern.)
|
||
|
#
|
||
|
#################
|
||
|
#
|
||
|
# In the second field (classification) the following pattern attributes
|
||
|
# are possible. Friendly stones are 'O', opponent stones are 'X'.
|
||
|
#
|
||
|
# s : "Sacrifice" pattern. Allow sacrifice through self atari.
|
||
|
# Notice that this is different from the usual meaning of the
|
||
|
# s classification since all but a few moves in an atari_atari
|
||
|
# sequence are expected to be sacrifices.
|
||
|
#
|
||
|
# c : "Conditional" pattern. Don't accept the move unless it is also
|
||
|
# found by a non-conditional pattern or by one more conditional
|
||
|
# pattern that threatens some other string.
|
||
|
#
|
||
|
#########################################################
|
||
|
|
||
|
|
||
|
attribute_map none
|
||
|
|
||
|
goal_elements Xx
|
||
|
callback_data X
|
||
|
|
||
|
|
||
|
Pattern A1
|
||
|
|
||
|
X*
|
||
|
|
||
|
:-,-
|
||
|
|
||
|
A*
|
||
|
|
||
|
;lib(A) == 2
|
||
|
|
||
|
|
||
|
Pattern A2
|
||
|
|
||
|
xXOXx
|
||
|
..X*.
|
||
|
.....
|
||
|
-----
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
|
||
|
Pattern A3
|
||
|
|
||
|
OX
|
||
|
X*
|
||
|
X.
|
||
|
xx
|
||
|
--
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
|
||
|
Pattern A4
|
||
|
|
||
|
?X
|
||
|
O*
|
||
|
X.
|
||
|
xx
|
||
|
--
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
|
||
|
Pattern A5
|
||
|
|
||
|
?O?
|
||
|
X*X
|
||
|
...
|
||
|
---
|
||
|
|
||
|
:|,-
|
||
|
|
||
|
|
||
|
Pattern A6
|
||
|
|
||
|
*.X
|
||
|
oXO
|
||
|
|
||
|
:8,c
|
||
|
|
||
|
*.X
|
||
|
oXO
|
||
|
|
||
|
;olib(*)>3
|
||
|
|
||
|
|
||
|
Pattern A7
|
||
|
|
||
|
X.X reduce eyespace
|
||
|
X*X
|
||
|
OXO
|
||
|
|
||
|
:|,s
|
||
|
|
||
|
|
||
|
Pattern A7b
|
||
|
# gf New pattern. (3.5.10)
|
||
|
|
||
|
|.X reduce eyespace
|
||
|
|*X
|
||
|
|XO
|
||
|
|.X
|
||
|
|
||
|
:8,s
|
||
|
|
||
|
|
||
|
Pattern A7c
|
||
|
|
||
|
X.X reduce eyespace
|
||
|
X*X
|
||
|
OX.
|
||
|
|
||
|
:8,s
|
||
|
|
||
|
A.X
|
||
|
A*X
|
||
|
OXb
|
||
|
|
||
|
;lib(A)==2 && olib(b)>1
|
||
|
|
||
|
|
||
|
Pattern A8
|
||
|
|
||
|
O..
|
||
|
?X*
|
||
|
??O
|
||
|
|
||
|
:8,c
|
||
|
|
||
|
|
||
|
Pattern A9
|
||
|
|
||
|
X*
|
||
|
OX
|
||
|
|
||
|
:/,-
|
||
|
|
||
|
X*
|
||
|
OX
|
||
|
|
||
|
;safe_omove(*)
|
||
|
|
||
|
|
||
|
Pattern A10
|
||
|
|
||
|
?X?
|
||
|
XOX
|
||
|
.*.
|
||
|
|
||
|
:|,-
|
||
|
|
||
|
|
||
|
Pattern A11
|
||
|
|
||
|
*.X
|
||
|
?.X
|
||
|
?XO
|
||
|
|
||
|
:8,c
|
||
|
|
||
|
*.X
|
||
|
?.X
|
||
|
?XO
|
||
|
|
||
|
;olib(*)>3
|
||
|
|
||
|
|
||
|
Pattern A12
|
||
|
|
||
|
.X?
|
||
|
*.X
|
||
|
.X?
|
||
|
---
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
.X?
|
||
|
*.X
|
||
|
.A?
|
||
|
---
|
||
|
|
||
|
;lib(A)==2 && olib(*)>3
|
||
|
|
||
|
|
||
|
Pattern A13
|
||
|
|
||
|
*O
|
||
|
.X
|
||
|
.X
|
||
|
.x
|
||
|
--
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
*O
|
||
|
.A
|
||
|
.A
|
||
|
.x
|
||
|
--
|
||
|
|
||
|
;lib(A)==3 && olib(*)>=3
|
||
|
|
||
|
|
||
|
Pattern A14
|
||
|
|
||
|
.X.
|
||
|
X*X
|
||
|
?O?
|
||
|
|
||
|
:|,-
|
||
|
|
||
|
.X.
|
||
|
A*B
|
||
|
?O?
|
||
|
|
||
|
;safe_omove(*) && oplay_attack_either(*,A,B)
|
||
|
;&& !oplay_connect(*,A,B)
|
||
|
|
||
|
|
||
|
Pattern A15
|
||
|
#evand new pattern (3.3.13)
|
||
|
|
||
|
?X?
|
||
|
X*.
|
||
|
?XX
|
||
|
|
||
|
:8,s
|
||
|
|
||
|
?X?
|
||
|
X*b
|
||
|
?AA
|
||
|
|
||
|
;lib(A) == 2 && xlib(b) <= 2
|
||
|
|
||
|
|
||
|
Pattern A16
|
||
|
#evand new pattern (3.3.13)
|
||
|
|
||
|
*x
|
||
|
X.
|
||
|
x.
|
||
|
--
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
*x
|
||
|
A.
|
||
|
x.
|
||
|
--
|
||
|
|
||
|
;lib(A) == 3
|
||
|
|
||
|
|
||
|
Pattern A17
|
||
|
# gf New pattern. (3.3.16)
|
||
|
|
||
|
?O??
|
||
|
o*XX
|
||
|
..xX
|
||
|
...X
|
||
|
----
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
?O??
|
||
|
o*AA
|
||
|
..xA
|
||
|
...A
|
||
|
----
|
||
|
|
||
|
;lib(A)==3 && olib(*)>=2
|
||
|
|
||
|
|
||
|
Pattern A18
|
||
|
# gf New pattern. (3.3.17)
|
||
|
|
||
|
??.?
|
||
|
?X*.
|
||
|
OOX.
|
||
|
?X..
|
||
|
??.?
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
??.?
|
||
|
?C*.
|
||
|
eeXa
|
||
|
?Db.
|
||
|
??.?
|
||
|
|
||
|
;!oplay_attack(*,e) && oplay_attack(*,a,C) && oplay_attack(b,a,D)
|
||
|
|
||
|
|
||
|
Pattern A19
|
||
|
# gf New pattern. (3.3.17)
|
||
|
|
||
|
?*X threaten snapback
|
||
|
O..
|
||
|
?XX
|
||
|
|
||
|
:8,c
|
||
|
|
||
|
?*X
|
||
|
O..
|
||
|
?AA
|
||
|
|
||
|
;lib(A)==2 && olib(*)>1
|
||
|
|
||
|
|
||
|
Pattern A20
|
||
|
# gf New pattern. (3.3.17)
|
||
|
|
||
|
|*X threaten snapback
|
||
|
|..
|
||
|
|XX
|
||
|
|
||
|
:8,c
|
||
|
|
||
|
|*X
|
||
|
|..
|
||
|
|AA
|
||
|
|
||
|
;lib(A)==2 && olib(*)>1
|
||
|
|
||
|
|
||
|
Pattern A21
|
||
|
# gf New pattern. (3.3.17)
|
||
|
|
||
|
.XO
|
||
|
*.X
|
||
|
---
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
.XO
|
||
|
*.A
|
||
|
---
|
||
|
|
||
|
;lib(A)==2 && olib(*)>2
|
||
|
|
||
|
|
||
|
Pattern A22
|
||
|
#evand New pattern. (3.3.18)
|
||
|
|
||
|
?.X
|
||
|
O.X
|
||
|
X*X
|
||
|
?X?
|
||
|
|
||
|
:8,s
|
||
|
|
||
|
?.A
|
||
|
ObA
|
||
|
X*A
|
||
|
?X?
|
||
|
|
||
|
;lib(A) <= 4 && oplay_attack(*,b,A) && oplay_defend(*,?,*)
|
||
|
|
||
|
|
||
|
Pattern A23
|
||
|
# evand New pattern. (3.3.19)
|
||
|
|
||
|
XXO
|
||
|
.X.
|
||
|
.*.
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
AAB
|
||
|
.A.
|
||
|
.*.
|
||
|
|
||
|
;lib(A) == 3 && lib(B) > 1 && oplay_attack(*,A)
|
||
|
|
||
|
|
||
|
Pattern A24
|
||
|
# pp New pattern - see atari_atari:25 and blunder:31 (3.5.1)
|
||
|
|
||
|
?*?
|
||
|
XOX
|
||
|
|
||
|
:|,-
|
||
|
|
||
|
?*?
|
||
|
BAC
|
||
|
|
||
|
; lib(A) == 1 && lib(B) + lib(C) <= 6 && !oplay_defend_both(*,B,C)
|
||
|
|
||
|
|
||
|
Pattern A25
|
||
|
# gf New pattern. (3.5.4)
|
||
|
|
||
|
..X
|
||
|
*OX
|
||
|
.XO
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
..A
|
||
|
*OA
|
||
|
.BO
|
||
|
|
||
|
;lib(A)<=3 && lib(B)<=3 && (oplay_attack(*,A) || oplay_attack(*,B))
|
||
|
|
||
|
|
||
|
Pattern A26
|
||
|
# pp New pattern, see kgs:490. (3.7.4)
|
||
|
|
||
|
?XX
|
||
|
O*.
|
||
|
?X.
|
||
|
|
||
|
:8,-
|
||
|
|
||
|
?CC
|
||
|
A*a
|
||
|
?B.
|
||
|
|
||
|
# FIXME: The constraint is not very good.
|
||
|
; lib(B) <= 5 && lib(A) > lib(B) && !oplay_defend(*,?,a,C)
|
||
|
|
||
|
|
||
|
# END OF FILE
|