皮皮网
皮皮网
发布群源码

【简洁分类源码】【鸟群算法源码】【beta版源码】ashap源码解析

时间:2024-11-30 13:43:04 分类:时尚 编辑:android 5.0源码下载
1.ashapԴ?码解简洁分类源码????

ashap源码解析

ashapԴ?????

       //作者:小斌

       #include<graphics.h>

       #include<conio.h>

       #include<stdlib.h>

       //using namespace std;

       const char LEFT=0x4b;

       const char RIGHT=0x4d;

       const char DOWN=0x;

       const char UP=0x;

       const char ESC=0x1b;

       const char ENTER=0x0d;

       const int BX=;

       const int BY=;

       const int SQ=;

       const int SQCL=;

       const int BkCl=BLUE;

       const int SHAP1=2;

       const int SHAP2=3;

       const int SHAP3=4;

       const int SHAP4=5;

       void drawxiao(int &x, int &y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, SQCL);

        bar(a+1, b+1, a+SQ-1, b+SQ-1);

       }

       void clearxiao(int &x, int &y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, BkCl);

        bar(a+1, b+1, a+SQ-1, b+SQ-1);

       }

       void goleft(int &x, int &y)

       {

        if(x>0)

        {

        clearxiao(x, y);

        drawxiao(--x, y);

        }

       }

       void goright(int &x, int &y)

       {

        if(x<7)

        {

        clearxiao(x, y);

        drawxiao(++x, y);

        }

       }

       void godown(int &x, int &y)

       {

        if(y<7)

        {

        clearxiao(x, y);

        drawxiao(x, ++y);

        }

       }

       void goup(int &x, int &y)

       {

        if(y>0)

        {

        clearxiao(x, y);

        drawxiao(x, --y);

        }

       }

       void end()

       {

        closegraph();

        exit(1);

       }

       void move(int &x, int &y)

       {

        int n=1;

        drawxiao(x, y);

        while(n)

        switch(getch())

        {

        case LEFT :goleft(x, y); break;

        case RIGHT :goright(x, y); break;

        case DOWN :godown(x, y); break;

        case UP :goup(x, y); break;

        case ENTER :n=0; break;

        case ESC :end();

        }

       }

       void qipan()

       {

        int i;

        setbkcolor(BkCl);

        setfillstyle(1, );

        for(i=0; i<9; i++)

        {

        line(BX, i*SQ+BY, BX+8*SQ, i*SQ+BY);

        line(i*SQ+BX, BY, i*SQ+BX, BY+8*SQ);

        }

       }

       void shap1(int x, int y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, SHAP1);

        bar(a+1, b+1, a+SQ-1, b+2*SQ-1);

        bar(a-SQ+1, b+1+SQ, a, b-1+2*SQ);

       }

       void shap2(int x, int y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, SHAP2);

        bar(a+1, b+1, a+SQ-1, b+2*SQ-1);

        bar(a+SQ, b+SQ+1, a+2*SQ-1, b+2*SQ-1);

       }

       void shap3(int x, int y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, SHAP3);

        bar(a+1, b+1, a+2*SQ-1, b+SQ-1);

        bar(a+SQ+1, b+SQ, a+2*SQ-1, b+2*SQ-1);

       }

       void shap4(int x, int y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, SHAP4);

        bar(a+1, b+1, a+2*SQ-1, b+SQ-1);

        bar(a+1, b+SQ, a+SQ-1, b+2*SQ-1);

       }

       void chessboard(int size, int tr, int tc, int dr, int dc)

       {

        if(size>=2)

        {

        size=size/2;

        if(dc<tc+size)//左边半个棋盘

        {

        if(dr<tr+size)//左上

        {

        shap1(tr+size, tc+size-1);

        chessboard(size, tr, tc, dr, dc);

        chessboard(size, tr+size, tc, tr+size, tc+size-1);

        }

        else//左下

        {

        shap2(tr+size-1, tc+size-1);

        chessboard(size, tr, tc, tr+size-1, tc+size-1);

        chessboard(size, tr+size, tc, dr, dc);

        }

        chessboard(size, tr, tc+size, tr+size-1, tc+size);

        chessboard(size, tr+size, tc+size, tr+size, tc+size);

        }

        else//在右边半个棋盘

        {

        if(dr<tr+size)//右上

        {

        shap3(tr+size-1, tc+size-1);

        chessboard(size, tr, tc+size, dr, dc);

        chessboard(size, tr+size, tc+size, tr+size, tc+size);

        }

        else//右下

        {

        shap4(tr+size-1, tc+size-1);

        chessboard(size, tr, tc+size, tr+size-1, tc+size);

        chessboard(size, tr+size, tc+size, dr, dc);

        }

        chessboard(size, tr, tc, tr+size-1, tc+size-1);

        chessboard(size, tr+size, tc, tr+size, tc+size-1);

        }

        }

       }

       int main()

       {

        int driver=DETECT, mode;

        int x=0, y=0;

        initgraph(&driver, &mode, "C:\\JMSOFT\\DRV");

        qipan();//画棋盘

        move(x, y);//移动特殊方格

        chessboard(8, 0, 0, x, y);//覆盖棋盘

        getch();

        return 0;

       }

本文地址:http://0553.net.cn/news/96e612093783.html

copyright © 2016 powered by 皮皮网   sitemap