web游戏源码

时间:2024-11-17 14:31:03编辑:阿奇

求俄罗斯方块的手机游戏源代码

  是俄罗斯方块
  但不晓得是不是手机游戏

  #include
  #include
  #include
  #include
  #include
  #include
  #include
  void draw_block(int x,int y,int style,int way);
  void kill_line(int y);
  void draw_little_block(int x,int y,int z,int style);
  int check_block(int x,int y,int style);


  int change(int *i,int *j,int key);
  int style1,style,score,speed,l;
  int board[10][20];
  char str[100];


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

  struct shape shapes[19]= /* 19种方块(前

  8个点表示4个小方块的相对位置 第9点表示类型) */
  {

  {
  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}
  };

  #define MAPXOFT 9 /* 第1个方块的位置 */
  #define MAPYOFT 5


  #define MAPXOFT1 18 /* 下一个方块的位置 */
  #define MAPYOFT1 17


  #define LEFT 0x4b00
  #define RIGHT 0x4d00
  #define DOWN 0x5000
  #define UP 0x4800
  #define ESC 0x011b
  #define ENTER 0x1c0d


  int main()
  {
  int gdriver,gmode,

  i,j,key,x0=5,y0=1,m,n,c,key1,p,q,le=0,b;
  l=1,score=0;
  gdriver=DETECT;


  initgraph(&gdriver,&gmode,"D:\\TURBOC2");
  randomize();


  for(m=0;m<=19;m++)
  for(n=0;n<=19;n++)
  board[m][n]=0; /* 初始游戏版 */

  setcolor(10); /* 开机的画面 */
  settextstyle(0,0,3);
  outtextxy(10,150,"WELCOME TO RUSSIS");
  outtextxy(10,250,"READY GO");
  setcolor(14);
  settextstyle
  (0,0,4);
  outtextxy(10,350,"^_^");
  /*
  circle(400,350,60);
  ellipse(370,340,60,120,25,25);
  ellipse(430,340,60,120,25,25);
  ellipse(400,350,225,315,30,30);*/

  getch();

  settextstyle(0,0,1);

  cleardevice();

  setcolor(LIGHTRED); /* 画出游戏所在的范围图

  */
  setlinestyle(0,0,3);
  setfillstyle(1,14);
  rectangle(157,419,533,429);
  floodfill(300,424,LIGHTRED);


  setcolor(LIGHTRED);
  setlinestyle(0,0,3);
  setfillstyle(1,14);
  rectangle(147,95,157,429);
  floodfill(152,200,LIGHTRED);


  setcolor(LIGHTRED);
  setlinestyle(0,0,3);
  setfillstyle(1,14);
  rectangle(323,95,333,429);
  floodfill(330,320,LIGHTRED);


  setcolor(LIGHTRED);
  setlinestyle(0,0,1);
  setfillstyle(1,BLUE);
  rectangle(450,50,500,70);
  floodfill(455,55,LIGHTRED);


  setcolor(10);
  for(m=0;m<=10;m=m+2)
  ellipse(240,94,0,180,84+m,84+m);


  setcolor(14);
  setfillstyle(1,0);
  circle(440,330,60);
  floodfill(440,330,14);

  outtextxy(420,80,"* you can change the game");

  /* 对游戏的说明 */
  outtextxy(440,90,"-speed and the gradth by"); /*

  上为变形 左右 为 调整


  下为快下 ESC为退出 */
  outtextxy(440,100," using 'up'and'down'.");
  outtextxy(420,110,"* when you are plying the");
  outtextxy(440,120,"game,you can use these pu");
  outtextxy(440,130,"-tturns.");
  outtextxy(420,140,"* if you want to go into t");
  outtextxy(440,150,"-he game,please 'enter'.");
  outtextxy(420,160,"* you can chang shapes ");
  outtextxy(440,170," using UP");
  outtextxy(420,180,"* RIGHT and LEFT can" );
  outtextxy(440,190," move shapes");


  outtextxy(10,40,"GAMESPEED:");
  outtextxy(10,100,"GRADTH:");
  printf("\n\n\n 1");
  printf("\n\n\n\n 0");


  /* setcolor(LIGHTRED);
  setlinestyle(0,0,1);
  setfillstyle(1,10);
  rectangle(10,65,110,85);
  floodfill(15,75,LIGHTRED); */


  outtextxy(450,40,"SCORES:");
  outtextxy(10,190,"**The speed will");
  outtextxy(10,200,"increas if score");
  outtextxy(10,210,"increas 3");


  for(p=0;p<=100;p++) /* 对速度的调整 */
  { key=bioskey(0);

  if(key==ENTER)
  break;

  if(key==UP)
  {
  if(l==9)
  l=9;
  if(l<9)
  l++;
  }
  if(key==DOWN)
  {
  if(l==1)
  l=l;
  if(l>1)
  l--;
  }
  gotoxy(2,4);
  printf("%d",l);
  }
  for(q=0;q<=100;q++) /* 对高度的调整 */
  {
  key=bioskey(0);
  if(key==ENTER)
  break;

  if(key==UP)
  {
  if(le==5)
  le=le;
  if(le<5)
  le++;
  }
  if(key==DOWN)
  {
  if(le==0)
  le=le;
  if(le>0)
  le--;
  }
  gotoxy(2,8);
  printf("%d",le);
  }


  key=bioskey(0);
  if(key==ENTER)
  {
  style=random(19);
  for(m=1;m<=le;m++) /* 具体的对高度的调整 */
  {
  b=random(7)+1;
  for(n=1;n<=10;n++)
  {
  if(random(2))
  {
  board[n-1][20-m]=1;
  draw_little_block(MAPXOFT+n,MAPYOFT+21-m,1,b);
  }


  }
  }

  while(1)
  {
  while(1)
  {

  i=x0,j=y0;
  style1=random(19);
  setcolor(14); /* 画出下一个方

  块 */
  draw_block(MAPXOFT1,MAPYOFT1,style1,1);


  for(j=y0;j<=20;j++)
  {


  while(1)
  {

  if(bioskey(1)) /* 方块的

  调整 */
  {
  key=bioskey(0);

  change(&i,&j,key);

  }
  if(!check_block

  (i,j+1,style)) /* 判断方块能不能下降 */
  break;
  if(j==20)
  break;


  if(speed==1)
  {
  draw_block

  (i,j,style,0); /* 方块的下降 */
  j++;
  draw_block

  (i,j,style,1);
  delay(10000);
  }


  if(speed!=1)
  {
  m++;
  delay

  (10000);
  if(m>=3*(10-l))
  {
  m=0;
  draw_block

  (i,j,style,0); /* 方块的下降 */
  j++;
  draw_block

  (i,j,style,1);
  }
  }


  }


  speed=0;

  for(m=0;m<=6;m+=2) /* 对有方块的位置给予1

  的数值 */
  board[i+shapes[style].xy[m]-1]

  [j+shapes[style].xy[m+1]-1]=1;

  if(board[ i][4]==1)

  {

  setcolor(14);


  settextstyle(0,0,2);


  outtextxy(10,450,"CAREFUL -_-");


  delay(100000000);


  delay(100000000);


  setcolor(0);


  outtextxy(10,450,"CAREFUL -_-");


  settextstyle(0,0,1);


  setcolor(LIGHTRED);
  }

  /* setcolor(LIGHTRED);
  setlinestyle(0,0,1);
  setfillstyle(1,10);
  rectangle(10,65,110,85);
  floodfill(15,75,LIGHTRED);*/

  if(l==1) /* 显示当前游戏等级 */
  {
  setcolor(LIGHTRED);
  setlinestyle(0,0,1); /* 容易的速度 */
  setfillstyle(1,10);
  rectangle(10,65,110,85);
  floodfill(15,75,LIGHTRED);

  outtextxy(7,70," easy speed");
  }


  if(l==4)

  {
  setcolor(BLACK);
  outtextxy(7,70," easy speed");
  setcolor(LIGHTRED); /* 中等难度 */
  setlinestyle(0,0,1);
  setfillstyle(1,10);
  rectangle(10,65,110,85);
  floodfill(15,75,LIGHTRED);
  outtextxy(7,70," normal speed");
  }
  if(l==7)
  {
  setcolor(BLACK);
  outtextxy(7,70," normal speed");
  setcolor(LIGHTRED);
  setlinestyle(0,0,1); /* 困难的难度 */
  setfillstyle(1,10);
  rectangle(10,65,110,85);
  floodfill(15,75,LIGHTRED);
  outtextxy(7,70," hard speed");
  }
  kill_line(j);
  if(j==20)
  break;

  if(!check_block(i,j+1,style))
  break;

  }
  draw_block(MAPXOFT1,MAPYOFT1,style1,0);

  /* 对下1个方块显示位置进行覆盖 */
  style=style1; /* 使的方块和显示的方块一样

  */

  if(j==1) /* 关机的画面 */
  {
  setcolor(14);
  settextstyle(0,0,2);
  outtextxy(170,200,"GAME OVER");
  outtextxy(170,240,"THANK YOU");
  sleep(3);
  exit(0);
  }
  }

  }
  }
  getch();
  }
  int change(int *i,int *j,int key) /* 方块的具体的变化(

  移动 变形 下降) */
  {


  if(key==UP&&check_block(*i,*j,shapes[style].next)) /*

  变形 */
  {
  draw_block(*i,*j,style,0);
  style=shapes[style].next;
  draw_block(*i,*j,style,1);
  }

  else if(key==LEFT&&check_block(*i-1,*j,style)) /* 移动

  */
  {
  draw_block(*i,*j,style,0);
  (*i)--;
  draw_block(*i,*j,style,1);
  }

  else if(key==RIGHT&&check_block(*i+1,*j,style))
  {
  draw_block(*i,*j,style,0);
  (*i)++;
  draw_block(*i,*j,style,1);
  }
  else if(key==DOWN&&check_block(*i,*j+1,style)) /* 下降

  */
  {
  draw_block(*i,*j,style,0);
  (*j)++;
  draw_block(*i,*j,style,1);
  speed=1;

  }

  else if(key==ESC) /* 退出 */
  exit(0);


  }

  void draw_block(int x,int y,int style,int way) /* 画出方块

  的位置 */

  {
  int x1=x+MAPXOFT,y1=y+MAPYOFT;

  int i;

  if(way==1)
  {
  setcolor(WHITE);


  }
  else
  {
  setcolor(BLACK);

  }
  for(i=0;i<=6;i+=2)
  {

  draw_little_block(x1+shapes[style].xy[

  i],y1+shapes[style].xy[i+1],way,style);

  }
  }


  void draw_little_block(int x,int y,int z,int style) /* 画

  出方块的每一个小方块的形状(方块的色彩) */
  { int m,n;

  if(z==1) /* 对色彩的调整 */
  {
  if(0<=style&&style<=3)
  n=2;
  if(4<=style&&style<=7)
  n=3;
  if(8<=style&&style<=11)
  n=4;
  if(12<=style&&style<=13)
  n=5;
  if(14<=style&&style<=15)
  n=6;
  if(16<=style&&style<=17)
  n=7;
  if(style==18)
  n=8;

  m=1;
  }

  if(z==0)
  {
  m=0,n=0;
  }


  setcolor(m);

  setfillstyle(1,n);

  rectangle(x*16,y*16,x*16+16,y*16+16);

  floodfill(x*16+2,y*16+2,m);


  }

  void kill_line(int y) /* 消行 */
  {
  int i,t=1,j,k,color=random(7)+1;
  for(;y>=1&&t<=4;y--,t++) /* 对4行进行验证 */
  {
  for(i=1;i<=10;i++)
  if(!board[i-1][y-1]) /* 严整1行的数组是不是全

  为1 */
  break;
  if(i==11)

  {
  setcolor(LIGHTRED); /* 对积分底色的画法

  */

  setlinestyle(0,0,1);

  setfillstyle(1,BLUE);

  rectangle(450,50,500,70);

  floodfill(455,55,LIGHTRED);


  score++; /* 每消去1行 可以得1分 */
  setcolor(14);
  itoa(score,str,10);
  outtextxy(460,55,str);
  if(score!=0&&score%3==0)
  l++; /* 每次分到一定位置是 速度进

  行提高(目前是3行加1次 可以调整) */

  setcolor(14); /* 每次消去是进行庆祝模式 */
  settextstyle(0,0,4);
  outtextxy(10,310,"COOL");
  outtextxy(10,270,"^_^");
  delay(100000000);
  delay(100000000);
  delay(100000000);

  setcolor(BLACK);
  settextstyle(0,0,4);
  outtextxy(10,310,"COOL");
  outtextxy(10,270,"^_^");
  settextstyle(0,0,1);

  if(score%3==0&&score!=0)
  {
  setcolor(14);
  settextstyle(0,0,2);
  outtextxy(10,435,"CONGRATULATION ON YOU ^_^");

  sleep(2);

  setcolor(BLACK);
  settextstyle(0,0,2);
  outtextxy(10,435,"CONGRATULATION ON YOU ^_^ ");

  settextstyle(0,0,1);
  }


  for(k=1;k<=10;k++) /* 对满了行进行消去

  */
  {
  setcolor(BLACK);

  draw_little_block

  (k+MAPXOFT,y+MAPYOFT,0,2);

  }
  for(j=y-1;j>=1;j--) /* 消去1行后 用上面的

  累下来(并且调整色彩) */

  for(k=1;k<=10;k++)
  {
  board[k-1][j]=board[k-1][j-1];

  if(board[k-1][j])
  {
  setcolor(BLACK);

  draw_little_block

  (k+MAPXOFT,j+MAPYOFT,0,2);

  setcolor(WHITE);

  draw_little_block

  (k+MAPXOFT,j+1+MAPYOFT,1,color);
  }
  }


  delay(100000000000);
  y++;
  }

  }


  }

  int check_block(int x,int y,int style) /* 验证能不能往下1

  个位置累方块 */
  {
  int x1=x+MAPXOFT,y1=y+MAPYOFT;

  int x2,y2,i;

  for(i=0;i<=6;i+=2)
  {
  x2=x1+shapes[style].xy[ i];
  y2=y1+shapes[style].xy[i+1];
  if(x2>=10&&x2<20&&y2<26&&(y2<6||board[x2-10][y2-

  6]==0))
  continue;
  else
  break;
  }
  if(i==8)
  return 1;
  else
  return 0;
  getch();
  }


都有什么祖玛游戏

这里是幻想游戏上所以祖玛系列游戏,一共有30个,你可以慢慢看哦~

祖玛&type=down

这其中,我比较推荐:

《祖玛》,祖玛游戏的最初版本,经典之作,百玩不厌~

《埃及祖玛1、2、3》,和老祖玛的玩法不同,是向上发射球,消除的。画面很好看,尤其是2、3,画面非常华丽!

《龙珠祖玛》,也是一种新的玩法,充满中国风,不错的~

《金甲虫祖玛》,和老祖玛差不多,画面、音乐上更好,但是貌似比老祖玛简单~


上一篇:京东白条优惠券怎么用

下一篇:没有了