『壹』 高分求算法:关于井字棋(三子棋)的算法!!面谈感谢!!!!
“井字棋”游戏(又叫“三子棋”),是一款十分经典的益智小游戏,想必很多玩家都有玩过。“井字棋”的棋盘很简单,是一个3×3的格子,很像中国文字中的“井”字,所以得名“井字棋”。“井字棋”游戏的规则与“五子棋”十分类似,“五子棋”的规则是一方首先五子连成一线就胜利;“井字棋”是一方首先三子连成一线就胜利。
井字棋(英文名Tic-Tac-Toe)
井字棋的出现年代估计已不可考,西方人认为这是由古罗马人发明的;但我们中国人认为,既然咱们都发明了围棋、五子棋,那发明个把井字棋自然是不在话下。这些纯粹是口舌之争了,暂且不提。
想起小时候上课喜欢玩井字棋,只要一张草稿纸、一支笔、同桌两人就可以玩了。上体育课,也可以拿着树枝在沙坑里玩。但一直感觉这游戏太简单了,后来接触了五子棋,着迷了一阵,但水平总是很差,便也不玩了。
一字棋游戏极小极大分析法
设有九个空格,由MAX,MIN二人对弈,轮到谁走棋谁就往空格上放一只自己的棋子,谁先使自己的棋子构成“三子成一线”(同一行或列或对角线全是某人的棋子),谁就取得了胜利。
用叉号表示MAX,用圆圈代表MIN。
比如右图中就是MIN取胜的棋局。
为了不致于生成太大的博弈树,假设每次仅扩展两层。估价函数定义如下:
设棋局为P,估价函数为e(P)。
(1) 若P对任何一方来说都不是获胜的位置,则e(P)=e(那些仍为MAX空着的完全的行、列或对角线的总数)-e(那些仍为MIN空着的完全的行、列或对角线的总数)
(2) 若P是MAX必胜的棋局,则e(P)=+∞。
(3) 若P是B必胜的棋局,则e(P)=-∞。
比如P如右图示,则e(P)=6-4=2
要注意利用棋盘位置的对称性,在生成后继节点的位置时,下列博弈结局
都是相同的棋局(在博弈中,一宇棋的分枝系数比较小起初是由于对称性,而后是由于棋盘上未布子的空格减少所致)。图3.15画出了经过两层搜索生成的博弈树,静态估值记在端节点下面,倒推值记在圆圈内。
由于右图所示位置具有最大的倒推值,它应当选取为MAX的第一步(正好是MAX的最好的优先走步)。
现在我们假设MAX走了这一步,而MIN的回步是直接在X上方的空格里放上一个圆圈(对MAX来说这是一步坏棋,他一定没有采用好的搜索策略)。下一步,MAX又在新的格局下搜索两层,产生如图3.16所示的搜索图。
现在图中MAX有两个可能“最好的”优先走步,假设MAX走了图上指明的那一步。而MIN为了避免立即败北被迫走了另一步,从而产生如下棋局:MAX再次搜索,产生如图3.17所示的树。
在这棵树中某些端节点(例如其中一个标记着A)代表MIN获胜,因此它们的估值为—∞。当这些估值被倒推回去时,可看到MAX的最好的也是唯一能使他避免立即失败的一个走步。现在,MIN可以看出MAX必然在他的下一走步中获胜,因此,MIN只好认输。
按极大极小算法编程下一字棋的演示(右图,可以点击操作)...
我们就利用Visual Basic编写一个“井字棋”的小游戏。
【设计思路】
首先,我们要知道,“井字棋”游戏是一款典型的棋类游戏,游戏时一方式是电脑,另一方是玩家。所以,这类游戏在开始时有两种方式:一种是玩家先走;另一种是电脑先走。这是我们要考虑的第一个问题。
其次,由于与玩家对战的是计算机,所以我们要编写一个过程(Chuqi),它可以使程序模拟人的思维与人下棋(其实就是“人工智能”的体现),这个Chuqi过程也是本游戏软件的关键。此外,我们还要编写两个过程(Lianxian和Shuying),Lianxian过程用来时刻判断棋盘中是否有三个棋子连成一线;Shuying过程用来判断如果有三个棋子连成一线,是哪一方连成一线的,即判断哪一方获胜。
以上几个问题就是该“井字棋”游戏实现的关键思路。....
QQ:744192659
邮箱:[email protected]
『贰』 井字过三关
井字过三关,又名打井、井字游戏、井字棋、OX棋。在欧美地区相当流行,最早是个纸笔游戏。
玩法类似于中国的五子棋,两个玩家,一个打X,一个打O,两人轮流在3乘3的格上打自己的符号,谁先连成一线便胜。如果双方都下得正确无误,将得和局。
站一个位置相对来讲就比较保险,就是站中间的位置。这个游戏要想赢,只能借助对手失误。如果双方都没有失误,必定是平局。分出了胜负时,仔细分析一下就知道输者有失误。
井字棋(英文名Tic-Tac-Toe)
井字棋的出现年代估计已不可考,西方人认为这是由古罗马人发明的;但我们中国人认为,既然咱们都发明了围棋、五子棋,那发明个把井字棋自然是不在话下。这些纯粹是口舌之争了,暂且不提。
『叁』 世界一共有多少种棋非常感谢
呵呵,暂时知道18种,等待完善中……
1、围棋(go) 围棋已经远远超出了它的娱乐功能,它是一种理念,一种生活的态度,一种生命的哲学。当人们为计算机程序“深蓝”战胜世界国际象棋冠军卡斯帕罗夫而惊叹的同时,我想人工智能科学家们忽略了一点,那就是棋是智慧的延伸而不仅仅是智力的角逐,也许只有围棋才能把这些深层的东西体现出来。
2、中国象棋(Chinese Chess)中国象棋具有悠久的历史。经过近百年的实践,象棋于北宋末定型成近代模式: 32 枚棋子, 有河界的棋盘,将在九宫之中等等。南宋时期,象棋 " 家澈户晓 " ,成为流行极为广泛的棋艺活动。中国象棋根植民间,应该是中国最普及的棋类运动。
3、国际象棋(Chess)国际象棋无疑是全世界最普及的棋类,但是现制国际象棋在我国开展的时间不算长,从 1956 年开始,国际象棋才和我国传统的中国象棋与围棋一起列入国家开展的体育项目。
4、五子棋
起源于中国古代的传统黑白棋种之一。现代五子棋发展于日本,日文称之为"连珠",英译为"Renju","Gobang"或"FIR"(Five in a Row的缩写),亦有"连五子"、"五子连"、"串珠"、"五目"、"五目碰"、"五格"等多种称谓。有两种规则 无禁手采用最简单古老的规则。黑白双方依次落子,任一方先在棋盘上形成横向、竖向、斜向的连续的相同颜色的五个(含五个以上)棋子的一方为胜。有禁手(走禁手就输,禁手不能落子) 鉴于无禁手规则黑棋必胜,人们不断采用一些方法限制黑棋先行的优势,以平衡黑白双方的形式。禁手最简单地说就是一手棋形成长连(连成五个以上连续相同的棋子),或两个以上的活三,或者两个以上的四,并且这些四、活三和长连都要包括这一手棋。
5、军棋与四国大战
军棋又被称为盲象棋(BLIND CHESS) 是由南非(South-Africa)的一位叫Henry Michael Temple人于1899年发明的。他本人是一名国际象棋爱好者,因为自己的伙伴希望能玩一种反映战争的游戏,于是他借鉴国际象棋的棋子,发明了这种战争游戏。它使旁观者和下棋人共享其中的欢乐。军棋是一种成功的变形象棋。它和象棋最大的区别就是不允许看对方的棋子,更具有挑战性。
四国大战, 4 人游戏时,相对的两家联盟与另外两家对抗,配合战斗的乐趣是其它棋类所没有的。
6、 暗棋,是以中国象棋棋盘和棋子进行的一项棋类游戏,游戏时,棋子放在普通象棋棋盘的上半部分,棋盘的下半部分用于摆放双方被吃掉的棋子。 暗棋一开始必须靠双方不断地把只显示背面的棋子翻过来,但只能移动自己颜色的棋子,棋子的大小顺序是将、士、象、车、马、炮、兵,大子吃相同的子和小子,但小兵吃将,炮不能吃马。
7、跳棋
游戏规则很简单,棋子的移动可以一步步在有直线连接的相邻六个方向进行,如果相邻位置上有任何方的一个棋子,该位置直线方向下一个位置是空的,则可以直接 " 跳 " 到该空位上, " 跳 " 的过程中,只要相同条件满足就可以连续进行。谁最先把正对面的阵地全部占领,谁就取得胜利。
8、黑白棋,又叫反棋 (Reversi) 、奥赛罗棋 (Othello) ,苹果棋,翻转棋。黑白棋在西方和日本很流行。游戏通过相互翻转对方的棋子,最后以棋盘上谁的棋子多来判断胜负。
游戏通过相互翻转对方的棋子,最后以棋盘上谁的棋子多来判断胜负。黑白棋的棋盘是一个有 8*8 方格的棋盘。下棋时将棋下在空格中间,而不是像围棋一样下在交叉点上。开始时在棋盘正中有两白两黑四个棋子交叉放置,黑棋总是先下子。 把自己颜色的棋子放在棋盘的空格上,而当自己放下的棋子在横、竖、斜八个方向内有一个自己的棋子,则被夹在中间的全部翻转会成为自己的棋子。并且,只有在可以翻转棋子的地方才可以下子。 如果玩家在棋盘上没有地方可以下子,则该玩家对手可以连下。双方都没有棋子可以下时棋局结束,以棋子数目来计算胜负,棋子多的一方获胜。
9、六子棋(connect6) 台湾交通大学资讯工程系副教授吴毅成发明六子棋新游戏,据称弥补了五子棋“先下者有利”的公平性困境。
六子棋的简明规则:
一、黑白两色棋子,纵横各十九道。 (完全可用围棋的棋盘棋子)
二、黑方先落一子,此后双方轮流落子,一次两颗。
三、先有六子连成一直线者,赢。
补充:应该说明中国还有一种传统的六子棋。交战双方棋子数均为六颗,故称六子棋。六子棋的棋盘为3乘以3的方格。棋子可信手拿来,只要互相区分即可。 玩法 枪毙,行棋一方若将两颗棋子移至一起,且一头挨着对方的一颗棋时,则可吃子(称为枪毙)。抬子,行棋一方两个棋子夹住对方的一个棋子时,则可吃子(称为抬子)。挑子,行棋一方一个棋子插入对方的两个棋子中间时,则可吃对方两个棋子(称为挑子)。
第一种吃子方法是最常用的,后两种走法一般在双方默认情况下不用。游戏中当一方的棋子被对方围困住无法行棋或者被吃到少于两颗棋子时,就被判为输棋。说的正确,一般我们都是使用第一种方法来玩。
10、西洋双陆棋(Backgammon)
11、将棋 日本棋种
12、井字棋(Tic-Tac-Toe)也叫三子棋。“井字棋”的棋盘很简单,是一个3×3的格子,很像中国文字中的“井”字。“井字棋”游戏的规则是一方首先三子连成一线就胜利。太简单吧。
13、四子棋
14、斗兽棋(Animal),小时候常玩的动物棋,双方有八只棋子,依大小顺序为象、狮、虎、豹、狗、狼、猫、鼠。较大的可吃较小的,同类可以互吃,而鼠则可吃象。
15、叠棋
16、盘三又称“棋三”或"三棋",棋三是流传于中国民间的一种双人对弈的一类版图游戏。双方各持棋子若干(最少十二颗,一般多备几颗用于压对方被吃的棋子),棋子可信手拿来,只要互相能够区分即可。
棋三的对弈过程分两步:
放子,对弈双方依次将己方的棋子放入棋盘中,当自已的三个棋子成一直线时就可以吃对方一个棋子(用自己的棋子压在对方的棋子上面,只作标识用,暂时不能拿走)。直到棋盘上所有点都放满了棋子为止。
走子,将放子时被吃掉的棋子清理出棋盘,腾出的空位便可以走子了,但不可下再下棋子。棋子每次只能走一格,走至能将己方的棋子连成一线,就可以吃掉对方任意一个棋子。直到有一方的棋子少于三粒时告负并结束。
17、
六连棋是在六边形格的棋盘上玩的图版游戏,亦是数学游戏,通常使用10乘10或11乘11的菱形棋盘(约翰·纳希则采用14×14的棋盘)。
18、独粒钻石棋是一个人的游戏,起源于法国,是一种风靡世界的益智游戏,与中国发明的“华容道”、匈牙利人发明的“魔方”并称为“智力游戏界的三大不可思议。它类似于跳棋,但不能走步,只能跳。走棋时棋子跳过相邻的棋子到空位上,并把跳过的旗子吃掉。棋子可以沿棋盘的格线横跳、纵跳,但不能斜跳。
『肆』 井字棋的介绍
井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋比较类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X)井字策略,英文名叫Tic Tactics,一个经典的重生!Tic Tactics是一个回合制多人游戏,简单易学,但具挑战性!如果你知道怎么玩井字棋,你已经知道怎么玩Tic Tactics。不同的是你才是决定每一步把你的对手送到哪里的关键。你会为战略的纵深大吃一惊!挑战朋友或者陌生人来提升你的等级,并最终成为Tic Tactics军师!(详细玩法井字棋吧置顶贴有介绍)
『伍』 世界上有哪些棋种
只是个简单的统计,不断完善中。
1、围棋(go) 围棋已经远远超出了它的娱乐功能,它是一种理念,一种生活的态度,一种生命的哲学。当人们为计算机程序“深蓝”战胜世界国际象棋冠军卡斯帕罗夫而惊叹的同时,我想人工智能科学家们忽略了一点,那就是棋是智慧的延伸而不仅仅是智力的角逐,也许只有围棋才能把这些深层的东西体现出来。
2、中国象棋(Chinese Chess)中国象棋具有悠久的历史。经过近百年的实践,象棋于北宋末定型成近代模式: 32 枚棋子, 有河界的棋盘,将在九宫之中等等。南宋时期,象棋 " 家澈户晓 " ,成为流行极为广泛的棋艺活动。中国象棋根植民间,应该是中国最普及的棋类运动。
3、国际象棋(Chess)国际象棋无疑是全世界最普及的棋类,但是现制国际象棋在我国开展的时间不算长,从 1956 年开始,国际象棋才和我国传统的中国象棋与围棋一起列入国家开展的体育项目。
4、五子棋
起源于中国古代的传统黑白棋种之一。现代五子棋发展于日本,日文称之为"连珠",英译为"Renju","Gobang"或"FIR"(Five in a Row的缩写),亦有"连五子"、"五子连"、"串珠"、"五目"、"五目碰"、"五格"等多种称谓。有两种规则 无禁手采用最简单古老的规则。黑白双方依次落子,任一方先在棋盘上形成横向、竖向、斜向的连续的相同颜色的五个(含五个以上)棋子的一方为胜。
5、军棋与四国大战
军棋又被称为盲象棋(BLIND CHESS) 是由南非(South-Africa)的一位叫Henry Michael Temple人于1899年发明的。他本人是一名国际象棋爱好者,因为自己的伙伴希望能玩一种反映战争的游戏,于是他借鉴国际象棋的棋子,发明了这种战争游戏。它使旁观者和下棋人共享其中的欢乐。军棋是一种成功的变形象棋。它和象棋最大的区别就是不允许看对方的棋子,更具有挑战性。
四国大战, 4 人游戏时,相对的两家联盟与另外两家对抗,配合战斗的乐趣是其它棋类所没有的。
6、 暗棋,是以中国象棋棋盘和棋子进行的一项棋类游戏,游戏时,棋子放在普通象棋棋盘的上半部分,棋盘的下半部分用于摆放双方被吃掉的棋子。暗棋一开始必须靠双方不断地把只显示背面的棋子翻过来,但只能移动自己颜色的棋子,棋子的大小顺序是将、士、象、车、马、炮、兵,大子吃相同的子和小子,但小兵吃将,炮不能吃马。
7、跳棋
游戏规则很简单,棋子的移动可以一步步在有直线连接的相邻六个方向进行,如果相邻位置上有任何方的一个棋子,该位置直线方向下一个位置是空的,则可以直接 " 跳 " 到该空位上, " 跳 " 的过程中,只要相同条件满足就可以连续进行。谁最先把正对面的阵地全部占领,谁就取得胜利。
8、黑白棋,又叫反棋 (Reversi) 、奥赛罗棋 (Othello) ,苹果棋,翻转棋。黑白棋在西方和日本很流行。游戏通过相互翻转对方的棋子,最后以棋盘上谁的棋子多来判断胜负。
9、六子棋(connect6) 台湾交通大学资讯工程系副教授吴毅成发明六子棋新游戏,据称弥补了五子棋“先下者有利”的公平性困境。
六子棋的简明规则:
一、黑白两色棋子,纵横各十九道。 (完全可用围棋的棋盘棋子)
二、黑方先落一子,此后双方轮流落子,一次两颗。
三、先有六子连成一直线者,赢。
10、西洋双陆棋(Backgammon)
11、将棋 日本棋种
12、井字棋(Tic-Tac-Toe)也叫三子棋。“井字棋”的棋盘很简单,是一个3×3的格子,很像中国文字中的“井”字。“井字棋”游戏的规则是一方首先三子连成一线就胜利。太简单吧。
13、四子棋
14、斗兽棋(Animal),小时候常玩的动物棋,双方有八只棋子,依大小顺序为象、狮、虎、豹、狗、狼、猫、鼠。较大的可吃较小的,同类可以互吃,而鼠则可吃象。
15、叠棋
16、盘三又称“棋三”或"三棋",棋三是流传于中国民间的一种双人对弈的一类版图游戏。
17、
六连棋是在六边形格的棋盘上玩的图版游戏,亦是数学游戏,通常使用10乘10或11乘11的菱形棋盘(约翰·纳希则采用14×14的棋盘)。
18、独粒钻石棋是一个人的游戏,起源于法国,是一种风靡世界的益智游戏,与中国发明的“华容道”、匈牙利人发明的“魔方”并称为“智力游戏界的三大不可思议。它类似于跳棋,但不能走步,只能跳。走棋时棋子跳过相邻的棋子到空位上,并把跳过的旗子吃掉。棋子可以沿棋盘的格线横跳、纵跳,但不能斜跳。
『陆』 井字棋的奥秘
第一步 一定要在CROSS 里
『柒』 井字棋,你怎么看待它的意义
我很喜欢玩井字棋啊,虽然套路很明显,但是挺有意思的,比其他的棋简单很多,意义就是娱乐玩耍。
『捌』 井字棋存在的意义
横竖都二
『玖』 古今中外有什么棋类
『拾』 井字棋一字棋三字棋现在才搞懂是同一种 谁能给我找点文字介绍 多谢
“井字棋”游戏(又叫“三子棋”),是一款十分经典的益智小游戏,想必很多玩家都有玩过。“井字棋”的棋盘很简单,是一个3×3的格子,很像中国文字中的“井”字,所以得名“井字棋”。“井字棋”游戏的规则与“五子棋”十分类似,“五子棋”的规则是一方首先五子连成一线就胜利;“井字棋”是一方首先三子连成一线就胜利。
井字棋(英文名Tic-Tac-Toe)
井字棋的出现年代估计已不可考,西方人认为这是由古罗马人发明的;但我们中国人认为,既然咱们都发明了围棋、五子棋,那发明个把井字棋自然是不在话下。这些纯粹是口舌之争了,暂且不提。
想起小时候上课喜欢玩井字棋,只要一张草稿纸、一支笔、同桌两人就可以玩了。上体育课,也可以拿着树枝在沙坑里玩。但一直感觉这游戏太简单了,后来接触了五子棋,着迷了一阵,但水平总是很差,便也不玩了。
一字棋游戏极小极大分析法
设有九个空格,由MAX,MIN二人对弈,轮到谁走棋谁就往空格上放一只自己的棋子,谁先使自己的棋子构成“三子成一线”(同一行或列或对角线全是某人的棋子),谁就取得了胜利。
用叉号表示MAX,用圆圈代表MIN。
比如右图中就是MIN取胜的棋局。
为了不致于生成太大的博弈树,假设每次仅扩展两层。估价函数定义如下:
设棋局为P,估价函数为e(P)。
(1) 若P对任何一方来说都不是获胜的位置,则e(P)=e(那些仍为MAX空着的完全的行、列或对角线的总数)-e(那些仍为MIN空着的完全的行、列或对角线的总数)
(2) 若P是MAX必胜的棋局,则e(P)=+∞。
(3) 若P是B必胜的棋局,则e(P)=-∞。
比如P如右图示,则e(P)=6-4=2
要注意利用棋盘位置的对称性,在生成后继节点的位置时,下列博弈结局
都是相同的棋局(在博弈中,一宇棋的分枝系数比较小起初是由于对称性,而后是由于棋盘上未布子的空格减少所致)。图3.15画出了经过两层搜索生成的博弈树,静态估值记在端节点下面,倒推值记在圆圈内。
由于右图所示位置具有最大的倒推值,它应当选取为MAX的第一步(正好是MAX的最好的优先走步)。
现在我们假设MAX走了这一步,而MIN的回步是直接在X上方的空格里放上一个圆圈(对MAX来说这是一步坏棋,他一定没有采用好的搜索策略)。下一步,MAX又在新的格局下搜索两层,产生如图3.16所示的搜索图。
现在图中MAX有两个可能“最好的”优先走步,假设MAX走了图上指明的那一步。而MIN为了避免立即败北被迫走了另一步,从而产生如下棋局:MAX再次搜索,产生如图3.17所示的树。
在这棵树中某些端节点(例如其中一个标记着A)代表MIN获胜,因此它们的估值为—∞。当这些估值被倒推回去时,可看到MAX的最好的也是唯一能使他避免立即失败的一个走步。现在,MIN可以看出MAX必然在他的下一走步中获胜,因此,MIN只好认输。
按极大极小算法编程下一字棋的演示(右图,可以点击操作)...
我们就利用Visual Basic编写一个“井字棋”的小游戏。
【设计思路】
首先,我们要知道,“井字棋”游戏是一款典型的棋类游戏,游戏时一方式是电脑,另一方是玩家。所以,这类游戏在开始时有两种方式:一种是玩家先走;另一种是电脑先走。这是我们要考虑的第一个问题。
其次,由于与玩家对战的是计算机,所以我们要编写一个过程(Chuqi),它可以使程序模拟人的思维与人下棋(其实就是“人工智能”的体现),这个Chuqi过程也是本游戏软件的关键。此外,我们还要编写两个过程(Lianxian和Shuying),Lianxian过程用来时刻判断棋盘中是否有三个棋子连成一线;Shuying过程用来判断如果有三个棋子连成一线,是哪一方连成一线的,即判断哪一方获胜。
以上几个问题就是该“井字棋”游戏实现的关键思路。....
http://family.chinaok.com/2005-12/15745.htm