DeepSeek能下围棋吗?
今天天气不好,我们换个地方,乘高铁旅行,寻个暖和的地方活几天。
这次来挑战一下围棋规则,但是与DeepSeek交互过程中全程不能提围棋两字,省得他想多了,影响交互过程。这里主要看DeepSeek能否理解我给出的围棋规则,首先能否当个裁判,然后再看看能否想办法让它跟我下棋。
为了简单起见,我们针对9路围棋,不过考虑到韩国规则那种提子必须放在棋盒盖的规则描述起来比较麻烦,这里果断选择用中国规则。为了简化,可能与真正的中国规则稍有区别。
下面描述中国围棋规则,第一次还没经过验证,后面可能有迭代过程。
游戏规则
定义:
1.数字对,是指两个1到9之间的整数组成的有序集合。可与记为(m,n),如果m不等于n,那么认为(m,n)与(n,m)是两个不同的数字对。
2.游戏由两方组成,称为B方和W方,每一方拥有一个集合,称为B集合和W集合,集合中的元素是数字对,游戏开始时B集合和W集合都是空集合。
3.没有出现在B集合和W集合中的所有数字对构成一个K集合
4.两个数字对(m,n)和(a,b),如果m和a只差1,或者n和b只差1,称为两个数字对是邻居关系
5.具有邻居关系的两个数字对有粘连关系,如果A与B有粘连关系,B与C也有粘连关系,称A与C也有粘连关系
6.根据粘连关系把B集合和W集合分割成若干子集合,称为粘连块
7.一个粘连块中每个数字对的邻居如果是K集合的元素,称这个数字对是该粘连块的气对
8.一个粘连块的所有气对构成的集合称为气集合
9.一个粘连块的气集合中的元素个数称为这个粘连块的气数
规则:
1.由B方先,W方后,交替选择一个K中的数字对加入到自己一方的集合中。
2.选择的数字对加入自己一方的集合后可能导致双方的粘连块有变化,如果变化后的某个粘连块的气数变为0,如果这个粘连块是对方的,可以将这个粘连块中的所有数字对从对方数字对集合中删除,
3.如果选择的数字对不能使对方的某个粘连块气数变成0,反而使自己一方的某个粘连块气数变成0,那这个数字对就不能选择。
4,某方选择的数字对导致对方被删除的数字对只有一个,这个数字对下一次对方不能选择
5,直到一方无法选择合法的数字对,此时游戏结束
6,结束是计算B集合中的数字对个数,收集B集合中所有数字对的邻居集合与K集合的交集中的数字对个数,两个数字加起来,称为B方的地盘数Bn,对W方也按相同的规则统计出W方地盘数Wn,如果Bn-Wn>3则称B方赢,否则称W方赢
我们把上面的游戏规则输入到deepseek中,下面是他的回应:
游戏规则理解
首先,我需要明确游戏的基本定义和规则:
- 数字对:由两个1到9之间的整数组成的有序集合,记为(m,n)。如果m≠n,则(m,n)与(n,m)视为不同的数字对。
- 游戏双方:B方和W方,各自拥有一个集合(B集合和W集合),初始为空。
- K集合:所有未出现在B集合和W集合中的数字对。
- 邻居关系:两个数字对(m,n)和(a,b)是邻居,如果m和a相差1,或者n和b相差1。
- 粘连关系:如果A与B有邻居关系,B与C有邻居关系,则A与C也有粘连关系。
- 粘连块:根据粘连关系将B集合和W集合分割成的子集合。
- 气对:一个粘连块中每个数字对的邻居如果是K集合的元素。
- 气集合:一个粘连块的所有气对构成的集合。
- 气数:气集合中的元素个数。
游戏流程
- 轮流选择:B方先选,W方后选,交替从K集合中选择一个数字对加入自己的集合。
- 粘连块变化:选择的数字对加入后,可能导致双方的粘连块发生变化。
- 气数变化:如果某个粘连块的气数变为0:
- 如果这个粘连块是对方的,可以将这个粘连块中的所有数字对从对方集合中删除。
- 如果选择的数字对导致自己的某个粘连块气数变为0,则不能选择该数字对。
- 限制选择:如果选择的数字对导致对方被删除的数字对只有一个,这个数字对下一次对方不能选择。
- 游戏结束:当一方无法选择合法的数字对时,游戏结束。
- 地盘计算:
- B方的地盘数Bn = B集合中的数字对个数 + B集合中所有数字对的邻居集合与K集合的交集中的数字对个数。
- W方的地盘数Wn同理计算。
- 如果Bn - Wn > 3,B方赢;否则,W方赢。
游戏策略思考
- 选择数字对:每次选择一个数字对,不仅要考虑增加自己的粘连块,还要考虑减少对方的气数。
- 控制气数:尽量选择能减少对方粘连块气数的数字对,同时避免自己的粘连块气数减少。
- 限制对方选择:通过选择特定的数字对,限制对方下一次的选择,增加对方的困难。
- 地盘计算:在游戏结束前,尽量增加自己的地盘数,同时减少对方的地盘数。
很赞的秘书,各种理解很到位啊文字整理能力超强,看来随着打字员的失业,秘书这个岗位也要失业了啊。
后面是我与deeepseek的对话,使用安卓手机上的deepseek。
你来当裁判,我们开始一场游戏好吗
好的!我来当裁判,我们开始一场游戏吧!以下是游戏的初始状态:
- B集合:空
- W集合:空
- K集合:所有可能的数字对(即1到9之间的所有有序对,共81个)。
游戏规则回顾
- B方先手,W方后手,交替选择数字对。
- 每次选择一个数字对加入自己的集合。
- 选择后检查粘连块和气数的变化:
- 如果对方的某个粘连块气数变为0,可以删除该粘连块中的所有数字对。
- 如果自己的某个粘连块气数变为0,则不能选择该数字对。
- 游戏结束条件:一方无法选择合法的数字对。
- 地盘计算:地盘数 = 自己集合中的数字对个数 + 自己集合中所有数字对的邻居与K集合的交集个数。
- 胜负判定:如果Bn - Wn > 3,B方赢;否则,W方赢。
游戏开始
第一步:B方选择
B方需要从K集合中选择一个数字对加入B集合。请B方选择一个数字对(格式为(m,n),例如(2,2))。
等待B方的选择…
(3,3)
(为了方便观看,这里配个棋盘,不是deepseek生成的)
B方选择了 (3,3)!
以下是更新后的游戏状态:
- B集合:{(3,3)}
-
- W集合:空
-
- K集合:剩余80个数字对。
第二步:W方选择
W方需要从K集合中选择一个数字对加入W集合。请W方选择一个数字对(格式为(m,n),例如(2,2))。等待W方的选择…
(4,4)
W方选择了 (4,4)!
以下是更新后的游戏状态:
- B集合:{(3,3)}
- W集合:{(4,4)
- K集合:剩余79个数字对。
粘连块和气数分析
- B方的粘连块:
- 当前B集合只有 {(3,3)},形成一个单独的粘连块。
- 检查气数:
- (3,3) 的邻居是 (2,3), (3,2), (4,3), (3,4)。
- 这些邻居中,哪些在K集合中?
- (2,3), (3,2), (4,3), (3,4) 都在K集合中。
- 因此,气数为4。
- W方的粘连块:
- 当前W集合只有 {(4,4)},形成一个单独的粘连块。
- 检查气数:
- (4,4) 的邻居是 (3,4), (4,3), (5,4), (4,5)。
- 这些邻居中,哪些在K集合中?
- (3,4), (4,3), (5,4), (4,5) 都在K集合中。
- 因此,气数为4。
第三步:B方选择
B方需要从K集合中选择一个数字对加入B集合。请B方选择一个数字对(格式为(m,n),例如(2,2))。
等待B方的选择…
(4,4)
B方选择了 (4,4),但这个数字对已经在W集合中,因此不能选择。请B方重新选择一个K集合中的数字对(即未出现在B集合和W集合中的数字对)。
以下是当前游戏状态:
- B集合:{(3,3)}
- W集合:{(4,4)}
- K集合:剩余79个数字对。
可选的数字对
B方可以从K集合中选择任意一个数字对,例如:
- (1,1), (1,2), (1,3), …, (9,9) 中未出现在B集合和W集合中的数字对。请B方重新选择一个合法的数字对。等待B方的选择…
(3,4)
B方选择了 (3,4)!
以下是更新后的游戏状态:
- B集合:{(3,3), (3,4)}
- W集合:{(4,4)}
- K集合:剩余78个数字对。
粘连块和气数分析
- B方的粘连块:
- 当前B集合有 {(3,3), (3,4)}。
- 检查粘连关系:
- (3,3) 和 (3,4) 是邻居(因为第二个数字相差1),形成一个粘连块。
- 检查气数:
- (3,3) 的邻居是 (2,3), (3,2), (4,3), (3,4)。
- (3,4) 的邻居是 (2,4), (3,3), (4,4), (3,5)。
- 这些邻居中,哪些在K集合中?
- (2,3), (3,2), (4,3), (2,4), (3,5) 都在K集合中。
- (4,4) 在W集合中,不属于K集合。
- 因此,气数为5。
- W方的粘连块:
- 当前W集合只有 {(4,4)},形成一个单独的粘连块。
- 检查气数:
- (4,4) 的邻居是 (3,4), (4,3), (5,4), (4,5)。
- 这些邻居中,哪些在K集合中?
- (4,3), (5,4), (4,5) 在K集合中。
- (3,4) 在B集合中,不属于K集合。
- 因此,气数为3。
第四步:W方选择
W方需要从K集合中选择一个数字对加入W集合。请W方选择一个数字对(格式为(m,n),例如(2,2))。等待W方的选择…
(8,9)
W方选择了 (8,9)!
以下是更新后的游戏状态:
- B集合:{(3,3), (3,4)}
- W集合:{(4,4), (8,9)}
- K集合:剩余77个数字对。
粘连块和气数分析
- B方的粘连块:
- 当前B集合有 {(3,3), (3,4)}。
- 粘连块不变,气数仍为5。
- W方的粘连块:
- 当前W集合有 {(4,4), (8,9)}。
- 检查粘连关系:
- (4,4) 和 (8,9) 不是邻居(因为两个数字都不相差1),因此形成两个独立的粘连块。
- 检查气数:
- (4,4) 的邻居是 (3,4), (4,3), (5,4), (4,5)。
- 这些邻居中,(4,3), (5,4), (4,5) 在K集合中。
- (3,4) 在B集合中,不属于K集合。
- 因此,(4,4) 的气数为3。
- (8,9) 的邻居是 (7,9), (8,8), (9,9), (8,10)(但 (8,10) 无效,因为数字范围是1到9)。
- 这些邻居中,(7,9), (8,8), (9,9) 在K集合中。
- 因此,(8,9) 的气数为3。
第五步:B方选择
B方需要从K集合中选择一个数字对加入B集合。请B方选择一个数字对(格式为(m,n),例如(2,2))。等待B方的选择…
(8,8)
B方选择了 (8,8)!
以下是更新后的游戏状态:
- B集合:{(3,3), (3,4), (8,8)}
- W集合:{(4,4), (8,9)}
- K集合:剩余76个数字对。
粘连块和气数分析
- B方的粘连块:
- 当前B集合有 {(3,3), (3,4), (8,8)}。
- 检查粘连关系:
- (3,3) 和 (3,4) 是邻居,形成一个粘连块。
- (8,8) 是独立的粘连块。
- 检查气数:
- 粘连块1:{(3,3), (3,4)}
- 气数为5(与之前相同)。
- 粘连块2:{(8,8)}
- (8,8) 的邻居是 (7,8), (8,7), (9,8), (8,9)。
- 这些邻居中,(7,8), (8,7), (9,8) 在K集合中。
- (8,9) 在W集合中,不属于K集合。
- 因此,(8,8) 的气数为3。
- W方的粘连块:
- 当前W集合有 {(4,4), (8,9)}。
- 检查粘连关系:
- (4,4) 和 (8,9) 仍然是独立的粘连块。
- 检查气数:
- (4,4) 的气数为3(与之前相同)。
- (8,9) 的气数:
- (8,9) 的邻居是 (7,9), (8,8), (9,9)。
- 这些邻居中,(7,9), (9,9) 在K集合中。
- (8,8) 在B集合中,不属于K集合。
- 因此,(8,9) 的气数为2。
第六步:W方选择
W方需要从K集合中选择一个数字对加入W集合。
请W方选择一个数字对(格式为(m,n),例如(2,2))。
等待W方的选择…
(1,1)
W方选择了 (1,1)!
以下是更新后的游戏状态:
- B集合:{(3,3), (3,4), (8,8)}
- W集合:{(4,4), (8,9), (1,1)}
- K集合:剩余75个数字对。
粘连块和气数分析
- B方的粘连块:
- 当前B集合有 {(3,3), (3,4), (8,8)}。
- 粘连块不变:
- 粘连块1:{(3,3), (3,4)},气数为5。
- 粘连块2:{(8,8)},气数为3。
- W方的粘连块:
- 当前W集合有 {(4,4), (8,9), (1,1)}。
- 检查粘连关系:
- (4,4), (8,9), (1,1) 之间没有邻居关系,因此形成三个独立的粘连块。
- 检查气数:
- (4,4) 的气数为3(与之前相同)。
- (8,9) 的气数为2(与之前相同)。
- (1,1) 的气数:
- (1,1) 的邻居是 (1,2), (2,1)。
- 这些邻居中,(1,2), (2,1) 都在K集合中。
- 因此,(1,1) 的气数为2。
第七步:B方选择
B方需要从K集合中选择一个数字对加入B集合。请B方选择一个数字对(格式为(m,n),例如(2,2))。等待B方的选择…
(7,9)
B方选择了 (7,9)!
以下是更新后的游戏状态:
- B集合:{(3,3), (3,4), (8,8), (7,9)}
- W集合:{(4,4), (8,9), (1,1)}
- K集合:剩余74个数字对。
粘连块和气数分析
- B方的粘连块:
- 当前B集合有 {(3,3), (3,4), (8,8), (7,9)}。
- 检查粘连关系:
- (3,3) 和 (3,4) 是邻居,形成一个粘连块。
- (8,8) 和 (7,9) 是邻居(因为第一个数字相差1),形成一个粘连块。
- 检查气数:
- 粘连块1:{(3,3), (3,4)}
- 气数为5(与之前相同)。
- 粘连块2:{(8,8), (7,9)}
- (8,8) 的邻居是 (7,8), (8,7), (9,8), (8,9)。
- (7,9) 的邻居是 (6,9), (7,8), (8,9), (7,10)(无效)。
- 这些邻居中,(7,8), (8,7), (9,8), (6,9) 在K集合中。
- (8,9) 在W集合中,不属于K集合。
- 因此,粘连块2的气数为4。
- W方的粘连块:
- 当前W集合有 {(4,4), (8,9), (1,1)}。
- 检查粘连关系:
- (4,4), (8,9), (1,1) 之间没有邻居关系,仍然是三个独立的粘连块。
- 检查气数:
- (4,4) 的气数为3(与之前相同)。
- (8,9) 的气数:
- (8,9) 的邻居是 (7,9), (8,8), (9,9)。
- 这些邻居中,(9,9) 在K集合中。
- (7,9) 在B集合中,(8,8) 在B集合中,不属于K集合。
- 因此,(8,9) 的气数为1。
- (1,1) 的气数为2(与之前相同)。
检查是否删除粘连块
- W方的粘连块 {(8,9)} 的气数变为1,未达到0,因此不需要删除。
-
- 游戏继续。
第八步:W方选择
W方需要从K集合中选择一个数字对加入W集合。请W方选择一个数字对(格式为(m,n),例如(2,2))。等待W方的选择…
(6,4)
W方选择了 (6,4)!
以下是更新后的游戏状态:
- B集合:{(3,3), (3,4), (8,8), (7,9)}
- W集合:{(4,4), (8,9), (1,1), (6,4)}
- K集合:剩余73个数字对。
粘连块和气数分析
- B方的粘连块:
- 当前B集合有 {(3,3), (3,4), (8,8), (7,9)}。
- 粘连块不变:
- 粘连块1:{(3,3), (3,4)},气数为5。
- 粘连块2:{(8,8), (7,9)},气数为4。
- W方的粘连块:
- 当前W集合有 {(4,4), (8,9), (1,1), (6,4)}。
- 检查粘连关系:
- (4,4) 和 (6,4) 是邻居(因为第一个数字相差2,不满足邻居条件),因此 (6,4) 是一个独立的粘连块。
- 其他粘连块不变:{(4,4)}, {(8,9)}, {(1,1)}。
- 检查气数:
- (4,4) 的气数为3(与之前相同)。
- (8,9) 的气数为1(与之前相同)。
- (1,1) 的气数为2(与之前相同)。
- (6,4) 的气数:
- (6,4) 的邻居是 (5,4), (6,3), (7,4), (6,5)。
- 这些邻居中,(5,4), (6,3), (7,4), (6,5) 都在K集合中。
- 因此,(6,4) 的气数为4。
检查是否删除
粘连块
- W方的粘连块 {(8,9)} 的气数仍为1,未达到0,因此不需要删除。
- 游戏继续。
第九步:B方选择
B方需要从K集合中选择一个数字对加入B集合。请B方选择一个数字对(格式为(m,n),例如(2,2))。等待B方的选择…
(9,9)
B方选择了 (9,9)!
以下是更新后的游戏状态:
- B集合:{(3,3), (3,4), (8,8), (7,9), (9,9)}
- W集合:{(4,4), (8,9), (1,1), (6,4)}
- K集合:剩余72个数字对。
粘连块和气数分析
- B方的粘连块:
- 当前B集合有 {(3,3), (3,4), (8,8), (7,9), (9,9)}。
- 检查粘连关系:
- (3,3) 和 (3,4) 是邻居,形成一个粘连块。
- (8,8), (7,9), (9,9) 是邻居:
- (8,8) 和 (7,9) 是邻居(第一个数字相差1)。
- (8,8) 和 (9,9) 是邻居(第一个数字相差1)。
- 因此,{(8,8), (7,9), (9,9)} 形成一个粘连块。
- 检查气数:
- 粘连块1:{(3,3), (3,4)}
- 气数为5(与之前相同)。
- 粘连块2:{(8,8), (7,9), (9,9)}
- (8,8) 的邻居是 (7,8), (8,7), (9,8), (8,9)。
- (7,9) 的邻居是 (6,9), (7,8), (8,9), (7,10)(无效)。
- (9,9) 的邻居是 (8,9), (9,8), (10,9)(无效)。
- 这些邻居中,(7,8), (8,7), (9,8), (6,9) 在K集合中。
- (8,9) 在W集合中,不属于K集合。
- 因此,粘连块2的气数为4。
- W方的粘连块:
- 当前W集合有 {(4,4), (8,9), (1,1), (6,4)}。
- 检查粘连关系:
- (4,4), (8,9), (1,1), (6,4) 之间没有邻居关系,仍然是四个独立的粘连块。
- 检查气数:
- (4,4) 的气数为3(与之前相同)。
- (8,9) 的气数:
- (8,9) 的邻居是 (7,9), (8,8), (9,9)。
- 这些邻居中,(7,9) 在B集合中,(8,8) 在B集合中,(9,9) 在B集合中。
- 因此,(8,9) 的气数为0。
- (1,1) 的气数为2(与之前相同)。
- (6,4) 的气数为4(与之前相同)。
检查是否删除粘连块
- W方的粘连块 {(8,9)} 的气数变为0,因此需要删除该粘连块。
- 从W集合中删除 (8,9)。
更新后的游戏状态: - B集合:{(3,3), (3,4), (8,8), (7,9), (9,9)}
- W集合:{(4,4), (1,1), (6,4)}
- K集合:剩余73个数字对(因为 (8,9) 被删除,重新加入K集合)。
第十步:W方选择
W方需要从K集合中选择一个数字对加入W集合。请W方选择一个数字对(格式为(m,n),例如(2,2))。等待W方的选择…
至此,好像一切正常诶,能够判断必须在空的地方下棋,能够判断提子,很不错的。在火车上用手机发文章实在太累了,下次一定要带台电脑,后面再继续研究吧,看能否处理禁止一子反提,能否判断棋局结束,能都正确判断输赢,后面再说吧。
先休息一下,未完待续。
DeepSeek系列: