[align=center]五子棋算法[/align]
[list]
[*] 关键词
[/list]
棋位:棋盘的任意一个能放置棋子的位置。
空棋位:没有放置棋子的棋位。
成五:同一色的五子连成一线,胜利。
活四:同一色的四子连成一线,且四子的两端是空棋位。
双三:出现两次下面这种情况:同一色的三子连成一线,一端为空棋位或同一色的子,另一端为空棋位。
我们关心的是当在一空棋位上放上一棋子是否构成“成五”、“活四”、“双三”。
下面三个图分别是成五、活四、双三:
[img]http://dl.iteye.com/upload/picture/pic/77519/a3988788-28d5-322a-8ebb-d5e20553f86e.png[/img]
[img]http://dl.iteye.com/upload/picture/pic/77521/92a60e68-7755-3efc-930c-a9c717c418cd.png[/img]
[imghttp://dl.iteye.com/upload/picture/pic/77523/32507a79-80d9-3c13-ba0f-fc306f7420e3.png[/img]
[list]
[*]评分
[/list]
用两个数组储存分别存储玩家和计算机的分数,下图是对于黑方的评分。
[img]http://dl.iteye.com/upload/picture/pic/77525/5273f5e0-85d2-3ed6-960a-74c66144197f.png[/img]
[list]
[*]思想
[/list]
第一步:遍历玩家和计算机的棋子,如果出现一方成五,则胜;如果玩家出现活四、冲三,立即封堵;如果计算机出现活四、冲三则进行成五。
第二步:如果没有出现活四、冲三,则进行评分,选择最高分下棋子。
[list]
[*] 关键词
[/list]
棋位:棋盘的任意一个能放置棋子的位置。
空棋位:没有放置棋子的棋位。
成五:同一色的五子连成一线,胜利。
活四:同一色的四子连成一线,且四子的两端是空棋位。
双三:出现两次下面这种情况:同一色的三子连成一线,一端为空棋位或同一色的子,另一端为空棋位。
我们关心的是当在一空棋位上放上一棋子是否构成“成五”、“活四”、“双三”。
下面三个图分别是成五、活四、双三:
[img]http://dl.iteye.com/upload/picture/pic/77519/a3988788-28d5-322a-8ebb-d5e20553f86e.png[/img]
[img]http://dl.iteye.com/upload/picture/pic/77521/92a60e68-7755-3efc-930c-a9c717c418cd.png[/img]
[imghttp://dl.iteye.com/upload/picture/pic/77523/32507a79-80d9-3c13-ba0f-fc306f7420e3.png[/img]
[list]
[*]评分
[/list]
用两个数组储存分别存储玩家和计算机的分数,下图是对于黑方的评分。
[img]http://dl.iteye.com/upload/picture/pic/77525/5273f5e0-85d2-3ed6-960a-74c66144197f.png[/img]
[list]
[*]思想
[/list]
第一步:遍历玩家和计算机的棋子,如果出现一方成五,则胜;如果玩家出现活四、冲三,立即封堵;如果计算机出现活四、冲三则进行成五。
第二步:如果没有出现活四、冲三,则进行评分,选择最高分下棋子。