亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? game_russia.c

?? 一款在tc下可直接運行的俄羅斯方塊小游戲
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <graphics.h>
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>

/*定義左上角點在屏幕上的位置*/
#define MAPXOFT     9
#define MAPYOFT     5

/*定義下一個方塊顯示的位置*/
#define MAPXOFT1     13
#define MAPYOFT1     -2


#define LEFT  0x4b00
#define RIGHT 0x4d00
#define DOWN  0x5000  /*此鍵為加速鍵*/
#define UP    0x4800  /*此鍵為變形鍵*/
#define ESC   0x011b  /*此鍵為退出鍵*/
#define ENTER 0x1c0d


#define TIMER 0x1c /* 時鐘中斷的中斷號 */

/* 中斷處理函數(shù)在C和C++中的表示略有不同。
如果定義了_cplusplus則表示在C++環(huán)境下,否則是在C環(huán)境下。 */

#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif

int TimerCounter=0; /* 計時變量,每秒鐘增加18。 */

/* 指向原來時鐘中斷處理過程入口的中斷處理函數(shù)指針(句柄) */
void interrupt ( *oldhandler)(__CPPARGS);

/* 新的時鐘中斷處理函數(shù) */
void interrupt newhandler(__CPPARGS)
{
    /* increase the global counter */
    TimerCounter++;
    
    /* call the old routine */
    oldhandler();
}

/* 設置新的時鐘中斷處理過程 */
void SetTimer(void interrupt (*IntProc)(__CPPARGS))
{
    oldhandler=getvect(TIMER);
    disable(); /* 設置新的時鐘中斷處理過程時,禁止所有中斷 */
    setvect(TIMER,IntProc);
    enable(); /* 開啟中斷 */
}

/* 恢復原有的時鐘中斷處理過程 */
void KillTimer()
{
    disable();
    setvect(TIMER,oldhandler);
    enable();
}


struct shape
{
    int xy[8],next;
};

struct shape shapes[19]=
{
/*x1,y1,x2,y2,x3,y3,x4,y4 指四個小方塊的相對坐標,next指此方塊變形后應變?yōu)槟膫€小方塊
    { x1,y1,x2,y2,x3,y3,x4,y4,next}*/
    { 0,-2, 0,-1, 0, 0, 1, 0, 1},
    {-1, 0, 0, 0, 1,-1, 1, 0, 2},
    { 0,-2, 1,-2, 1,-1, 1, 0, 3},
    {-1,-1,-1, 0, 0,-1, 1,-1, 0},
    { 0,-2, 0,-1, 0, 0, 1,-2, 5},
    {-1,-1, 0,-1, 1,-1, 1, 0, 6},
    { 0, 0, 1,-2, 1,-1, 1, 0, 7},
    {-1,-1,-1, 0, 0, 0, 1, 0, 4},
    {-1, 0, 0,-1, 0, 0, 1, 0, 9},
    { 0,-2, 0,-1, 0, 0, 1,-1,10},
    {-1,-1, 0,-1, 1,-1, 0, 0,11},
    { 0,-1, 1,-2, 1,-1, 1, 0, 8},
    {-1, 0, 0,-1, 0, 0, 1,-1,13},
    { 0,-2, 0,-1, 1,-1, 1, 0,12},
    {-1,-1, 0,-1, 0, 0, 1, 0,15},
    { 0,-1, 0, 0, 1,-2, 1,-1,14},
    { 0,-3, 0,-2, 0,-1, 0, 0,17},
    {-1, 0, 0, 0, 1, 0, 2, 0,16},
    { 0,-1, 0, 0, 1,-1, 1, 0,18}
};

int board[10][20]={0};/*定義游戲板初始化為0*/
char sp[]="0",le[]="0",sc[]="00000";
int speed,speed0,level,score;
int sign,flag;
int style,style1;  /*style為當前方塊的種類,style1為即將輸出的方塊的種類*/

void draw_block(int x,int y,int style,int way);
void draw_little_block(int x,int y);
void init();
void initialize();
void speed_change(void);
void score_change(int);
void kill_line(int y);
void fill_board(int x,int y, int style);
int  change(int *i,int *j,int key);
void renovate(void);
void ajustment(void);
void level_change(void);


main()
{
    int i,j,key,x0=5,y0=1;
    randomize();
    while(!flag)                    /*flag為0表示重新開始游戲*/
    {
        level=score=speed=0;
        strcpy(le,"0");
        strcpy(sp,"0");
        strcpy(sc,"00000");
        for(i=0;i<10;i++)
            for(j=0;j<20;j++)
                board[i][j]=0;       /*初始化一些變量為0*/
            initialize();            /*初始化進入圖形模式*/
            init();                  /*初始化游戲板記分器等*/
            SetTimer(newhandler);    /* 修改時鐘中斷 */
            ajustment();             /*開始游戲前調(diào)整速度和高度*/
            
            if(level>0)
                level_change();       /*根據(jù)高度隨機確定方塊是否存在*/
            
            style=random(19);         /*隨機確定方塊種類*/
            
            
            while(1)
            {
                i=x0,j=y0;
                
                style1=random(19);    /*隨機確定即將出現(xiàn)的方塊種類*/
                setcolor(WHITE);
                sign=1;
                draw_block(MAPXOFT1,MAPYOFT1,style1,1);
                /*畫出即將出現(xiàn)的方塊*/
                
                for(j=y0;j<=20;j++)   /*使方塊下降*/
                {
                    
                    
                    if(!check_block(i,j,style))
                        break;
                    draw_block(i,j,style,1);
                    
                    
                    while(1)
                    {
                        if(speed0==0)                /*未按下加速鍵時的處理*/
                            
                        {
                            if (TimerCounter>18/(speed+1))
                            {
                                /* 恢復計時變量 */
                                TimerCounter=0;
                                break;
                            }
                        }
                        else if(TimerCounter>18/(9+1))/*按下加速鍵時的處理*/
                        {
                            /* 恢復計時變量 */
                            TimerCounter=0;
                            speed0=0;
                            break;
                        }
                        if(bioskey(1))
                        {
                            key=bioskey(0);
                            if(change(&i,&j,key))/*根據(jù)按鍵值做調(diào)整*/
                            {
                                flag=1;
                                goto end;
                            }
                            
                        }
                        
                        
                        
                    }
                    
                    draw_block(i,j,style,0);
                    renovate();                   /*刷新屏幕*/
                    
                    
                }
                
                if(j==y0)
                    break;
                j--;
                
                draw_block(i,j,style,1);
                
                fill_board(i,j,style);
                
                
                sign=1;
                draw_block(MAPXOFT1,MAPYOFT1,style1,0);
                style=style1;
                kill_line(j);     /*消去的函數(shù),消去若干行并改變分數(shù)和速度*/
                
                
                while(bioskey(1))    /*清除內(nèi)存中的按鍵*/
                    key=bioskey(0);
            }
            setcolor(CYAN);
            settextstyle(0,0,2);
            TimerCounter=0;
            
            while(1)
                if(TimerCounter>54)
                {
                    TimerCounter=0;
                    break;
                }
                while(bioskey(1))     /*清除內(nèi)存中的按鍵*/
                    key=bioskey(0);
                outtextxy(400,340,"Game over!");
                outtextxy(360,360,"Enter to replay.");
                outtextxy(360,380,"Esc to quit.");
                while(bioskey(1)==0);
                key=bioskey(0);
                
                 end:;
                closegraph();
                KillTimer();
                if(key==ESC||flag)
                    break;
    }
    
}



void initialize()/*初始化進入圖形模式*/
{
    int gdriver = VGA, gmode=VGAHI, errorcode;
    
    /* initialize graphics mode */
    
    initgraph(&gdriver, &gmode, "f:\\tc\\BGI");
    
    /* read result of initialization */
    errorcode = graphresult();
    
    if (errorcode != grOk) /* an error occurred */
        
    {
        printf("Graphics error: %s\n", grapherrormsg(errorcode));
        printf("Press any key to halt:");
        getch();
        exit(1); /* return with error code */
    }
}

void init(void)/*初始化游戲板記分器等*/
{
    int x1;
    x1=5+MAPXOFT;
    setcolor(GREEN);
    circle((x1+0.5)*16,(MAPYOFT-2)*16,3*16);
    setcolor(WHITE);
    line((x1-0.6)*16,(MAPYOFT-3.2)*16,x1*16,(MAPYOFT-3.2)*16);
    line((x1+1.4)*16,(MAPYOFT-3.2)*16,(x1+2.0)*16,(MAPYOFT-3.2)*16);
    line((x1+0.5)*16,(MAPYOFT-2)*16,(x1+0.5)*16,(MAPYOFT-1.7)*16);
    circle((x1+0.5)*16,(MAPYOFT-0.9)*16,0.3*16);
    setcolor(CYAN);
    line((MAPXOFT+3)*16,(MAPYOFT+21)*16,MAPXOFT*16,(MAPYOFT+23.5)*16);
    line((MAPXOFT+5.5)*16,(MAPYOFT+21)*16,MAPXOFT*16,(MAPYOFT+26)*16);
    line((MAPXOFT+9)*16,(MAPYOFT+21)*16,(MAPXOFT+12)*16,(MAPYOFT+23.5)*16);
    line((MAPXOFT+6.5)*16,(MAPYOFT+21)*16,(MAPXOFT+12)*16,(MAPYOFT+26)*16);
    setcolor(MAGENTA);
    ellipse((MAPXOFT+1)*16,(MAPYOFT+11)*16,90,270,7*16,7*16);
    ellipse((MAPXOFT+11)*16,(MAPYOFT+11)*16,-90,90,7*16,7*16);
    circle((MAPXOFT+24)*16,(MAPYOFT+6)*16,6*16);
    setcolor(WHITE);
    rectangle((x1-0.5)*16,(MAPYOFT-2.9)*16,(x1-0.1)*16,(MAPYOFT-2.5)*16);
    rectangle((x1+1.5)*16,(MAPYOFT-2.9)*16,(x1+1.9)*16,(MAPYOFT-2.5)*16);
    setcolor(YELLOW);
    rectangle(10*16,6*16,20*16,26*16);
    settextstyle(0,0,2);
    outtextxy(5*16,13.5*16,"level");
    outtextxy(20.4*16,13.5*16,"speed");
    outtextxy((MAPXOFT+22)*16,(MAPYOFT+3)*16,"score");
    settextstyle(0,0,4);
    outtextxy(6.5*16,15*16,"0");
    outtextxy(21.9*16,15*16,"0");
    settextstyle(0,0,3);
    outtextxy((MAPXOFT+21)*16,(MAPYOFT+6)*16,sc);
}


void ajustment(void)            /*開始游戲前調(diào)整速度和高度*/
{
    int key,boo=1,left=1;
    setcolor(YELLOW);
    settextstyle(0,0,2);
    outtextxy(500,340,"PRESS");
    outtextxy(500,360,"ENTER");
    outtextxy(500,380," TO  ");
    outtextxy(500,400,"START");
    while(1)
    {
        if(TimerCounter>8)
        {
            TimerCounter=0;
            boo*=-1;
            if(boo==-1)
                setcolor(BLACK);
            else
                setcolor(YELLOW);
            if(left==1)
            {
                line(6*16,17*16,8.5*16,17*16);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电影在线免费观看| 欧美一级夜夜爽| 欧美欧美欧美欧美| 国产色婷婷亚洲99精品小说| 亚洲特级片在线| 老司机精品视频导航| 成人性生交大片免费看中文网站| 色综合天天综合狠狠| 欧美日韩高清一区二区不卡| 久久婷婷久久一区二区三区| 玉米视频成人免费看| 国产自产2019最新不卡| 色综合咪咪久久| 久久影院电视剧免费观看| 欧美国产成人精品| 亚洲电影第三页| 成人免费视频caoporn| 欧美日韩一区三区四区| 国产亚洲欧美色| 亚洲午夜国产一区99re久久| 亚洲一区二区三区影院| 国产iv一区二区三区| 972aa.com艺术欧美| 99久久久免费精品国产一区二区| 欧美久久久一区| 日韩毛片在线免费观看| 午夜精品在线看| 欧美色老头old∨ideo| 伊人一区二区三区| 色婷婷av久久久久久久| 日韩美女视频一区| 成人永久aaa| 中文字幕 久热精品 视频在线| 舔着乳尖日韩一区| 欧美怡红院视频| 亚洲人成影院在线观看| 国产在线一区观看| 2022国产精品视频| 精品亚洲成a人| 日韩精品中午字幕| 日韩—二三区免费观看av| 欧美亚洲国产一区二区三区va| 国产精品乱人伦中文| 国产乱码精品一区二区三区av| 精品国产一区二区三区久久久蜜月 | 亚洲欧美激情小说另类| 国产v日产∨综合v精品视频| 久久久不卡影院| 国产美女视频一区| 日本一区二区三区国色天香 | 国产成人午夜精品影院观看视频| 91精品国产美女浴室洗澡无遮挡| 亚洲成人7777| 欧美日韩国产在线播放网站| 亚洲国产一区视频| 欧美日韩在线电影| 奇米影视在线99精品| 日韩一区二区三区观看| 日韩av一二三| 久久美女艺术照精彩视频福利播放| 免费精品视频在线| 久久嫩草精品久久久精品| 国产精品亚洲成人| 国产精品美女一区二区在线观看| 国产精品99精品久久免费| 国产欧美日韩久久| 91女人视频在线观看| 亚洲综合自拍偷拍| 欧美一区二区美女| 国内精品伊人久久久久av一坑| 久久久国产精品麻豆| 97精品久久久久中文字幕| 亚洲精品亚洲人成人网在线播放| 精品婷婷伊人一区三区三| 日韩va欧美va亚洲va久久| 久久中文娱乐网| 91亚洲精华国产精华精华液| 亚洲v精品v日韩v欧美v专区| 日韩欧美专区在线| 成人毛片老司机大片| 亚洲综合免费观看高清完整版在线| 欧美日韩高清一区二区不卡| 国产在线一区二区| 亚洲人成人一区二区在线观看| 欧美日韩国产小视频在线观看| 天天综合日日夜夜精品| 久久精品人人做人人爽人人| 在线亚洲欧美专区二区| 狠狠色丁香婷婷综合久久片| 亚洲丝袜美腿综合| 日韩免费在线观看| 色综合天天视频在线观看| 秋霞av亚洲一区二区三| 中文字幕亚洲欧美在线不卡| 欧美伦理视频网站| av一区二区三区| 日本少妇一区二区| **性色生活片久久毛片| 日韩三级视频在线看| 日本高清不卡视频| 国产美女娇喘av呻吟久久| 亚洲欧洲www| 日韩一区国产二区欧美三区| 成人高清免费在线播放| 一区二区三区四区不卡视频| 国产精品女主播在线观看| 久久久久久久av麻豆果冻| 日韩欧美在线123| 3d成人动漫网站| 91久久精品一区二区| 国产91高潮流白浆在线麻豆| 日本在线不卡视频| 香蕉乱码成人久久天堂爱免费| 国产欧美日韩不卡| 欧美成人一区二区| 666欧美在线视频| 色婷婷av一区二区三区大白胸| 国产98色在线|日韩| 韩国av一区二区三区| 午夜婷婷国产麻豆精品| 亚洲欧美偷拍另类a∨色屁股| 久久精品网站免费观看| 久久新电视剧免费观看| 欧美成人精精品一区二区频| 丰满放荡岳乱妇91ww| 精品亚洲免费视频| 国精产品一区一区三区mba视频| 天堂蜜桃一区二区三区| 日韩精品久久久久久| 亚洲成av人片在线观看无码| 成人教育av在线| jlzzjlzz国产精品久久| 91久久一区二区| 精品视频999| 日韩无一区二区| 91丨九色丨蝌蚪富婆spa| 99精品桃花视频在线观看| 一本到不卡精品视频在线观看| 99re在线精品| 色综合久久88色综合天天6| 99国产精品久久| 欧美中文字幕亚洲一区二区va在线| 97久久精品人人做人人爽50路| 99re8在线精品视频免费播放| 99久久久无码国产精品| 欧美偷拍一区二区| 日韩女优电影在线观看| 久久久精品蜜桃| 国产精品久久久99| 亚洲另类一区二区| 一区二区三区精品在线观看| 亚洲一二三四区| 麻豆视频一区二区| 国产精品99久久不卡二区| av动漫一区二区| 欧美日韩精品福利| 久久久精品tv| 欧美—级在线免费片| 亚洲成人精品影院| 丰满白嫩尤物一区二区| 欧美天堂一区二区三区| www.日韩精品| 日韩视频在线观看一区二区| 久久一日本道色综合| 国产精品传媒入口麻豆| 午夜激情久久久| 国产精华液一区二区三区| 91免费精品国自产拍在线不卡| 欧美午夜精品久久久久久孕妇| 日韩欧美国产麻豆| 日韩一区在线看| 亚洲成av人片在线| 亚洲大尺度视频在线观看| 国产毛片一区二区| 欧美日韩精品三区| 亚洲欧洲无码一区二区三区| 人人超碰91尤物精品国产| 粉嫩一区二区三区在线看| 欧美日韩国产欧美日美国产精品| 亚洲精品一区在线观看| 亚洲综合视频在线| 国产成人亚洲综合a∨猫咪| 777午夜精品视频在线播放| 久久先锋资源网| 丝袜美腿亚洲一区| 99精品视频一区二区三区| 日韩免费福利电影在线观看| 亚洲精品一二三区| 国产福利一区二区三区在线视频| 日韩视频免费观看高清在线视频| 国产精品第一页第二页第三页 | 国产精品天美传媒| 日日夜夜免费精品| 色综合久久88色综合天天| 精品国产亚洲一区二区三区在线观看| 亚洲一区二区三区三| 99久久国产综合精品女不卡| 久久一日本道色综合| 久久精品国产色蜜蜜麻豆| 欧美高清视频在线高清观看mv色露露十八|