关于五子棋判断胜负的问题

qqlxx 2006-11-12 01:38:06
ix,jy为静态变量。
//判断横行
for (int a = ix - 4; a <= ix + 4; a++)
{
if (chess[a, jy] == 2)
{
lishu1++;
if (lishu1 == 5)
MessageBox.Show("恭喜您,你胜利了!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
lishu1 = 0;
}
}
//判断竖行
for (int a = jy - 4; a <= jy + 4; a++)
{
if (chess[ix,a] == 2)
{
lishu2++;
if (lishu2 == 5)
MessageBox.Show("恭喜您,你胜利了!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
lishu2 = 0;
}
}
//判断左斜线
for (int a = ix - 4,b=jy-4; a<=ix+4&b<=jy+4;a++,b++)
{
if (chess[a, b] == 2)
{
lishu3++;
if (lishu3 == 5)
MessageBox.Show("恭喜您,你胜利了!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
lishu3 = 0;
}
}
现在横行和竖行已经实现,但是斜的不行,是不是我的for语句有问题,请高手指点下啊!
...全文
169 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
netskin 2006-11-23
  • 打赏
  • 举报
回复
齐齐鲁,鲁西西,搞定没有呀
netskin 2006-11-12
  • 打赏
  • 举报
回复
//3点 1.为什么直接用 chess[a, b] == 2 ,因为有黑白两种可能性,因此这样不合理,2.MessageBox 应该要加上break,为什么要无用的剩余循环,3,lishu3的初值是否是0
for (int a = ix - 4,b=jy-4; a<=ix+4&b<=jy+4;a++,b++)
{
if (chess[a, b] == 2)
{
lishu3++;
if (lishu3 == 5)
{ MessageBox.Show("恭喜您,你胜利了!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
}
}
else
{
lishu3 = 0;
}
}

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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