新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機+8*8點陣實現的貪食蛇源代碼

        51單片機+8*8點陣實現的貪食蛇源代碼

        作者: 時間:2016-11-30 來源:網絡 收藏

        /*****************
        乘方程序
        *****************/
        uchar mux(uchar temp)
        {
        if(temp==7)return 128;
        if(temp==6)return 64;
        if(temp==5)return 32;
        if(temp==4)return 16;
        if(temp==3)return 8;
        if(temp==2)return 4;
        if(temp==1)return 2;
        if(temp==0)return 1;
        return 0;
        }
        /*****************
        顯示時鐘 顯示程序
        *****************/
        void timer0(uchar k)
        {while(k--)
        {for(i=0;i{P2=mux(x[i]);P1=255-mux(y[i]);
        turnkey(); //上下左右鍵位處理
        delay(TIME); //顯示延遲
        P2=0x00;P1=0xff;
        }}
        }
        /*****************
        主程序
        *****************/
        void main(void)
        {e=SPEED;
        P0=0x00;
        P1=0xff;
        P2=0x00;
        P3=0x00;
        while(1)
        {//if(keyenable==1){P1=0x00;P2=0xff;}else{P1=0xff;P2=0x00;}
        for(i=3;ix[0]=4;y[0]=4; //果子
        n=3; //蛇長 n=-1
        x[1]=1;y[1]=0; //蛇頭
        x[2]=0;y[2]=0; //蛇尾1
        addx=0;addy=0; //位移偏移
        //k=1;
        while(1){if(keyenable)break;timer0(1);}
        while(1)
        {timer0(e);
        if(knock()){e=SPEED;break;} //判斷碰撞
        if((x[0]==x[1]+addx)&(y[0]==y[1]+addy)) //是否吃東西
        {n++;
        if(n==SNAKE+1)
        {n=3;e=e-10;
        for(i=3;i for(i=3;i }
        x[0]=x[n-2];
        y[0]=y[n-2];
        }
        for(i=n-1;i>1;i--){x[i]=x[i-1];y[i]=y[i-1];}
        //x[n-1]=x[2];y[n-1]=y[2];
        x[1]=x[2]+addx;y[1]=y[2]+addy; //移動
        }
        }
        }

        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 连州市| 嵊泗县| 林周县| 轮台县| 平果县| 兴城市| 富锦市| 宁阳县| 固始县| 蓬莱市| 蒙城县| 乌拉特前旗| 化州市| 鄢陵县| 闽侯县| 互助| 密云县| 漾濞| 开平市| 苍南县| 阿图什市| 福海县| 遂平县| 佛学| 上思县| 托克托县| 安多县| 虎林市| 汨罗市| 延川县| 张家港市| 化州市| 哈密市| 镶黄旗| 石台县| 凤台县| 合肥市| 浦江县| 霍林郭勒市| 蒙山县| 东源县|