五子棋游戏源码(c#)
部分代码
void winJudge(int x,int y)
{
//下棋之前记住改变的状态
State s;
//s = new State();
if (states.count >= 6)
{
s = states.getAndRemoveLast();
s.k_valueList = new ArrayList();
}
else
{
s = new State();
}
s.x = x;
s.y = y;
//记住坐标
s.pictureBox=paintNode(x * 36 - 18, y * 36 - 18);//下棋
chessBorad[x, y] = 2;//棋盘标记已下棋
for (int k = 0; k < re.getCount(); k++)
{//遍历所有的赢法
if (wins[x, y, k])
{//如果(x,y)这个点在某一种赢法中
//记录之前的k中赢发的状态值
s.k_valueList.Add(new K_Value(k, myWin[k], computerWin[k]));
computerWin[k]++; //那么该种赢法中有多了一个棋子
myWin[k] = 999; //那么我方的这种赢法就不可能赢了,设一个异常的值
if (computerWin[k] == 5)
{ //如果计算机在某种赢法上连上了五个子,那么计算机就赢了,我方就输了
MessageBox.Show("你输了");
over = true; //结束游戏
return;
}
}
}
states.add(s);
if (!over)
{//如果没有结束游戏
me = !me;//换我方下棋
}
}
fixed
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。