五子棋的棋子判断

司码君 2003-05-25 02:15:26
怎样判断已经有一方胜利

就是怎样判断已经有一个方向上的棋子数量达到5个

最好给出算法
...全文
196 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jq2002 2003-06-01
  • 打赏
  • 举报
回复
搜索引擎上搜五子棋源码能出一大堆
阿鹏兄 2003-05-31
  • 打赏
  • 举报
回复
(15,15)的2维数组,1表示黑,2表示白 然后做遍历看某一列、行、斜行是否连续5个同值,做法见wenww(小不点)
神我 2003-05-31
  • 打赏
  • 举报
回复
建议你去下载五子棋的源码,已经有很多种让人下载,自己去参考。
zzzl 2003-05-30
  • 打赏
  • 举报
回复
晕,这还需要什么算法,几个循环不就行了
wenww 2003-05-29
  • 打赏
  • 举报
回复
我想楼主要的是这个把

begin
IsWin:=false;
if IsBlack then
wtag:=1 else
wtag:=2;
for i:=0 to 18 do
for j:=0 to 14 do
begin
{是否有行连成}
if (i<15)
and(Tag[i,j]=wtag)
and(Tag[i+1,j]=wtag)
and(Tag[i+2,j]=wtag)
and(Tag[i+3,j]=wtag)
and(Tag[i+4,j]=wtag)
then
begin
IsWin:=True;
goto exit1;
end;
{是否有列连成}
if (Tag[i,j]=wtag)
and(Tag[i,j+1]=wtag)
and(Tag[i,j+2]=wtag)
and(Tag[i,j+3]=wtag)
and(Tag[i,j+4]=wtag)
then
begin
IsWin:=True;
goto exit1;
end;
{是否有主对角线连成}
if (i<15)
and(Tag[i,j]=wtag)
and(Tag[i+1,j+1]=wtag)
and(Tag[i+2,j+2]=wtag)
and(Tag[i+3,j+3]=wtag)
and(Tag[i+4,j+4]=wtag)
then
begin
IsWin:=True;
goto exit1;
end;
{是否有副对角线连成}
if (Tag[i,j]=wtag)
and(Tag[i-1,j+1]=wtag)
and(Tag[i-2,j+2]=wtag)
and(Tag[i-3,j+3]=wtag)
and(Tag[i-4,j+4]=wtag)
then
begin
IsWin:=True;
goto exit1;
end;
end;
icepointc 2003-05-27
  • 打赏
  • 举报
回复
to
snake_eye

以空格为判断条件是最好的,什么意思,能说明白一点吗
snake_eye 2003-05-25
  • 打赏
  • 举报
回复
以空格为判断条件是最好的
耙子 2003-05-25
  • 打赏
  • 举报
回复
这不就是算发嘛。
司码君 2003-05-25
  • 打赏
  • 举报
回复
我想看看算法有没有
谢谢
耙子 2003-05-25
  • 打赏
  • 举报
回复
这还不简单,
弄一个数组保存棋盘,
以最后的落点为基准,检查 横、竖和2个对角线的棋子是否满足5个连续就行了

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧