CN110275739A - 一种在常数时间内判断五子棋禁手和棋形属性的方法 - Google Patents

一种在常数时间内判断五子棋禁手和棋形属性的方法 Download PDF

Info

Publication number
CN110275739A
CN110275739A CN201910686213.7A CN201910686213A CN110275739A CN 110275739 A CN110275739 A CN 110275739A CN 201910686213 A CN201910686213 A CN 201910686213A CN 110275739 A CN110275739 A CN 110275739A
Authority
CN
China
Prior art keywords
chess
type
vacancy
black
shape
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910686213.7A
Other languages
English (en)
Other versions
CN110275739B (zh
Inventor
路纲
吴晓军
李海霞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shaanxi Normal University
Original Assignee
Shaanxi Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shaanxi Normal University filed Critical Shaanxi Normal University
Priority to CN201910686213.7A priority Critical patent/CN110275739B/zh
Publication of CN110275739A publication Critical patent/CN110275739A/zh
Application granted granted Critical
Publication of CN110275739B publication Critical patent/CN110275739B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F3/00Board games; Raffle games
    • A63F3/00003Types of board games
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F3/00Board games; Raffle games
    • A63F3/02Chess; Similar board games
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Educational Technology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

一种在常数时间内判断五子棋禁手和棋形属性的方法,包括:S100:定义所有棋形和对应的棋形值;S200:在棋型库中用结构体矩阵存储黑白双方在行棋过程中可能遇到的所有棋型;S300:将棋型的总长度、已有的棋子数量及位置、空位置映射成二进制串,依据二进制串所代表的数值,在常数时间内在棋型库中查询到每个棋型中的空位的棋形属性;S400:通过对一个空位点在四个方向上的棋形值分析判断黑方在该空位点行棋是否是黑方的禁手,同时确定受影响的各空位点的棋形值。

Description

一种在常数时间内判断五子棋禁手和棋形属性的方法
技术领域
本公开属于人工智能与机器博弈技术领域,具体涉及一种快速判断禁手和棋形属性的五子棋博弈方法。
背景技术
机器博弈又称计算机博弈,被喻为人工智能皇冠上的明珠,多以下棋为例研究其规律,该领域最著名的事件是深蓝(Deep Blue)超级电脑于1997年5月以3.5∶2.5击败国际象棋世界冠军卡斯巴罗夫。
五子棋是中华民族民间传统文化的代表之一,同时也是一个典型的具有完备信息的双人零和博弈游戏。典型的计算机弈棋系统通常可分为四部分:知识表示、走法生成、评估函数、博弈树搜索。三手交换、五手两打及限制开局棋形等规则用计算机实现起来没有任何难度,编制高智能职业规则五子棋软件的关键是看它能否快速判断“禁手及棋形属性”,因为后面的各类博弈树搜索算法和棋形库匹配等人工智能(AI)技术必须以此判断为基础。在采用相同搜索算法的情况下,判断的速度越快,同等时间内搜索的范围就越大,棋力也就越强。
目前五子棋博弈方法中棋力较强的大都未公开具体方法,对关键问题,即如何定义棋形属性和怎么实现快速判断禁手和查找棋形属性均未说明。
发明内容
鉴于此,本发明提供了一种在常数时间内判断五子棋禁手和棋形属性的方法,包括如下步骤:
S100:定义所有棋形和对应的棋形值;
S200:在棋型库中用结构体矩阵存储黑白双方在行棋过程中可能遇到的所有棋型;
S300:将棋型的总长度、已有的棋子数量及位置、空位置映射成二进制串,依据二进制串所代表的数值,在常数时间内在棋型库中查询到每个棋型中的空位的棋形属性;
S400:通过对一个空位点在四个方向上的棋形值分析判断黑方在该空位点行棋是否是黑方的禁手,同时确定受影响的各空位点的棋形值。
通过上述技术方案,本方法不仅能在常数时间判断禁手,还能同时确定棋盘上各空点的棋形属性,理论时间复杂度最优,实际操作步骤少效率高,只在最初载入棋型库时有一次性读取耗时,是编制高性能五子棋人工智能软件的基础。
附图说明
图1是本发明一个实施例中所提供的一种在常数时间内判断五子棋禁手和棋形属性的方法的流程示意图;
图2是本发明一个实施例中LP[6][10]存储的部分黑棋棋型属性;
图3是本发明一个实施例中LP[6][10]的第138行的黑棋棋型定义示例图。
具体实施方式
在一个实施例中,本公开中出现的术语解释如下:
1)方向:棋盘上共有4种方向即,横(从左至右),竖(从上至下),左斜(从左上至右下),右斜(从右上至左下)。
2)正向:棋盘上任意点A的右方、下方、右下方和左下方向统称为“点A的正向”。
3)负向:棋盘上任意点A的左方、上方、左上方和右上方向统称为“点A的负向”。
4)空位:棋盘上未落子的位置称为空位。以下举例时用“□”表示棋盘上的空位,用●、○分别表示黑、白方棋子。
5)棋型:某方棋子和空位在某方向上的排列称为该方的一个棋型,棋型的边界是棋盘边界或另一方的棋子,且棋型不包含另一方的棋子。例如,排列□●□□□●●是黑方的一个棋型。
6)相连:在某方向上,同种颜色的棋子无间隔地连在一起。
7)开:某颜色在某方向上相连棋型,在从其两端点分别出发的正向和负向上、在一定长度范围(即某个数值的交叉点个数)内,不存在棋子或棋盘边界。
8)闭:某颜色在某方向上相连棋形,在从其两端点分别出发的正向或负向(二者只能居其一)上、在一定长度范围(即某个数值的交叉点个数)内,存在棋子或棋盘边界。
9)一:同颜色棋子在某方向的边上相连,相连棋型的棋子个数为1。
10)二:同颜色棋子在某方向的边上相连,相连棋型的棋子个数为2。
11)三:同颜色棋子在某方向的边上相连,相连棋型的棋子个数为3。
12)四:同颜色棋子在某方向的边上相连,相连棋型的棋子个数为4。
13)五:同颜色棋子在某方向的边上相连,相连棋型的棋子个数为5。
14)开一:某方向上的棋型,既符合开的定义,也符合一的定义,则为开一棋型。
15)开二:某方向上的棋型,既符合开的定义,也符合二的定义,则为开二棋型。
16)开三:某方向上的棋型,既符合开的定义,也符合三的定义,则为开三棋型。
17)开四:某方向上的棋型,既符合开的定义,也符合四的定义,则为开四棋型。
18)闭一:某方向上的棋型,既符合闭的定义,也符合一的定义,则为闭一棋型。
19)闭二:某方向上的棋型,既符合闭的定义,也符合二的定义,则为闭二棋型。
20)闭三:某方向上的棋型,既符合闭的定义,也符合三的定义,则为闭三棋型。
21)闭四:某方向上的棋型,既符合闭的定义,也符合四的定义,则为闭四棋型。
22)双三:某方在某点落子后,会在两个方向上同时形成开三。双三对黑棋来说是禁手,将立即判负,白方不受此规则限制。
23)双四:某方在某点落子后,会在两个方向上同时形成开四或闭四、或一个开四一个闭四。双四对黑棋来说是禁手,将立即判负,白方不受此规则限制。
24)五连:在某方向上,五个同颜色的子相连排列在一起。该颜色一方立即获胜。
25)长连:某方在某点落子后会在某个方向上形成子数大于5的相连棋型,称为长连。长连对黑棋来说是禁手,将立即判负,白方长连立即判胜。对于黑方来说,长连的优先级大于五连,即尽管长连中包含了五连,还是要当黑方长连来处理。
26)棋形:棋盘上某个空位的编号称为棋形;对于同一个空位,黑白方可能有不同的编号。以□●□□□●●为例,对于黑方来说,4个空位的编号都是10,对于白方来说,都是-1。
在一个实施例中,参见图1,其公开了一种在常数时间内判断五子棋禁手和棋形属性的方法,包括如下步骤:
S100:定义所有棋形和对应的棋形值;
S200:在棋型库中用结构体矩阵存储黑白双方在行棋过程中可能遇到的所有棋型;
S300:将棋型的总长度、已有的棋子数量及位置、空位置映射成二进制串,依据二进制串所代表的数值,在常数时间内在棋型库中查询到每个棋型中的空位的棋形属性;
S400:通过对一个空位点在四个方向上的棋形值分析判断黑方在该空位点行棋是否是黑方的禁手,同时确定受影响的各空位点的棋形值。
就该实施例而言,本方法能够在常数(最优)时间内判断当前行棋是否形成五子棋的禁手,并且在判断禁手的同时确定棋盘上各点的棋形属性,提升了五子棋博弈软件计算的速度。
常数时间即O(1),是算法的时间复杂度的一种表征形式,与输入数据无关,此处是指在落子的同时就能判断该落子点是否会形成禁手。
在一个实施例中,定义所有棋形和对应的棋形值,形成棋形编号和棋形值表,如表1所示。
表1棋形编号和棋形值
就该实施例而言,inf表示无穷大,-inf表示负无穷大。这里的棋形编号是为了方便人记忆而采用的,在实际程序中可以采用连续的编号如1、2、3等来替代。棋形值的具体数值也不是唯一的,只要能达到判断禁手的目的即可。
棋型属性定义可参见术语解释和表1,如开,闭,双三双四。对某些特殊的棋型属性,我们可以赋予它一个编号(可任意设置,方便记忆即可)及棋形值,参照禁手规则对棋形值判断,便于我们判断是否形成黑棋禁手及棋力强弱。
在另一个实施例中,所述S200步骤进一步包括:
S201:建立棋型库的条目;
S202:构建棋型库的数据结构;
S203:列出了黑棋的所有棋型的棋形分析结果。
就该实施例而言,棋形库记录了黑白双方在行棋过程中可能遇到的所有棋型,并包含了棋型中空位的棋形。库中一共有108960个棋型,黑白双方各占一半。棋型库的作用是让黑白方可以在常数时间,即o(1),内来判断某空位点的属性和价值,进而决定是否选择该空位落子。因此,可以将棋型库理解为针对空位建立的库,它利用了以空间换时间的思想。
棋型库被组织成一个15×15的结构体矩阵。用LP表示这个结构体矩阵的名称。结构体矩阵的行表示棋型中包含的某方棋子的个数,结构体矩阵的列表示棋型的长度。LP是一个二维结构体矩阵,结构体矩阵元素的长度不一定相等,是一种非线性结构。通过使用棋型的子数(确定所在LP行)、长度(确定所在LP列)、特征码和Hash函数(确定棋型在LP元素中的具体位置),可以在常数时间内获知每个棋型中的空位的棋形属性。
由于这种棋型的数量巨大,靠人工分析耗时费力,还容易出错。本方法列出了黑棋的所有棋型的棋形分析结果,用户只要拿来直接使用即可,避免了分析过程。
在另一个实施例中,所述S201步骤进一步包括:棋型库中的任一个条目记录的是某个棋型的棋子和空位的排列,以及空位的棋形属性。
下面通过一个黑方棋型条目□□●●□●的例子来说明如何建立一个条目,三个空位从左至右分别称为1号、2号、3号空位。
1)如果黑棋在1号空位上落子将形成●□●●□●棋型,此后不论黑棋如何填最后的两个空位,都不可能形成5连(所有空位都填上的话将形成长连)。因此1号空位对黑方来说,符合“棋形定义”中10棋形的定义。
2)如果黑棋在2号空位上落子将形成□●●●□●棋型,这个棋型中黑方有一个不连续的四,即闭四棋型(此后如果黑棋继续填空的话,将填在第3个空位处形成5连)。因此2号空位对黑方来说,符合“棋形定义”中41棋形的定义。
3)如果黑棋在3号空位上落子将形成□□●●●●棋型,这个棋型中黑方有一个连续的四,即闭四棋型(此后如果黑棋继续填空的话,将填在第2个空位处形成5连)。因此3号空位对黑方来说,符合“棋形定义”中41棋形的定义。
这样,棋型条目可建立为“10,41,●●,41,●”。根据“棋形定义”,有子的位置可将棋形定义为-1,因此这个条目可改写成[10,41,-1,-1,41,-1]。
对于白方棋型□□○○□○来说,根据“棋形定义”可写作:[31,41,-1,-1,41,-1]。
就该实施例而言,在标准15×15棋盘上,某棋型包含的格点数(含棋子和空位)范围为1-15,因此,理论上黑白双方可能的棋型数目为2×(21+22+…+215)=131068个。但实际中有些棋型是不可能存在的,例如□●●●●●,由于黑方已经获胜,无需再判断1号空位的属性了,因此,实际的有效棋型条目数量是108960个。
在另一个实施例中,所述S202步骤进一步包括:所述棋型库是一个15×15的结构体矩阵,该结构体矩阵的行表示棋型中包含的某方棋子的个数,该结构体矩阵的列表示棋型的长度。
仍以□□●●□●棋型为例加以说明。从上一个实施例可知该棋型被表示成[10,41,-1,-1,41,-1],其中棋子数为3(即3个-1),长度为6,因此,这个棋型被保存在LP[3][6]位置。其中,LP表示15×15的结构体矩阵的名称。但是,棋型●●●□□□(-1,-1,-1,41,41,10)也符合棋子数量和长度的规定,也应该保存在LP[3][6]中。事实上,应该保存在LP[3][6]位置的棋型一共有6!/3!/(6-3)!=20个,其中!表示阶乘,如表2所示。
表2.保存在LP[3][6]位置的所有黑方棋型
序号 棋型 序号 棋型
1 10 41 41 -1 -1 -1 11 -1 10 10 10 -1 -1
2 10 41 -1 41 -1 -1 12 -1 10 10 -1 10 -1
3 10 41 -1 -1 41 -1 13 -1 41 41 -1 -1 10
4 41 42 -1 -1 -1 41 14 -1 10 -1 10 10 -1
5 10 -1 41 41 -1 -1 15 -1 41 -1 41 -1 10
6 10 -1 41 -1 41 -1 16 -1 41 -1 -1 41 10
7 41 -1 42 -1 -1 41 17 -1 -1 10 10 10 -1
8 10 -1 -1 41 41 -1 18 -1 -1 41 41 -1 10
9 41 -1 -1 42 -1 41 19 -1 -1 41 -1 41 10
10 41 -1 -1 -1 42 41 20 -1 -1 -1 41 41 10
就该实施例而言,经上面分析看到,LP是一个二维结构体矩阵,结构体矩阵元素的长度不一定相等,是一种非线性结构。
在另一个实施例中,图2所示,LP[6][10]中的6表示有6个棋子,10表示棋型长度。事实上,应该保存在LP[6][10]位置的棋型一共有10!/6!/(10-6)!=210个,除去不存在的棋型,LP[6][10]实际有185个棋型。LP[6][10]中的-1代表棋盘上的一个黑子;10代表黑棋在该空位落子后,将来会形成长连;31代表该黑棋在此空位落子后只能成闭三;41代表黑棋在该空位落子后只能成闭四;50代表该空位黑子落子后形成五连,黑方立即获胜;60代表黑方在此空位落子后立即形成长连禁手,判负;70代表黑方在此空位落子后形成同一方向上的双四禁手,立即判黑负。
在另一个实施例中,图3为图2第138行的黑棋棋型定义示例说明。如果在1号和4号空位插入一个黑棋那么将会形成闭四,如果在2号和3号空位插入一个黑棋,那么将会形成双四禁手,黑棋立即判负。
在另一个实施例中,所述S300步骤进一步包括:将棋型的总长度、已有的棋子数量及位置、空位置映射成二进制串,构成每个棋型对应的特征码,利用Hash函数在特征码和棋型库中的棋型的序号之间建立一个映射函数,依据二进制串所代表的数值,在棋型库中用常数时间查询到每个棋型中的空位的棋形属性。
所述构建每个棋型对应的特征码具体如下:对于每一个棋型,把有子的位置设为1,把空位设为0,则对应的2进制数即为棋型的特征码。例如□□●●□●棋型对应的2进制数为001101,这个2进制数被称为棋型的特征码或签名,用符号S来表示。
就该实施例而言,上述实施例中的每一个在LP[3][6]中的棋型都是唯一的,则对应的2进制数也是唯一的。利用Hash函数在特征码和该棋型在表2中的序号之间建立一个映射函数H,则只要输入棋型特征码就能在表2中找到该棋型,Hash查找的时间复杂度为O(1)。
在另一个实施例中,具体的Hash函数有多种形式,作为示例,针对表2的例子可选为,H=S%32-2,其中%表示求模运算。
就该实施例而言,这个Hash空间的大小为26,即比表2空间(20)略大一些。LP结构体矩阵其他元素位置所对应的Hash函数可能与此不同,可自行设定,以节省空间为目标。
在另一个实施例中,以横向、黑棋型为例说明如何在行棋过程中记录棋型,其他3种方向(竖、左斜、右斜)以及白棋型的记录方法完全相同。
1)建立一个15×15的棋形值矩阵,每个元素记录3个值,即所属棋型范围的[起点,终点]和棋形值,未开局之前,初始化为[1,15]。
2)当该横向上落黑子后,起点终点值保持不变。
3)当该横向上落白子后,该白子左边直至边界或碰到另一个白子之间的所有空位的棋型范围的终点改为该白子左边第1个位置,起点不变;该白子右边直至边界或碰到另一个白子之间的所有空位的棋型范围的起点改为该白子右边第1个位置,终点不变。
4)根据起点终点组成的编号在棋形编号和棋形值表中提取棋形值,即将该白子左右两边的空位的黑棋形值写入对应棋形值矩阵元素。
5)此后,当该方向上顺序落子时,重复2)、3)和4)步骤。
其中,棋型范围就是一个棋子到另一个棋子之间的距离,因此用到[起点,终点]来表示棋型范围。因为这里是以横向的黑棋举例的,所以所述的棋形值只有横向的棋形值,要叠加四个方向的棋形值才能得到最终的棋形值。这里第1个位置是指最靠近落子点的棋子的位置。
就该实施例而言,在同一个局面下,博弈算法可能多次需要用到同一个点的棋形值,因此,最节省时间的方式是用一个棋形值矩阵记录每个点在4个方向上的棋形值,省得每次到棋型库中查找,这仍是以空间换时间的策略。
上述步骤中的第4步如果省略,则需每次到棋型库中取棋形值。另外,根据具体的博弈算法要求,实际上可能不必要每个空位都写棋形值,一些已经无价值的点不需要再写入棋形值了,这样可大幅节省算法所需时间。
在另一个实施例中,根据一个空位点在4个方向上的棋形值(见表1棋形值)的和,就可以判断该点是否是黑方的禁手,方法如下:
S401:如果一个空位点在某方向上棋形值为inf,则该空位点是获胜点,不是禁手;否则,把该空位点在4个方向上的棋形值加起来得到sum,进行下面的判断;
S402:如果sum<0,该空位点是禁手;
S403:如果包含至少有两个32棋型,则该空位点是禁手;其中,32棋型指该空位落子后成开三;
S404:如果包含至少有两个四棋型,所述两个四棋型指双41,或双42,或41+42的组合,则该空位点是禁手;其中41指该空位落子后只能成闭四,42指该空位落子后成开四;
S405:sum不满足上述S402至S404条件的,都不是禁手。
尽管以上结合附图对本发明的实施方案进行了描述,但本发明并不局限于上述的具体实施方案和应用领域,上述的具体实施方案仅仅是示意性的、指导性的,而不是限制性的。本领域的普通技术人员在本说明书的启示下和在不脱离本发明权利要求所保护的范围的情况下,还可以做出很多种的形式,这些均属于本发明保护之列。

Claims (10)

1.一种在常数时间内判断五子棋禁手和棋形属性的方法,包括如下步骤:
S100:定义所有棋形和对应的棋形值;
S200:在棋型库中用结构体矩阵存储黑白双方在行棋过程中可能遇到的所有棋型;
S300:将棋型的总长度、已有的棋子数量及位置、空位置映射成二进制串,依据二进制串所代表的数值,在常数时间内在棋型库中查询到每个棋型中的空位的棋形属性;
S400:通过对一个空位点在四个方向上的棋形值分析判断黑方在该空位点行棋是否是黑方的禁手,同时确定受影响的各空位点的棋形值。
2.根据权利要求1所述的方法,优选的,所述S200步骤进一步包括:
S201:建立棋型库的条目;
S202:构建棋型库的数据结构;
S203:列出了黑棋的所有棋型的棋形分析结果。
3.根据权利要求2所述的方法,所述S201步骤进一步包括:棋型库中的任一个条目记录的是某个棋型的棋子和空位的排列,以及空位的棋形属性。
4.根据权利要求2所述的方法,所述S202步骤进一步包括:所述棋型库是一个15×15的结构体矩阵,该结构体矩阵的行表示棋型中包含的某方棋子的个数,该结构体矩阵的列表示棋型的长度。
5.根据权利要求1所述的方法,所述S300步骤进一步包括:将棋型的总长度、已有的棋子数量及位置、空位置映射成二进制串,构成每个棋型对应的特征码,利用Hash函数在特征码和棋型库中的棋型的序号之间建立一个映射函数,依据二进制串所代表的数值,在常数时间内在棋型库中查询到每个棋型中的空位的棋形属性。
6.根据权利要求5所述的方法,所述Hash函数为棋型的特征码%32-2,其中%表示求模运算。
7.根据权利要求1所述的方法,所述S400步骤进一步包括:
S401:如果一个空位点在某方向上棋形值为inf,则该空位点是获胜点,不是禁手;否则,把该空位点在4个方向上的棋形值加起来得到sum,进行下面的判断;
S402:如果sum<0,该空位点是禁手;
S403:如果包含至少有两个32棋型,则该空位点是禁手;其中,32棋型指该空位落子后成开三;
S404:如果包含至少有两个四棋型,所述两个四棋型指双41,或双42,或41+42的组合,则该空位点是禁手;其中41指该空位落子后只能成闭四,42指该空位落子后成开四;
S405:sum不满足上述S402至S404条件的,都不是禁手。
8.根据权利要求1所述的方法,所述S300步骤之后S400步骤之前进一步包括如下步骤:用棋形值矩阵记录每个点在四个方向上的棋形值。
9.根据权利要求8所述的方法,所述棋形值矩阵是一个15×15的矩阵,每个元素记录3个值,分别是所属棋型范围[起点,终点]和棋形值。
10.根据权利要求9所述的方法,未开局之前,所述棋形值矩阵的所属棋型范围初始化为[1,15]。
CN201910686213.7A 2019-07-26 2019-07-26 一种在常数时间内判断五子棋禁手和棋形属性的方法 Active CN110275739B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910686213.7A CN110275739B (zh) 2019-07-26 2019-07-26 一种在常数时间内判断五子棋禁手和棋形属性的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910686213.7A CN110275739B (zh) 2019-07-26 2019-07-26 一种在常数时间内判断五子棋禁手和棋形属性的方法

Publications (2)

Publication Number Publication Date
CN110275739A true CN110275739A (zh) 2019-09-24
CN110275739B CN110275739B (zh) 2023-03-28

Family

ID=67965540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910686213.7A Active CN110275739B (zh) 2019-07-26 2019-07-26 一种在常数时间内判断五子棋禁手和棋形属性的方法

Country Status (1)

Country Link
CN (1) CN110275739B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2635159Y (zh) * 2003-07-21 2004-08-25 徐有震 游戏比赛棋
CN102932788A (zh) * 2012-10-26 2013-02-13 南宁佰睿技术开发有限公司 一种手机的身份识别和近场支付的方法
CN105817029A (zh) * 2016-03-14 2016-08-03 安徽大学 六子棋博弈系统中基于路和棋型的混合搜索方法
CN106426165A (zh) * 2016-09-29 2017-02-22 陕西科技大学 一种人机对弈五子棋机器人控制方法
CN107341548A (zh) * 2017-06-26 2017-11-10 北京深度奇点科技有限公司 一种数据处理方法、装置及电子设备
CN108052785A (zh) * 2018-02-01 2018-05-18 北京理工大学 一种不围棋最佳落子点的确定方法及确定系统
CN109421052A (zh) * 2017-08-24 2019-03-05 河海大学 一种基于人工智能的五子棋对弈机器人

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2635159Y (zh) * 2003-07-21 2004-08-25 徐有震 游戏比赛棋
CN102932788A (zh) * 2012-10-26 2013-02-13 南宁佰睿技术开发有限公司 一种手机的身份识别和近场支付的方法
CN105817029A (zh) * 2016-03-14 2016-08-03 安徽大学 六子棋博弈系统中基于路和棋型的混合搜索方法
CN106426165A (zh) * 2016-09-29 2017-02-22 陕西科技大学 一种人机对弈五子棋机器人控制方法
CN107341548A (zh) * 2017-06-26 2017-11-10 北京深度奇点科技有限公司 一种数据处理方法、装置及电子设备
CN109421052A (zh) * 2017-08-24 2019-03-05 河海大学 一种基于人工智能的五子棋对弈机器人
CN108052785A (zh) * 2018-02-01 2018-05-18 北京理工大学 一种不围棋最佳落子点的确定方法及确定系统

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
JKSPARKLE: "五子棋禁手判定算法", 《HTTPS://BLOG.CSDN.NET/JKSPARKLE/ARTICLE/DETAILS/822873》 *
SARAH MARIE WIEBE 等: "Traveling Together? Navigating the Practice of Collaborative Engagement in Coast Salish Communities", 《ENGAGING WITH INDIGENOUS COMMUNITIES》 *
姜勇: "五子棋人机对战系统设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
徐长明等: "一种新的连珠棋局面表示法及其在六子棋中的应用", 《东北大学学报(自然科学版)》 *
潘雨馨等: "一种基于攻防估分算法的智能五子棋游戏设计", 《现代计算机(专业版)》 *
王杨: "基于计算机博弈的五子棋算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
路纲 刘侍刚: "软件体系架构案例教学:连珠软件开发", 《计算机教育》 *

Also Published As

Publication number Publication date
CN110275739B (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
Siegel Combinatorial game theory
Johanson Robust strategies and counter-strategies: Building a champion level computer poker player
CN103890856B (zh) 支持内存储数据结构的可移位存储器
Hahn et al. Good-for-MDPs automata for probabilistic analysis and reinforcement learning
Farina et al. Regret minimization in behaviorally-constrained zero-sum games
Teytaud et al. Creating an upper-confidence-tree program for Havannah
Xia et al. Strategic sequential voting in multi-issue domains and multiple-election paradoxes
Irving et al. Solving kalah
McBride et al. Explaining conflict in low-income countries: Incomplete contracting in the shadow of the future
Świechowski et al. Fast interpreter for logical reasoning in general game playing
CN110275739A (zh) 一种在常数时间内判断五子棋禁手和棋形属性的方法
Wolf The program GoTools and its computer-generated tsume go database
Kissmann Symbolic search in planning and general game playing
Smith Caching search states in permutation problems
US6120027A (en) Rule based two/three dimensional game
Janssen et al. Keeping Up Shared Infrastructure on a Port of Mars
Friedmann et al. Local strategy improvement for parity game solving
Teytaud et al. Lemmas on partial observation, with application to phantom games
Andersson Pseudo-optimal strategies in no-limit poker
Yang et al. Deep learning approaches to the game of Connect6
CN109847357A (zh) 一种行进路线的规划方法及装置
Huizhan et al. Hash table in Chinese chess
Podsechin Programming a chess engine in C++
Edelkamp et al. Finding the Needle in the Haystack with Heuristically Guided Swarm Tree Search.
Sinha et al. Optimization and Comparative Analysis of Game Theory Algorithms used in Zero-Sum Games

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant