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

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

?? els.c

?? 俄羅斯方塊tc源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************************************/
#include "graphics.h" /*頭文件*/
#include "time.h"
#include "stdlib.h"
#include "bios.h"
#include "dos.h"
#include "stdio.h"
#define ESC 0x11b /*鍵盤掃描碼*/
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define F1 0x3b00
#define RIGHT 0x4d00
#define YES 0x1579
#define NO 0x316e
#define RESTART 0x1372
/*****************************************************************************************/
struct diamond /*記錄每種方塊每種狀態的信息*/
{
 int x[4];
 int y[4];
 int start_x;
 int start_y;
 int color;
 struct diamond *next;
};
int grid[12][23]; /*記錄所有格子的狀態 (0)沒有方塊 (1)有固定方塊 (2)有活動方塊*/
int x; /*活動方塊所在位置*/
int y;
int level; /*游戲難度*/
int count; /*計數器*/
int score;/*得分*/
struct diamond *nowinfo; /*當前活動方塊*/
struct diamond *nextinfo; /*下一個方塊*/
int color;/*畫格子的顏色*/
int backcolor;/*游戲區域背景色*/
/*****************************************************************************************/
void show_interface (int mode);/*顯示游戲界面*/
void show_copsign (int topx,int topy,int size,int color);/*顯示公司標志--恒基偉業*/
void show_intro (int xs,int ys);/*顯示軟件介紹區*/
/*void print(); 測試用函數*/
void scandel();/*掃描所有格子看是否有可消除行*/
void show_down ();/*方塊下落后的下一個狀態*/
void show_next ();/*方塊翻轉后的下一個狀態*/
void show_left ();/*方塊向左移動后的下一個狀態*/
void show_right ();/*方塊向右移動后的下一個狀態*/
void interrupt (*oldtimer)();/*指向未安裝前的中斷向量,即函數指針,指向一段可執行的代碼*/
void install();/*安裝新的中斷向量,即將中斷服務程序安裝到中斷向量表中*/
void interrupt newtimer();/*中斷服務程序*/
struct diamond *get_diamond();/*隨機得到一個方塊*/
struct diamond *create_I();/*函數用來構造各種類形方塊的環形鏈表*/
struct diamond *create_T();/*返回鏈表中隨機一個狀態的指針*/
struct diamond *create_L();
struct diamond *create_J();
struct diamond *create_Z();
struct diamond *create_N();
struct diamond *create_H();
void delinfo (struct diamond *info);/*釋放當前方塊所占用的空間*/
void addtobuffer(int c);/*向鍵盤緩沖區中增加一個DOWN*/
/*void clrkey();調用dos中斷清空鍵盤緩沖區,未使用此方法.*/
void showsubwin(struct diamond *next);/*在小窗口顯示下一個方塊*/
void showscore(int scoreget);/*顯示分數*/
void startset();/*初始化游戲*/
/*****************************************************************************************/
main ()
{
 int driver=VGA;
 int mode=VGAHI;
 int i;/*計數器*/
 int j;
 int key;/*記錄鍵盤掃描碼*/
 initgraph (&driver,&mode,"");/*初始化*/
 color=8;
 backcolor=7;
 level=1;
 score=298;
 count=0;
 show_interface (9);/*顯示界面*/
 setfillstyle(SOLID_FILL,1);
 bar(0,465,640,480);
 outtextxy(5,469,"Press any key to start...");
 getch();
 setfillstyle(SOLID_FILL,9);
 bar(0,465,640,480);
 showscore(0);/*顯示分數*/
 randomize();
 nowinfo=get_diamond ();/*得到一個當前方塊*/
 oldtimer=getvect(0x1c);
 install(newtimer);
 for(i=0;i<=21;i++)/*初始化grid[12][23]*/
 {
  for(j=1;j<=10;j++)
  grid[j][i]=0;
 }
 for(i=0;i<=22;i++)
 {
  grid[0][i]=1;
  grid[11][i]=1;
 }
 for(i=0;i<=11;i++)
 {
  grid[i][22]=1;
 }
 x=nowinfo->start_x;/*初始化方塊位置*/
 y=nowinfo->start_y;
 nextinfo=get_diamond ();/*得到下一個方塊*/
 showsubwin(nextinfo);
 for (;;)
 {
  key=bioskey(0);/*得到鍵盤掃描碼*/
  if (key)
  {
   switch(key)
   {
 case DOWN:{
               show_down ();
      break;
        }
 case UP:{
          show_next ();
    break;
   }
 case LEFT:{
         show_left();
      break;
     }
 case RIGHT:{
                show_right();
          break;
      }
    case RESTART:{
         install(oldtimer);
      setfillstyle(SOLID_FILL,1);
         bar(0,465,640,480);
         outtextxy(5,469,"Are you sure to restart (Y/N)...");
      for (;;)
      {
                 key=bioskey(0);/*得到鍵盤掃描碼*/
                   if (key==YES)
       {
                    startset();
        setfillstyle(SOLID_FILL,9);
           bar(0,465,640,480);
     break;
       }
                   if (key==NO)
       {
          setfillstyle(SOLID_FILL,9);
          bar(0,465,640,480);
       install(newtimer);
       break;
       }
     }
     break;
    }
/* case F1:{
       print();
    break;
   }
*/
 case ESC:{
        install(oldtimer);
        setfillstyle(SOLID_FILL,1);
     bar(0,465,640,480);
     outtextxy(5,469,"Are you sure to exit (Y/N)...");
     for (;;)
     {
             key=bioskey(0);/*得到鍵盤掃描碼*/
               if (key==YES)
      {
    closegraph();
          exit(0);
      }
               if (key==NO)
      {
       setfillstyle(SOLID_FILL,9);
       bar(0,465,640,480);
    install(newtimer);
    break;
      }
     }
        
    }
   }
  }
 }
}
/*****************************************************************************************/
struct diamond *get_diamond()
{
 struct diamond *now;
 switch (random(7)+1)
 {
  case 1:{
        now=create_I();
     return now;
    }
   case 2:{
        now=create_T();
     return now;
       }
   case 3:{
        now=create_L();
     return now;
    }
   case 4:{
        now=create_J();
     return now;
    }
   case 5:{
        now=create_Z();
     return now;
    }
   case 6:{
        now=create_N();
     return now;
    }
   case 7:{
        now=create_H();
     return now;
    }
 }
}
/*****************************************************************************************/
void show_interface (int fill_mode)
{
 int i;
 setbkcolor (9);
 setcolor (color);
 setfillstyle (SOLID_FILL,backcolor);
 bar (100,60,300,420);
 bar (360,60,440,140);
 rectangle (100,60,300,420);
 rectangle (96,56,304,424);
 rectangle (360,60,440,140);
 rectangle (356,56,444,144);
 setfillstyle (fill_mode,14);
 floodfill (97,57,color);
 floodfill (397,57,color);
 setcolor(1);
 rectangle(96,56,304,424);
 setcolor (color);
 for (i=80;i<=400;i+=20)
  {
   line (100,i,300,i);
  }
 for (i=120;i<=280;i+=20)
  {
   line (i,60,i,420);
  }
 for (i=80;i<=120;i+=20)
 {
  line (360,i,440,i);
 }
 for (i=380;i<=420;i+=20)
 {
  line (i,60,i,140);
 }
 show_intro (360,180);
 show_copsign (475,320,40,1);
 setfillstyle(SOLID_FILL,1);
 setcolor(14);
 rectangle(420,405,534,417);
 floodfill (421,406,14);
 outtextxy(422,408,"HI-TECH WEALTH");
}
/*****************************************************************************************/
void show_copsign (int topx,int topy,int size,int color)
{
 int halfsize,qtrsize;
 int xadd,xdel,yadd1,yadd2;
 halfsize=0.5*size;
 qtrsize=0.25*size;
 xadd=topx+size;
 xdel=topx-size;
 yadd1=topy+size;
 yadd2=topy+2*size;
 setcolor(color);
 line (topx,topy,xdel,yadd1);
 line (xdel,yadd1,topx,yadd2);
 line (topx,yadd2,xadd,yadd1);
 line (xadd,yadd1,topx,topy);
 rectangle (topx-halfsize,topy+halfsize,topx+halfsize,yadd1+halfsize);
 setfillstyle (SOLID_FILL,color);
 floodfill (topx,topy+1,color);
 floodfill (xdel+1,yadd1,color);
 floodfill (topx,yadd2-1,color);
 floodfill (xadd-1,yadd1,color);
 rectangle (topx-halfsize,yadd1-qtrsize,topx-0.75*halfsize,yadd1+qtrsize);
 floodfill (topx-halfsize+1,yadd1-qtrsize+1,color);
 rectangle (topx-qtrsize,yadd1-halfsize,topx+qtrsize,yadd1-0.25*halfsize);
 floodfill (topx-qtrsize+1,yadd1-halfsize+1,color);
 rectangle (topx+0.75*halfsize,yadd1-qtrsize,topx+halfsize,yadd1+qtrsize);
 floodfill (topx+0.75*halfsize+1,yadd1-qtrsize+1,color);
 rectangle (topx-qtrsize,yadd1+0.25*halfsize,topx+qtrsize,yadd2-halfsize);
 floodfill (topx-qtrsize+1,yadd1+0.25*halfsize+1,color);
 setcolor(14);
 line (topx,topy-1,xdel-1,yadd1);
 line (xdel-1,yadd1,topx,yadd2+1);
 line (topx,yadd2+1,xadd+1,yadd1);
 line (xadd+1,yadd1,topx,topy-1);
 setfillstyle (SOLID_FILL,14);
 floodfill (topx,yadd1,color);
}
/*****************************************************************************************/
 void show_intro (int xs,int ys)
{
 char stemp[20];
 setcolor (15);
 rectangle(xs-3,ys-3,xs+239,ys+115);
 line (xs-3,ys+26,xs+239,ys+26);
 line (xs-3,ys+72,xs+239,ys+72);
 outtextxy(xs,ys,"Level:");
 outtextxy(xs,ys+15,"Score:");
 sprintf(stemp," -Roll  -Downwards");
 stemp[0]=24;
 stemp[7]=25;
 outtextxy(xs,ys+30,"Help:");
 setcolor(14);
 outtextxy(xs+40,ys+30,stemp);
 outtextxy(xs+40,ys+45,"<-Turn Left >-Turn Right");
 outtextxy(xs+40,ys+60,"Esc-Exit R-Restart");
 outtextxy(xs,ys+75,"Russia Diamonds Ver 1.0");
 outtextxy(xs,ys+90,"CopyRight By ChangYong.01-11-1");
 outtextxy(xs,ys+105,"Email:forever_chang@163.com");
}
/*****************************************************************************************/
struct diamond *create_I()
{
 struct diamond *info;
 struct diamond *first;
 first=(struct diamond *)malloc(sizeof(struct diamond));
 info=(struct diamond *)malloc(sizeof(struct diamond));
 first->next=info;
 info->next=first;
 first->x[0]=0;
 first->y[0]=0;
 first->x[1]=-1;
 first->y[1]=0;
 first->x[2]=1;
 first->y[2]=0;
 first->x[3]=2;
 first->y[3]=0;
 first->start_x=5;
 first->start_y=3;
 first->color=2;
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=0;
 info->y[1]=-1;
 info->x[2]=0;
 info->y[2]=1;
 info->x[3]=0;
 info->y[3]=2;
 info->start_x=5;
 info->start_y=1;
 info->color=2;
 if(random(2)==0) {return first;}
  else {return first->next;}
}
/*****************************************************************************************/
struct diamond *create_T()
{
 struct diamond *info;
 struct diamond *first;
 struct diamond *last;
 int i;
 info=(struct diamond *)malloc(sizeof(struct diamond));
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=-1;
 info->y[1]=0;
 info->x[2]=0;
 info->y[2]=-1;
 info->x[3]=1;
 info->y[3]=0;
 info->start_x=5;
 info->start_y=3;
 info->color=4;
 first=info;
 last=info;
 info=(struct diamond *)malloc(sizeof(struct diamond));
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=0;
 info->y[1]=1;
 info->x[2]=0;
 info->y[2]=-1;
 info->x[3]=1;
 info->y[3]=0;
 info->start_x=5;
 info->start_y=2;
 info->color=4;
 last->next=info;
 last=info;
 info=(struct diamond *)malloc(sizeof(struct diamond));
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=-1;
 info->y[1]=0;
 info->x[2]=1;
 info->y[2]=0;
 info->x[3]=0;
 info->y[3]=1;
 info->start_x=5;
 info->start_y=2;
 info->color=4;
 last->next=info;
 last=info;
 info=(struct diamond *)malloc(sizeof(struct diamond));
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=0;
 info->y[1]=1;
 info->x[2]=0;
 info->y[2]=-1;
 info->x[3]=-1;
 info->y[3]=0;
 info->start_x=5;
 info->start_y=2;
 info->color=4;
 last->next=info;
 last=info;
 last->next=first;
 for (i=0;i<=random(4);i++)
 {
  first=first->next;
 }
 return first;
}
/*****************************************************************************************/
struct diamond *create_L()
{
 struct diamond *info;
 struct diamond *first;
 struct diamond *last;
 int i;
 info=(struct diamond *)malloc(sizeof(struct diamond));
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=0;
 info->y[1]=1;
 info->x[2]=0;
 info->y[2]=-1;
 info->x[3]=1;
 info->y[3]=1;
 info->start_x=5;
 info->start_y=2;
 info->color=5;
 first=info;
 last=info;
 info=(struct diamond *)malloc(sizeof(struct diamond));
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=-1;
 info->y[1]=0;
 info->x[2]=1;
 info->y[2]=0;
 info->x[3]=-1;
 info->y[3]=1;
 info->start_x=5;
 info->start_y=2;
 info->color=5;
 last->next=info;
 last=info;
 info=(struct diamond *)malloc(sizeof(struct diamond));
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=0;
 info->y[1]=1;
 info->x[2]=0;
 info->y[2]=-1;
 info->x[3]=-1;
 info->y[3]=-1;
 info->start_x=5;
 info->start_y=2;
 info->color=5;
 last->next=info;
 last=info;
 info=(struct diamond *)malloc(sizeof(struct diamond));
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=-1;
 info->y[1]=0;
 info->x[2]=1;
 info->y[2]=0;
 info->x[3]=1;
 info->y[3]=-1;
 info->start_x=5;
 info->start_y=2;
 info->color=5;
 last->next=info;
 last=info;
 last->next=first;
 for (i=0;i<=random(4);i++)
 {
  first=first->next;
 }
 return first;
}
/*****************************************************************************************/
struct diamond *create_J()
{
 struct diamond *info;
 struct diamond *first;
 struct diamond *last;
 int i;
 info=(struct diamond *)malloc(sizeof(struct diamond));
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=0;
 info->y[1]=1;
 info->x[2]=0;
 info->y[2]=-1;
 info->x[3]=-1;
 info->y[3]=1;
 info->start_x=5;
 info->start_y=2;
 info->color=6;
 first=info;
 last=info;
 info=(struct diamond *)malloc(sizeof(struct diamond));
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=-1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合一区在线| ●精品国产综合乱码久久久久| 国产精品福利一区二区三区| 国产乱人伦精品一区二区在线观看| 精品久久久久久无| 国内精品久久久久影院色| 精品国产污污免费网站入口 | 久久久久国产精品厨房| 国产剧情在线观看一区二区| 久久影院午夜片一区| 丁香五精品蜜臀久久久久99网站| 国产精品嫩草99a| 欧美综合一区二区三区| 男男gaygay亚洲| 精品电影一区二区三区| 成人app软件下载大全免费| 樱桃国产成人精品视频| 欧美一区欧美二区| 风间由美一区二区三区在线观看| 亚洲久本草在线中文字幕| 欧美日韩国产天堂| 国产九色精品成人porny| 亚洲三级在线播放| 日韩一级精品视频在线观看| 成人黄色国产精品网站大全在线免费观看| 一区二区三区免费在线观看| 日韩欧美在线综合网| 成年人午夜久久久| 日本成人在线不卡视频| 国产精品久久久久久亚洲毛片| 精品视频在线免费看| 国产精品888| 午夜精品一区二区三区三上悠亚| 久久久久国产精品厨房| 欧美久久久影院| 成人午夜精品在线| 秋霞国产午夜精品免费视频| 一色桃子久久精品亚洲| 精品美女被调教视频大全网站| 色综合久久久久综合体桃花网| 日韩av成人高清| 中文字幕日韩欧美一区二区三区| 精品久久久三级丝袜| 欧美日韩精品三区| 91视频在线观看免费| 激情文学综合网| 亚洲一区二区三区视频在线播放| 久久久久久黄色| 欧美一区二区福利视频| 91精品福利视频| 国产盗摄视频一区二区三区| 日本欧美在线观看| 亚洲第一久久影院| 亚洲裸体xxx| 国产精品久久久久久亚洲伦 | 国产电影一区二区三区| 美女性感视频久久| 婷婷成人综合网| 亚洲综合另类小说| 亚洲另类春色国产| 国产精品色噜噜| 国产日产精品1区| 精品福利一区二区三区免费视频| 欧美日韩精品欧美日韩精品一| 97久久超碰国产精品电影| 成人污污视频在线观看| 国产成人综合在线观看| 国模冰冰炮一区二区| 免费av网站大全久久| 视频一区在线播放| 首页国产欧美日韩丝袜| 日日夜夜一区二区| 丝袜美腿亚洲综合| 久久精品国产澳门| 精品一区二区三区日韩| 捆绑变态av一区二区三区| 日本不卡一区二区| 麻豆国产精品777777在线| 美国十次综合导航| 国产呦萝稀缺另类资源| 精品一区二区三区久久久| 精品一区二区三区日韩| 国产成人免费视频| 91亚洲午夜精品久久久久久| eeuss影院一区二区三区| 91视频一区二区| 欧洲精品视频在线观看| 欧美三级日韩三级| 91.麻豆视频| 2021久久国产精品不只是精品| 精品国产91久久久久久久妲己| 国产三级三级三级精品8ⅰ区| 国产欧美一区二区精品性色 | 亚洲网友自拍偷拍| 天天色天天操综合| 久草在线在线精品观看| 国产凹凸在线观看一区二区| 99久久婷婷国产综合精品| 日本韩国欧美在线| 欧美一区二区三区视频免费| 2023国产精品自拍| 国产精品久久久久久久久动漫| 亚洲综合色丁香婷婷六月图片| 免费人成黄页网站在线一区二区 | 国产一区二区影院| 不卡的av在线播放| 欧美另类高清zo欧美| 久久亚洲精华国产精华液| 国产精品久久毛片av大全日韩| 亚洲午夜成aⅴ人片| 国产精品一线二线三线精华| 色综合天天综合| 欧美成人一级视频| 亚洲欧美日韩成人高清在线一区| 天堂精品中文字幕在线| 成人v精品蜜桃久久一区| 欧美中文字幕不卡| 久久精品亚洲一区二区三区浴池| 亚洲精品少妇30p| 国产一区二区三区观看| 色婷婷亚洲综合| 久久综合久久综合久久| 亚洲欧美二区三区| 国产又黄又大久久| 色哟哟一区二区三区| 精品国产91久久久久久久妲己 | 亚洲国产sm捆绑调教视频| 国产精品一区在线| 在线91免费看| 亚洲激情网站免费观看| 国产精品一区免费在线观看| 欧美人妇做爰xxxⅹ性高电影| 国产色综合久久| 青草国产精品久久久久久| 99久久精品国产毛片| 精品国产一区久久| 日韩激情视频网站| 在线欧美日韩国产| 欧美激情一区二区三区蜜桃视频| 亚洲午夜久久久久久久久电影院| 成人avav在线| 久久综合久久久久88| 美日韩黄色大片| 3d动漫精品啪啪1区2区免费 | 欧美日韩久久久一区| 中文字幕一区二区三区蜜月| 精品亚洲成a人| 日韩午夜中文字幕| 亚洲大片精品永久免费| aaa欧美大片| 亚洲欧美在线观看| 成人免费看视频| 国产精品欧美一级免费| 激情综合色综合久久综合| 51精品视频一区二区三区| 一区二区三区四区中文字幕| 豆国产96在线|亚洲| 久久久亚洲精品一区二区三区| 麻豆精品精品国产自在97香蕉| 538在线一区二区精品国产| 五月婷婷综合在线| 欧美日韩国产免费| 亚洲一区二区精品3399| 日本高清免费不卡视频| 又紧又大又爽精品一区二区| 一道本成人在线| 玉足女爽爽91| 9191久久久久久久久久久| 日本最新不卡在线| 日韩欧美在线网站| 久久国产乱子精品免费女| 欧美一区二区三区精品| 久久激情五月婷婷| 久久久国产精品午夜一区ai换脸| 激情综合色播激情啊| 国产亚洲va综合人人澡精品| 国产成a人无v码亚洲福利| 日韩欧美色综合| 国产精品影音先锋| 自拍偷拍欧美精品| 日本精品裸体写真集在线观看 | 久久综合色之久久综合| 国产激情精品久久久第一区二区 | 精品欧美久久久| 国产精品66部| 亚洲视频1区2区| 欧美日韩高清一区二区不卡 | 亚洲超碰精品一区二区| 日韩欧美一区二区视频| 免费在线一区观看| 欧美videos大乳护士334| 国产精品香蕉一区二区三区| 中文字幕一区二区三区视频| 欧美色老头old∨ideo| 美女久久久精品| 欧美激情综合网| 欧美色综合网站| 狠狠狠色丁香婷婷综合久久五月| 国产精品青草综合久久久久99| 欧洲精品视频在线观看|