论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

六籽弹小游戏

文章类别:C语言程序设计 | 发表日期:2011-3-16 9:06:37

下面这个小游戏是我小时候玩的六籽弹(方言),希望有朋友为我修改修改. 
小弟不才,急需此程序来交差. 
程序是这样实现的,在一条线上,只有三粒籽是相邻的情况下,若有两粒相邻且相同颜色的棋子,第三籽就被吃丢,否则,换色走棋.若一方棋子数为一后,在一条线上的相邻的三粒籽,在中间的棋颜色与相邻棋子颜色不同,则相同颜色的棋子被吃丢. 
下面是此程序的代码(我未能将它运行成功,望哪位朋友给予帮助,谢谢!): 
 #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) 

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

视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058