手敲800多行代码,搞了6个小时,终于写完了五子棋博弈问题,艰难!(以下纯属个人思路,仅供参考,创作不易,禁止搬运)
希望对大家有帮助。
1.课题要求
还记得我们在第一章 见过的“人机对弈”那个例子吗?现在就请你利用自己所学的知识,设计一一个“ 五子棋”对弈程序吧。注意:你所设计的‘对弈程序”的对手是人,因此你的“对弈程序”也要具有一定的智能:能赢就绝不平局,最差的结果也就是平局。要求:
(1)当用户执子时,需在界面上输入落棋的位置。
(2) 当用户落子后,“对弈程序”在两秒后给出落子位置。
(3) 每当一方落子后,要刷新棋盘状态。
(4)棋盘大小为15*15。
2.思路
又加了一个人-人PK。
(1)判断输赢,只可能在当前落子的位置判断输赢
(2)电脑所要执行的操作:
a.当用户已经构成3子的时候,此时电脑必须拦截用户所下的第4个棋子的
落子位置,如果拦截失败,用户在某种意义上面已经取得胜利,只需要走
接下来的操作即可,此时用户胜利;如果拦截成功,则继续游戏,但是还有
一种情况,当用户连成3子的话,此时电脑已经连成3子了,此时电脑下连成
3子的位置.
b.如果用户没有构成3子的话,电脑可以走自己的步数,一次搜索有没有构
成4个棋子的,如果有,则落下此棋子;如果没有4个棋子的,再搜索有没有