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

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

?? els.c

?? 俄羅斯方塊tc源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
 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=6;
 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=6;
 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=6;
 last->next=info;
 last=info;
 last->next=first;
 for (i=0;i<=random(4);i++)
 {
  first=first->next;
 }
 return first;
}
/*****************************************************************************************/
struct diamond *create_Z()
{
 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]=0;
 first->y[2]=1;
 first->x[3]=1;
 first->y[3]=1;
 first->start_x=5;
 first->start_y=2;
 first->color=9;
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=0;
 info->y[1]=1;
 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=9;
 if(random(2)==0) {return first;}
  else {return first->next;}
}
/*****************************************************************************************/
struct diamond *create_N()
{
 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]=0;
 first->y[1]=1;
 first->x[2]=-1;
 first->y[2]=1;
 first->x[3]=1;
 first->y[3]=0;
 first->start_x=5;
 first->start_y=2;
 first->color=14;
 info->x[0]=0;
 info->y[0]=0;
 info->x[1]=0;
 info->y[1]=-1;
 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=14;
 if(random(2)==0) {return first;}
  else {return first->next;}
}
/*****************************************************************************************/
struct diamond *create_H()
{
 struct diamond *first;
 first=(struct diamond *)malloc(sizeof(struct diamond));
 first->next=first;
 first->x[0]=0;
 first->y[0]=0;
 first->x[1]=0;
 first->y[1]=1;
 first->x[2]=1;
 first->y[2]=0;
 first->x[3]=1;
 first->y[3]=1;
 first->start_x=5;
 first->start_y=2;
 first->color=1;
 return first;
}
/*****************************************************************************************/
void show_next ()
{
 int nowx;/*記錄當前每個格子的位置*/
 int nowy;
 int i;/*計數器*/
 int j;
 int haveit;/*當前格子是否已經顯示*/
 struct diamond *next;/*當前方塊的翻轉后的下一個狀態*/
 next=nowinfo->next;
 if (next==NULL) {gotoxy(1,1);printf("null");}
 for (i=0;i<=3;i++)/*判斷是否能夠翻轉,若不能,就直接退出該函數*/
 {
  if (grid[x+next->x[i]][y+next->y[i]]==1)
  {
   return;
  }
 }
 setfillstyle(SOLID_FILL,backcolor);/*設置背景色以消除不需要的格子*/
 for (i=0;i<=3;i++)
 {
  haveit=0;
  for (j=0;j<=3;j++)
  {
   if (next->x[j]==nowinfo->x[i]&&next->y[j]==nowinfo->y[i]) {haveit=1;break;}
  }
  if (haveit==0) /*判斷翻轉后該格子是否顯示,若不顯示,將該格子設為背景色*/
  {
  grid[x+nowinfo->x[i]][y+nowinfo->y[i]]=0;
  if (y+nowinfo->y[i]>=4)/*判斷該格子是否到了可以顯示的區域*/
   floodfill(80+(nowinfo->x[i]+x)*20+1,-20+(nowinfo->y[i]+y)*20+1,color);
  }
 }
 nowinfo=next;
 nowx=x;
 nowy=y;
 setfillstyle(SOLID_FILL,nowinfo->color);/*設置填沖色為方塊的顏色*/
 for (i=0;i<=3;i++)
 {
  if (grid[x+nowinfo->x[i]][y+nowinfo->y[i]]!=2)/*如果該格子還沒有被顯示*/
  {
   nowx=x+nowinfo->x[i];
   nowy=y+nowinfo->y[i];
   if (y+nowinfo->y[i]>=4)
   floodfill(80+nowx*20+1,-20+nowy*20+1,color);
   grid[nowx][nowy]=2; /*設置該格子當前有活動方塊*/
  }
 }
 return;
}
/*****************************************************************************************/
void show_left ()
{
 int i;/*計數器*/
 int j;
 int haveit;/*當前格子是否已經顯示*/
 int nowx;/*記錄當前每個格子的位置*/
 int nowy;
 for (i=0;i<=3;i++)/*判斷是否可以向左移動*/
 {
  if (grid[x-1+nowinfo->x[i]][y+nowinfo->y[i]]==1)
  {
   return;
  }
 }
 setfillstyle(SOLID_FILL,backcolor);/*設置背景色以消除不需要的格子*/
 for (i=0;i<=3;i++)
 {
  haveit=0;
  for (j=0;j<=3;j++)
  {
   if (nowinfo->x[i]==nowinfo->x[j]-1&&nowinfo->y[i]==nowinfo->y[j]) {haveit=1;break;}
  }
   if (haveit==0) /*判斷翻轉后該格子是否顯示,若不顯示,將該格子設為背景色*/
  {
   grid[x+nowinfo->x[i]][y+nowinfo->y[i]]=0;
   if (y+nowinfo->y[i]>=4)/*判斷該格子是否到了可以顯示的區域*/
   floodfill(80+(nowinfo->x[i]+x)*20+1,-20+(nowinfo->y[i]+y)*20+1,color);
  }
 }
 setfillstyle(SOLID_FILL,nowinfo->color);/*設置填沖色為方塊的顏色*/
 for (i=0;i<=3;i++)
 {
  nowx=x+nowinfo->x[i]-1;
  nowy=y+nowinfo->y[i];
  if (grid[nowx][nowy]!=2)/*如果該格子還沒有被顯示*/
  {
   if (nowy>=4)
   floodfill(80+nowx*20+1,-20+nowy*20+1,color);
   grid[nowx][nowy]=2;
  }
 }
 x=x-1;
 return;
}
/*****************************************************************************************/
void show_right ()
{
 int i;/*計數器*/
 int j;
 int haveit;/*當前格子是否已經顯示*/
 int nowx;/*記錄當前每個格子的位置*/
 int nowy;
 for (i=0;i<=3;i++)
 {
  if (grid[x+1+nowinfo->x[i]][y+nowinfo->y[i]]==1)
  {
   return;/*判斷是否可以向右移動*/
  }
 }
 setfillstyle(SOLID_FILL,backcolor);/*設置背景色以消除不需要的格子*/
 for (i=0;i<=3;i++)
 {
  haveit=0;
  for (j=0;j<=3;j++)
  {
   if (nowinfo->x[i]==nowinfo->x[j]+1&&nowinfo->y[i]==nowinfo->y[j]) {haveit=1;break;}
  }
   if (haveit==0)/*判斷翻轉后該格子是否顯示,若不顯示,將該格子設為背景色*/
  {
   grid[x+nowinfo->x[i]][y+nowinfo->y[i]]=0;
   if (y+nowinfo->y[i]>=4)/*判斷該格子是否到了可以顯示的區域*/
   floodfill(80+(nowinfo->x[i]+x)*20+1,-20+(nowinfo->y[i]+y)*20+1,color);
  }
 }

 setfillstyle(SOLID_FILL,nowinfo->color);/*設置填沖色為方塊的顏色*/
 for (i=0;i<=3;i++)
 {
  nowx=x+nowinfo->x[i]+1;
  nowy=y+nowinfo->y[i];
  if (grid[nowx][nowy]!=2)
  {
   if (nowy>=4)/*判斷該格子是否到了可以顯示的區域*/
   floodfill(80+nowx*20+1,-20+nowy*20+1,color);
   grid[nowx][nowy]=2;
  }
 }
 x=x+1;
 return;
}
/*****************************************************************************************/
void show_down ()
{
 int i;/*計數器*/
 int j;
 int haveit;/*當前格子是否已經顯示*/
 int nowx;/*記錄當前每個格子的位置*/
 int nowy;
 int key;
 for (i=0;i<=3;i++)
 {
  if (grid[x+nowinfo->x[i]][y+nowinfo->y[i]+1]==1)/*判斷方塊是否能夠下落*/
  {
   for (j=0;j<=3;j++)
   {
    grid[x+nowinfo->x[j]][y+nowinfo->y[j]]=1;
 if (y+nowinfo->y[j]<=3)
 {/*判斷游戲是否已經玩完*/
  install(oldtimer);
     setfillstyle(SOLID_FILL,1);
  bar(0,465,640,480);
  outtextxy(5,469,"Do you want to restart (Y/N)...");
  for (;;)
  {
      key=bioskey(0);
      if (key==YES)
   {
       startset();
    setfillstyle(SOLID_FILL,9);
    bar(0,465,640,480);
    return;
   }
      if (key==NO)
   {
    closegraph();
    exit (0);}
   }
  }
 }
   delinfo(nowinfo);
   scandel();/*掃描,刪除*/
   delay(2500);
   while(bioskey(1)) bioskey(0);/*清除鍵盤緩沖區*/
  /* clrkey();*/
   nowinfo=nextinfo;/*得到新的方塊*/
   nextinfo=get_diamond();/*得到下一個方塊*/
   showsubwin(nextinfo);
   x=nowinfo->start_x;/*重新設置方塊位置*/
   y=nowinfo->start_y;
   return;
  }
 }
 setfillstyle(SOLID_FILL,backcolor);/*設置背景色以消除不需要的格子*/
 for (i=0;i<=3;i++)
 {
  haveit=0;
  for (j=0;j<=3;j++)
  {
   if (nowinfo->x[i]==nowinfo->x[j]&&nowinfo->y[i]==nowinfo->y[j]+1) {haveit=1;break;}
  }
   if (haveit==0)/*判斷翻轉后該格子是否顯示,若不顯示,將該格子設為背景色*/
  {
   grid[x+nowinfo->x[i]][y+nowinfo->y[i]]=0;
   if (y+nowinfo->y[i]>=4)/*判斷該格子是否到了可以顯示的區域*/
    floodfill(80+(nowinfo->x[i]+x)*20+1,-20+(nowinfo->y[i]+y)*20+1,color);
  }
 }
 setfillstyle(SOLID_FILL,nowinfo->color);/*設置填沖色為方塊的顏色*/
 for (i=0;i<=3;i++)
 {
  nowx=x+nowinfo->x[i];
  nowy=y+nowinfo->y[i]+1;
  if (grid[nowx][nowy]!=2)/*如果該格子還沒有被顯示*/
  {
   if (nowy>=4)
   floodfill(80+nowx*20+1,-20+nowy*20+1,color);
   grid[nowx][nowy]=2;
  }
 }
 y=y+1;
 return;
}
/*****************************************************************************************/
/*void print()測試用函數
{
int i;
int j;
gotoxy(1,1);
for (j=0;j<=22;j++)
{for (i=0;i<=11;i++)
{
printf ("%d",grid[i][j]);}
printf ("\n");
}
}*/
/*****************************************************************************************/
void scandel()
{
 int i;
 int k;
 int j;
 int num;
 int scoreadd;
 scoreadd=0;
 for (k=21;k>=4;k--)
 {
  num=0;
  for (i=1;i<=10;i++)
  {
   if (grid[i][k]==1) num++;
  }
  if (num==10)
  {
   scoreadd++;
   for (i=1;i<=10;i++)
   {
    setfillstyle(SOLID_FILL,backcolor);
    floodfill(80+i*20+1,-20+k*20+1,color);
   }
   for (j=k;j>=5;j--)
   {
 for (i=1;i<=10;i++)
 {
  setfillstyle(SOLID_FILL,getpixel(80+i*20+1,-40+j*20+1));
     floodfill(80+i*20+1,-20+j*20+1,color);
  grid[i][j]=grid[i][j-1];
 }
   }
   for (i=1;i<=10;i++)
   {
    setfillstyle(SOLID_FILL,backcolor);
    floodfill(80+i*20+1,61,color);
 grid[i][4]=0;
   }
   k++;
  }
 }
if (scoreadd!=0) showscore(2*scoreadd-1);
}
/*****************************************************************************************/
void interrupt newtimer()/*新的定時中斷調用*/
{
  int leveltemp;
  leveltemp=11-level;
  count++;
  if(count>=leveltemp)
  {
  addtobuffer(DOWN);
  count=0;
  }
 (*oldtimer)();
}
/*****************************************************************************************/
void install (void interrupt (*paddr)())
{
 disable();
 setvect(0x1c,paddr);
 enable();
}
/******************************************************************************************/
void delinfo (struct diamond *info)/*釋放開辟的空間*/
{
 struct diamond *now;
 struct diamond *next;
 now=info->next;
 next=info->next;
 while(next!=info)
 {
  next=now->next;
  free(now);
  now=next;
 }
 free(info);
 }
/******************************************************************************************/
void addtobuffer(int c)/*向鍵盤緩沖區中增加一個DOWN*/
{
 unsigned i;
 i=*(unsigned far *)0x0040001CL;
 *(unsigned far *)(0x00400000L | i)=c;
 i+=2;
 if (i>=*(unsigned far *)0x00400082L) i=*(unsigned far *)0x00400080L;
 *(unsigned far *)0x0040001CL=i;
}
/******************************************************************************************/
/*void clrkey()調用dos中斷清空鍵盤緩沖區,未使用此方法.
{
  union REGS in ;
  in.h.ah = 0x0c ;
  in.h.al = 0x00 ;
  intdos(&in , &in) ;
}
*/
/******************************************************************************************/
void showsubwin(struct diamond *next)
{
 int i;/*計數器*/
 int j;
 setfillstyle (SOLID_FILL,backcolor);
 for (i=0;i<=3;i++)
 {
  for(j=0;j<=3;j++)
  {
   floodfill(361+20*i,61+20*j,color);
  }
 }
 setfillstyle (SOLID_FILL,next->color);
 for (i=0;i<=3;i++)
 {
  floodfill(381+next->x[i]*20,81+next->y[i]*20,color);
 }
}
/******************************************************************************************/
void showscore(int scoreget)
{
 char sscore[6];
 char slevel[2];
 score+=scoreget;
 if (score<1000) level=score/100+1;
 sprintf(sscore,"%d",score);
 sprintf(slevel,"%d",level);
 setfillstyle(SOLID_FILL,9);
 bar(406,179,490,203);
 setcolor(14);
 outtextxy (408,180,slevel);
 outtextxy (408,195,sscore);
}
/*******************************************************************************************/
void startset()
{
 int i;
 int j;
 setfillstyle(SOLID_FILL,backcolor);
 for(i=0;i<=21;i++)/*重新初始化*/
 {
  for(j=1;j<=10;j++)
  if (grid[j][i]!=0)
  {
  grid[j][i]=0;
  if (i>=4) floodfill(80+j*20+1,-20+i*20+1,color);
  }
 }
 score=0;
 showscore(0);
 nowinfo=get_diamond ();/*得到一個當前方塊*/
 x=nowinfo->start_x;/*初始化方塊位置*/
 y=nowinfo->start_y;
 nextinfo=get_diamond ();/*得到下一個方塊*/
 showsubwin(nextinfo);
 install(newtimer);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线精品国精品国产尤物884a| 日韩精品一区二区三区视频| 4438成人网| 国产精品久久夜| 蜜臀av国产精品久久久久| 色综合久久综合网欧美综合网| 日韩欧美一区二区久久婷婷| 亚洲精品一卡二卡| 粉嫩av一区二区三区| 欧美一区二区三区婷婷月色| 亚洲欧美日韩国产综合在线| 国产一区二区免费看| 91精品国产黑色紧身裤美女| 一区二区三区小说| av毛片久久久久**hd| 欧美激情在线观看视频免费| 精品在线一区二区| 欧美一激情一区二区三区| 伊人夜夜躁av伊人久久| 成人h精品动漫一区二区三区| 久久蜜桃av一区精品变态类天堂 | 欧美日韩免费在线视频| 国产精品成人在线观看| 国产福利不卡视频| 久久综合国产精品| 国产乱码一区二区三区| 欧美成人在线直播| 久久99精品久久久久久| 日韩欧美电影在线| 免费成人av资源网| 精品日韩欧美在线| 国产一区二区91| 国产亚洲精品超碰| 成人动漫一区二区在线| 18欧美亚洲精品| 在线中文字幕一区| 午夜精品久久久久久久久久久| 欧美日韩在线综合| 美美哒免费高清在线观看视频一区二区 | 偷拍一区二区三区四区| 欧美日韩在线亚洲一区蜜芽| 亚洲成人黄色小说| 欧美高清激情brazzers| 蜜臀av在线播放一区二区三区| 欧美成人免费网站| 粉嫩一区二区三区在线看| 国产精品成人免费精品自在线观看 | 国产999精品久久久久久| 国产欧美精品在线观看| 91亚洲精品一区二区乱码| 亚洲午夜一区二区| 欧美mv和日韩mv的网站| 国产成人啪免费观看软件| ...xxx性欧美| 欧美精选在线播放| 国产一区二区三区久久久| 亚洲欧美综合色| 欧美精品色综合| 国产自产2019最新不卡| 亚洲欧美怡红院| 91麻豆精品国产91久久久久| 国产成人综合视频| 亚洲一级不卡视频| 久久中文字幕电影| 91一区一区三区| 狠狠色综合播放一区二区| 国产精品电影一区二区三区| 91精品午夜视频| 91婷婷韩国欧美一区二区| 人人爽香蕉精品| 亚洲靠逼com| 精品成人一区二区三区| 欧美三级视频在线播放| 国产91高潮流白浆在线麻豆 | 欧美一区2区视频在线观看| 国产精品1区2区3区| 亚洲国产综合在线| 国产欧美视频一区二区三区| 欧美日韩国产成人在线免费| 成人理论电影网| 久久国产精品免费| 日韩国产欧美三级| 亚洲精品日韩一| 国产女主播一区| 精品成a人在线观看| 欧美日韩精品是欧美日韩精品| 盗摄精品av一区二区三区| 免费视频一区二区| 亚洲成a人片综合在线| 国产亚洲欧美中文| 欧美电影免费观看高清完整版在线观看| 91一区二区在线观看| 国产精品一品视频| 老司机精品视频一区二区三区| 亚洲自拍欧美精品| 中文字幕日韩av资源站| 久久免费视频一区| 久久综合久久鬼色中文字| 欧美老肥妇做.爰bbww| 欧美亚洲综合久久| 91蜜桃传媒精品久久久一区二区 | 捆绑变态av一区二区三区| 一区二区三区精品久久久| 中文字幕欧美一| 中文字幕国产一区二区| 中文字幕欧美日本乱码一线二线 | 粉嫩欧美一区二区三区高清影视| 国产一区二区三区av电影| 麻豆精品精品国产自在97香蕉 | 精品国内二区三区| 欧美一区二区视频免费观看| 91精品国产色综合久久ai换脸| 欧美三级三级三级| 欧美日本免费一区二区三区| 欧美日韩在线播放三区四区| 欧美性欧美巨大黑白大战| 91福利国产成人精品照片| 一本一道综合狠狠老| 色天使久久综合网天天| 在线免费观看日本一区| 欧美少妇bbb| 555www色欧美视频| 日韩视频在线永久播放| 欧美精品一区二区三区在线| 久久久久亚洲综合| 国产精品色婷婷| 亚洲精品视频在线看| 亚洲成在线观看| 奇米精品一区二区三区在线观看一| 美女免费视频一区二区| 国产传媒久久文化传媒| 成人av电影在线| 欧美在线啊v一区| 欧美一级二级三级乱码| 国产欧美日韩麻豆91| 成人欧美一区二区三区白人| 亚洲一区欧美一区| 免费成人小视频| 99视频精品免费视频| 欧美日韩免费视频| 欧美精品一区二区在线观看| 国产精品国产三级国产aⅴ原创| 一区二区三区 在线观看视频| 美女视频黄a大片欧美| 福利一区二区在线| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 91精品婷婷国产综合久久性色| 久久久午夜电影| 一区二区三区不卡在线观看| 久久国产婷婷国产香蕉| 99精品视频在线观看| 欧美一级国产精品| 亚洲精品成人少妇| 九九久久精品视频| 欧美系列日韩一区| 中文一区二区完整视频在线观看| 亚洲成a人v欧美综合天堂下载| 国产精品亚洲一区二区三区在线 | 91在线观看一区二区| 欧美一区二区三区婷婷月色| 中文字幕日本不卡| 久久99精品久久久久婷婷| 欧洲亚洲精品在线| 国产日韩影视精品| 日韩vs国产vs欧美| 在线观看国产精品网站| 久久久欧美精品sm网站| 亚洲成a人v欧美综合天堂| 岛国av在线一区| 精品精品国产高清一毛片一天堂| 亚洲午夜电影网| 色综合夜色一区| 中文av字幕一区| 国产麻豆欧美日韩一区| 欧美日韩一级二级| 一区二区三区四区不卡视频| 成人午夜在线免费| wwww国产精品欧美| 捆绑变态av一区二区三区| 欧美日韩在线免费视频| 亚洲精品国产精品乱码不99| 成人精品国产免费网站| 2020日本不卡一区二区视频| 久久9热精品视频| 欧美一区二区日韩| 日韩国产成人精品| 欧美一区二区在线不卡| 偷拍日韩校园综合在线| 欧美日韩不卡一区| 亚洲成人免费在线观看| 在线观看视频一区二区| 一区二区高清视频在线观看| 色老汉av一区二区三区| 亚洲精品成人在线| 欧美在线高清视频| 天天av天天翘天天综合网色鬼国产| 欧美色爱综合网| 偷拍与自拍一区| 日韩精品一区二区三区四区| 久草这里只有精品视频|