文章标题

2015.10.29
1、今天在师兄们的指导下,完善了源代码中的判断输赢函数,并且将我从一个巨大的误区中拖离出来(输赢判断并不等于人人对战)。 另外规划了一连串的完善人人的任务(调整五子连珠后的画线、将判断代码从鼠标事件中拉出来形成一个独立的函数isWin、在胜利后不得下子、重新开始功能以及悔棋功能。。。)
2、今天只做成了更改源代码,并将人人对战以及判断函数分离。(体会到了更改大量变量的爽快…)
3、由于是体力活,遇到的困难并不是很大。
4、明天计划完成所有更改,尽量快速进入人机对战的编写。

2015.10.30
1、今天完成了各项完善。
2、通过昨天师兄教的stack函数的用法,完成了悔棋功能以及重新开始功能的构建。通过百度以及师兄的指导,完成了悔棋按钮以及重新开始按钮的构建。通过更改初始化函数renew,实现了重新开始后不可下子、刚打开窗口时不得下子功能。另外,在悔棋函数undo中加入了if语句实现了胜利后不得悔棋的功能…
3、①悔棋以及重新开始按钮的构建(单纯用QPushButton p(this);
p.setGeometry(int x,int y,int w,int h);
QObject::connect(p,&QPushButton::clicked,&MainWindow::undo);

是无法构建出悔棋按钮的。需要将函数更改为

QPushButton *p = new QPushButton("悔棋",this);
p -> setGeometry(int x,int y,int w,int h);
QObject::connect(p,&QPushButton::clicked,this,&MainWindow::undo);

②stack需要构建两个分别存放x,和y;

if(isManMode)
    {
        chessboard[X.top()][Y.top()] = ORIGIN;
        X.pop();
        Y.pop();
        count--;
    }

该处需要放一个if语句防止五子连珠后还能悔棋。
③对于renew函数的重编写:将

    for(int i=0;i<LINE;i++)
    {
        for(int j=0;j<LINE;j++)
        {
            chessboard[i][j]=ORIGIN;
        }
    }
    count=0;
    posX = 0;
    posY = 0;
    IFWIN = NOWIN;
    isManMode = true;

改为for(int i=0;i<LINE;i++)
{
for(int j=0;j<LINE;j++)
{
chessboard[i][j]=ORIGIN;
}
}
count=0;
posX = 0;
posY = 0;
IFWIN = NOWIN;

并分别取名为renew 以及 restart。renew用于棋盘的初始化,restart用于棋盘的重新开始。
….
4、今天完成的细节很多,但学习到的东西也更多,接下来还有些问题需要完善,明天开始进行人机的编写。

你可能感兴趣的:(代码,源代码)