# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# 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 #
# 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 General Fuseki Pattern Database, fuseki.db
# 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
# x : your piece or empty
# ! : additional stones to be placed on the board (together with *)
# 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.)
# After the pattern, some supplementary information in the format:
# :trfno, classification, [values], helper_function
# These and other aspects of the pattern database are documented
# in the Texinfo documentation.
# Any line beginning with #, or any part of a line following
# whitespace is a comment.
# This database has the special property that there are stones
# temporarily added at the very corners of the board when
# called. This allows us to use pattern matching for the first real
# stones in an empty corner but also means that the extreme corner
# stones must be included in all corner patterns.
# There are no meaningful classifications that can be used in this
# database. All patterns need to have a specified value, which is
# related to the probability that the pattern will be used. Basically
# a pattern which has a value being N higher than another pattern is
# 2^N times more probable to be chosen. Additionally there are some
# cutoffs involved, see engine/handicap.c for details.
|..... 4-4 in empty corner
|.... 3-3 in empty corner
|..... 3-4 in empty corner
|...*. 5-4 in empty corner
|..*.. 5-3 in empty corner
|....*. 5-5 in empty corner
|...*.. ponnuki in corner
;remaining_handicap_stones() > 20
|..O.*. make shimari extra strong
|...................| san-ren-sei
|...................| low chinese
|...................| high chinese
|............ extend from shimari
;o_somewhere(a,b) && o_somewhere(c,d)
|............ extend from shimari
;o_somewhere(a,b) && o_somewhere(c,d)
|............ extend from shimari
|............ extend from shimari
|..oo........ extend from hoshi
|..oo........ extend from hoshi
|..oooo........ early edge move
|..ooo....*.... early edge move
|..ooo....O... iron pillar
|..ooo....*.... early center move
|..ooo....*.... early center move
;remaining_handicap_stones() > 4
|..ooo...*.!... early center formation
;remaining_handicap_stones() > 9
|..ooo...*.!... early center ponnuki
;total_handicap_stones() > 18
|O.................O| special influence oriented pattern
;total_handicap_stones() >= 5
|O.................O| great wall!
;total_handicap_stones() >= 5
...O.. strengthen connection