【GoC游戏】五子棋

把代码复制到https://top.51goc.com/ide上面,点击运行就可以玩了


代码如下:

cpp 复制代码
int main()
{
    p.speed(9).up().hide();
    p.rgb(210, 174, 109);
    p.cav(-1).fill(16);
    /*=================================
       老版本无fill命令,建议用rr填充
    =================================*/
    p.font(6);
    p.text("作者:",0,30,0,350,100);
    p.font(1);
    p.text("luo_",0,30,0,350,50);
    p.font(6);
    p.text("五", 0, 200, 0, -205, 195);
    p.text("五", 15, 200, 0, -200, 200);
    p.text("子", 0, 200, 0, -5, -5);
    p.text("子", 15, 200, 0, 0, 0);
    p.text("棋", 0, 200, 0, 196, -197);
    p.text("棋", 15, 200, 0, 200, -200);
    p.cav(1);
    p.text("按Q清屏\t鼠标点击落子", 0, 30, 0, 0, -350);
    p.button(1, "点这里黑棋加分", 0, 20, 0, -300, 350);
    p.button(2, "点这里白棋加分", 0, 20, 0, 300, 350);
    p.cav(-1);

    p.moveTo(0, -275);
    for (int i = 0; i < 12; i++)
        p.r(600, 50, 15).fd(50);
    p.moveTo(0, -273);
    for (int i = 0; i < 12; i++)
        p.r(600, 50, 0).fd(50);
    p.moveTo(-278, 0).rt(90);
    for (int i = 0; i < 12; i++)
        p.r(50, 600, 15).fd(50);
    p.moveTo(-275, 0);
    for (int i = 0; i < 12; i++)
        p.r(50, 600, 0).fd(50);
    p.moveTo(0, 0).oo(8, 0);
    p.moveTo(150, 150).oo(7, 0);
    p.moveTo(-150, 150).oo(7, 0);
    p.moveTo(-150, -150).oo(7, 0);
    p.moveTo(150, -150).oo(7, 0);

    bool a = true;
    int h = 0, b = 0;
    p.cav(0).speed(10);
    p.moveTo(0, 350);
    p.text("黑0:白0", 0, 50);
    for (;;)
    {
        int k = getKey();
        if (k == 'Q')
        {
            p.cavCls(0);
            p.moveTo(0, 350);
            p.text("黑" + d2s(h) + ":" + "白" + d2s(b), 0, 50);
            a = true;
        }
        if (buttonMP(1))
        {
            p.cavCls(0);
            p.moveTo(0, 350);
            h = h + 1;
            p.text("黑" + d2s(h) + ":" + "白" + d2s(b), 0, 50);
            a = true;
            wait(0.1);
        }
        else if (buttonMP(2))
        {
            p.cavCls(0);
            p.moveTo(0, 350);
            b = b + 1;
            p.text("黑" + d2s(h) + ":" + "白" + d2s(b), 0, 50);
            a = true;
            wait(0.1);
        }
        else if (mouseDown())
        {
            p.moveTo(getMDX(), getMDY());
            if (a == true)
            {
                p.oo(16, 15);
                p.oo(15, 0);
                a = false;
                wait(0.5);
            }
            else
            {
                p.oo(16, 0);
                p.oo(15, 15);
                a = true;
                wait(0.5);
            }
        }

    }


    return 0;
}

预览:



如果有不对或体验不好的地方,欢迎指出!

(胜负判定机制我还不会做,所以要手动加分)