录求高手--小游戏修改

到百度贴吧首页
新闻   网页   贴吧   知道   MP3   图片   视频   百科
    吧内搜索 | 帮助
  • 共有10篇贴子

录求高手--小游戏修改

221.234.222.*

1楼

下面这个小游戏是我小时候玩的六籽弹(方言),希望有朋友为我修改修改.
小弟不才,急需此程序来交差.
程序是这样实现的,在一条线上,只有三粒籽是相邻的情况下,若有两粒相邻且相同颜色的棋子,第三籽就被吃丢,否则,换色走棋.若一方棋子数为一后,在一条线上的相邻的三粒籽,在中间的棋颜色与相邻棋子颜色不同,则相同颜色的棋子被吃丢.
下面是此程序的代码(我未能将它运行成功,望哪位朋友给予帮助,谢谢!):
 #include "graphics.h"  /*图形系统头文件*/
#include<stdlib.h>
#include<dos.h>
#define LEFT 0x4b00  /*光标左键值*/
#define S   0x1f73
#define RIGHT 0x4d00 /*光标右键值*/
#define F   0x2166
#define DOWN 0x5000 /*光标下键值*/
#define D 0x2064
#define UP 0x4800 /*光标上键值*/
#define E 0x1265
#define ESC 0x011b /* ESC键值*/
#define ENTER 0x1c0d /* 回车键值*/
#define SPACE 0x3920
int key,a[4][4]={0},m=6,n=6,x,y;
void DrawkQP(void);
void QPchang(int x,int y,int t);
void noplay(int x,int y,int t);
void Mcolor(int x,int y);
void playtoplay();
void playwin(int m,int n);
void choosezi(int xx,int yy);
void Rrectangle(int x,int y,int t);
void Rfillellipse(int x,int y,int t);


/******主函数*********/
void main(void)
{  int gd=DETECT,gr;
   initgraph(&gd,&gr,"e:\\turboc2"); /*初始化图形系统*/
   DrawkQP();/*画棋盘*/
   playtoplay();/*人人对战*/
   getch();
   closegraph();/*关闭图形系统*/
}
/*画图*/
void DrawkQP(void)
{ int i,j;
  setbkcolor(BLUE);
  for(i=150;i<=300;i+=50)
  { line(i,150,i,300);
    line(150,i,300,i);
   }
Rfillellipse(340,175,1);
Rfillellipse(340,225,2);
a[0][0]=a[0][1]=a[0][2]=a[0][3]=a[1][0]=a[1][3]=1;
a[2][0]=a[2][3]=a[3][0]=a[3][1]=a[3][2]=a[3][3]=2;
for(i=150;i<=300;i+=50)
  Rfillellipse(i,150,1);
  Rfillellipse(200,150,1);
  Rfillellipse(200,300,1);
for(j=150;j<=300;j+=50)
  Rfillellipse(j,300,2);
  Rfillellipse(150,250,2);
  Rfillellipse(300,250,2);
}

void playtoplay(void)
{  int xx,yy,i,j,t;
   while(1)
   { xx=100;
     yy=100;
    while(1)
     {  Rrectangle(xx,yy,RED);
        key=bioskey(0);
        if(key==ESC)  break;
        else if(key==ENTER)
           {  choosezi(xx,yy);
             if(a[(x-150)/50][(y-150)/50]==1) t=1;
     if(a[(x-150)/50][(y-150)/50]==2) t=2;}
       noplay(x,y,t);
       QPchang(m,n,t);

     }
  t=t%2+1;
  break;
  }
}
void noplay(int x,int y,int t)
{  int i,j;
    i=(x-150)/50;
    j=(y-150)/50;
  if(key==RIGHT||key==F&&a[i+1][j]==0)
     { a[i][j]=0;
       Rfillellipse(x,y,BLUE);
       Mcolor(x,y,t);
       x+=50;
       Rfillellipse(x,y,t);
    }
  else if(key==DOWN||key==D&&a[i][j+1]==0)
  { a[i][j]=0;
    Rfillellipse(x,y,BLUE);
    Mcolor(x,y,t);
    y+=50;
    Rfillellipse(x,y,t);
  }
  else if(key==LEFT||key==S&&a[i-1][j]==0)
{  a[i][j]=0;
   Rfillellipse(x,y,BLUE);
   Mcolor(x,y,t);
   x-=50;
   Rfilleillpse(x,y,t);
}

else if(key==UP||key==E&&a[i][j-1]==0)
{
   a[i][j]=0;
   Rfillellipse(x,y,BLUE);
   Mcolor(x,y,t);
   y-=50;
   Rfillellipse(x,y,t);
 }
}
void QPchang(int m,int n,int t)
{  int i;
  for(i=0;i<4;i++)
   { if(a[i][0]==0)
       { if(a[i][1]==a[i][2]!=a[i][3]&&a[i][3]!=0)

221.234.222.*

2楼

            { if(a[i][3]==1)  m-=1;
              if(a[i][3]==2)  n-=1;
              a[i][3]=0;
              x=i*50+150;
              y=3*50+150;
              Rfillellipse(x,y,t);
       Mcolor(x,y,t);
            }
        else  break;
       }

      else if(a[0][i]==0)
        {if(a[1][i]==a[2][i]!=a[3][i]&&a[3][i]!=0)
            { if(a[3][i]==1)  m-=1;
              if(a[3][i]==2)  n-=1;
              a[3][i]=0;
              x=3*50+150;
              y=i*50+150;
              Rfillellipse(x,y,t);
      Mcolor(x,y,t);
            }
        else  break;
      }

      else if(a[3][i]==0)
         {if(a[0][i]==a[1][i]!=a[2][i]&&a[2][i]!=0)
            { if(a[2][i]==1)  m-=1;
              if(a[2][i]==2)  n-=1;
              a[2][i]=0;
              x=2*50+150;
              y=i*50+150;
              Rfillellipse(x,y,t);
      Mcolor(x,y,t);
            }
        else  break;
       }
      else if(a[i][3]==0)
         {if(a[i][0]==a[i][1]!=a[i][2]&&a[i][2]!=0)
            { if(a[i][2]==1)  m-=1;
              if(a[i][2]==2)  n-=1;
              a[i][2]=0;
              x=i*50+150;
              y=2*50+150;
              Rfillellipse(x,y,t);
      Mcolor(x,y,t);
            }
      else  break;
     }
     if(m==1||n==1)
      { choosezi(100,100);
        noplay(x,y,t);
        for(i=0;i<4;i++)
        { if(a[i][0]==0)
          { if(a[i][1]==a[i][3]!=a[i][2]&&a[i][2]!=0)
            { if(a[i][2]==1)  n-=2;
              if(a[i][2]==2)  m-=2;
              a[i][1]=a[i][3]=0;
              x=i*50+150;
              y=3*50+150;
              Rfillellipse(x,y,t);
      Mcolor(x,y,t);
              y=1*50+150;
              Rfillellipse(x,y,t);
      Mcolor(x,y,t);
            }
         else  break;
       }
      else if(a[0][i]==0)
        {if(a[1][i]==a[3][i]!=a[2][i]&&a[2][i]!=0)
            { if(a[2][i]==1)  n-=2;
              if(a[2][i]==2)  m+=2;
              a[1][i]=a[3][i]=0;
              x=3*50+150;
              y=i*50+150;
              Rfillellipse(x,y,t);
      Mcolor(x,y,t);
              x=3*50+150;
              Rfillellipse(x,y,t);
      Mcolor(x,y,t);
            }
        else  break;
      }

      else if(a[3][i]==0)
         {if(a[0][i]==a[2][i]!=a[1][i]&&a[1][i]!=0)
            { if(a[1][i]==1)  n-=2;
              if(a[1][i]==2)  m-=2;
              a[0][i]=a[2][i]=0;
              x=2*50+150;
              y=i*50+150;
              Rfillellipse(x,y,t);
      Mcolor(x,y,t);
              x=0*50+150;
              Rfillellipse(x,y,t);
      Mcolor(x,y,t);
            }
        else  break;
       }
      else if(a[i][3]==0)
         {if(a[i][0]==a[i][2]!=a[i][1]&&a[i][1]!=0)
            { if(a[i][1]==1)  m-=2;
              if(a[i][1]==2)  n-=2;
              a[i][0]=a[i][2]=0;
              x=i*50+150;
              y=2*50+150;
              Rfillellipse(x,y,t);
      Mcolor(x,y,t);
              y=0*50+150;
              Rfillellipse(x,y,t);
      Mcolor(x,y,t);
            }

221.234.222.*

3楼

      else  break;
     }
  }
 playwin(m,n);
 break;
}
void Mcolor(int x1,int y1,int t)
{ Rfillellipse(x1,y1,t);
  for(x1=150;x1<=300;x1+=50)
    for(y1=150;y1<=300;y1+=50)
    { if(x1==150)
      { if(y1==150)
       { line(x1,y1,x1,y1+15);
 line(x1,y1,x1+15,y1);
       }
      else if(y1==300)
{ line(x1,y1-15,x1,y1);
  line(x1,y1,x1+15,y1);
         }
      else
 { line(x1,y1-15,x1,y1+15);
   line(x1,y1,x1+15,y1);
          }
     }
    else if(x1==300)
      { if(y1==150)
 {  line(x1-15,y1,x1,y1);
    line(x1,y1,x1,y1+15);
         }
else if(y1==300)
 { line(x1,y1,x1,y1-15);
   line(x1,y1,x1-15,y1);
          }
        else
 { line(x1,y1-15,x1,y1+15);
   line(x1-15,y1,x1,y1);
         }
     }
    else if(y1==150)
       { line(x1-15,y1,x1+15,y1);
 line(x1,y1,x1,y1+15);
        }
    else if(y1==300)
{ line(x1-15,y1,x1+15,y1);
  line(x1,y1-15,x1,y1);
         }
    else
       { line(x1-15,y1,x1+15,y1);
 line(x1,y1-15,x1,y1+15);
        }
    }
}

void playwin(int m,int n)
{ settextstyle(0,0,4);
   setcolor(12);
  if(a==0&&b!=0) outtextxy(100,100,"GREEN WIN !");
  if(b==0&&a!=0) outtextxy(100,100,"WHITE WIN !");
  if(a==1&&b==1) outtextxy(100,100,"YOU  ALL WIN !");
}
void Rrectangle(int x,int y,int t)
{  setlinestyle(SOLID_FILL,t,THICK_WIDTH);
   rectangle(x-15,y-15,x+15,y+15);
}

void Rfillellipse(int x,int y,int t)
{  int tt;
  if(t==1) tt=15;
  else if(t==2) tt=2;
  else tt=BLUE;
 setcolor(0);
 setfillstyle(SOLID_FILL,tt);
 fillellpise(x,y,15,15);
}
int choosezi(int xx, int yy)
{ int Mkey;
  Mkey=bioskey(0);
  if(Mkey==ESC) break;
  if(Mkey==ENTER)
   { if(Mkey==UP||key==E&&yy>150)
      { Rrectangle(xx,yy,BLUE);
yy-=50;
Rrectangle(xx,yy,RED);
         y=yy;
      }
     else if(Mkey==DOWN||key==D&&yy>300)
     { Rrectangle(xx,yy,BLUE);
       yy+=50;
       Rrectangle(xx,yy,RED);
       y=yy;
     }
     else if(Mkey==LEFT||key==S&&xx>150)
     { Rrectangle(xx,yy,BLUE);
       xx-=50;
       Rrectangle(xx,yy,RED);
       x=xx;
      }
     else if(Mkey==RIGHT||key==F&&yy>=150&&xx<300)
     { Rrectangle(xx,yy,BLUE);
       xx+=50;
       Rrectangle(xx,yy,RED);
       x=xx;
      }
   }
}


221.234.222.*

4楼

希望有回复的朋友,在QQ上与我联系,小弟想结交天下朋友.小弟QQ:465021536
219.148.85.*

5楼

我刚学,觉得你不简单!

6楼

你太伟大了 我太崇拜你了 教教我吧? 谢谢!
QQ123182152

7楼

太神奇了```我也想学编程什么的!QQ278947670...好心的老师+++++我们共同提高啊!
60.191.227.*

8楼

495311596在学C语言,太强了,希望指教!!
211.138.184.*

9楼

我也是学计算机的,虽然不报希望,但还是希望你能教教我,QQ:897945868

10楼

大家好,真诚寻找会C/C++语言,并对网络游戏开发非常有兴趣的朋友一起合作开发一款网络游戏。另会3Dmax,CAD人物建模,地图建模的朋友也请与我联系,QQ:843501390 (虚拟的真实)。

发表回复

内 容:
用户名:
  
©2010 Baidu 贴吧协议  意见反馈