[加入收藏]
[
教程购买
]
[服务指南]
首页
|
办公自动化
|
网页制作
|
平面设计
|
动画制作
|
数据库开发
|
程序设计
|
全部视频教程
应用视频:
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语言视频教程
|
HTML
|
Div+Css布局
|
Javascript
|
Access数据库
|
Asp
|
Sql Server数据库
|
Asp.net2.0
|
Flash AS
应用视频:
Windows
|
Word2007
|
Excel2007
|
PowerPoint2007
|
Dreamweaver 8
|
Fireworks 8
|
Flash 8
|
Photoshop cs
|
CorelDraw 12
文字教程:
Windows教程
|
Word教程
|
Excel教程
|
PowerPoint教程
视频教程
:
Windows视频教程
|
Word2007视频教程
|
Excel2007视频教程
|
PPT2007视频教程
文字教程:
Dreamweaver教程
|
Fireworks教程
|
Flash教程
|
PhotoShop教程
|
HTML教程
|
Div+Css布局教程
视频教程:
Dreamweaver视频教程
|
Fireworks视频教程
|
Flash视频教程
|
PhotoShop视频教程
|
HTML视频教程
|
DIV+CSS视频教程
文字教程:
Fireworks教程
|
PhotoShop教程
|
CorelDraw教程
视频教程:
Fireworks 8视频教程
|
PhotoShop CS视频教程
|
CorelDraw12视频教程
文字教程:
Flash教程
|
Flash AS脚本教程
视频教程:
Flash 8视频教程
|
Flash AS视频教程
文字教程:
Access教程
|
sql server教程
视频教程:
Access数据库视频教程
|
Sql Server2005数据库视频教程
文字教程:
C语言教程
|
Javascript教程
|
Asp教程
|
Asp.Net网站开发教程
视频教程:
C语言视频教程
|
JavaScript视频教程
|
ASP视频教程
|
ASP.NET视频教程
|
网站制作视频教程
|
ASP动态网站制作视频教程
当前位置 >
文字教程
>
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语言教程:黑白棋
人气:2643
下一篇:
{教程}C语言实例教程之教小学生算术
人气:2904
C语言程序设计视频教程
Windows操作
[文]
Word教程
[文]
Excel教程
[文]
PowerPoint
[文]
Dreamweaver
[文]
Fireworks
[文]
Flash教程
[文]
PhotoShop
[文]
CorelDraw
[文]
C语言教程
[文]
Html教程
[文]
Div+Css布局
[文]
Javascript
[文]
ACCESS数据库
[文]
ASP教程
[文]
SQLServer
[文]
ASP.NET教程
[文]
FlashAS
[文]
视频教程列表
计算机基础入门及办公自动化:
Windows视频教程
Word视频教程
Excel视频教程
PPT视频教程
网页制作开发视频教程:
Dreamweaver视频教程
Fireworks视频教程
Flash视频教程
Photoshop视频教程
HTML视频教程
Div+Css布局视频教程
静态网站项目实例视频教程
平面广告设计视频教程
Fireworks视频教程
Photoshop视频教程
CorelDraw视频教程
初级程序设计及ASP动态网站开发
C语言视频教程
Javascript视频教程
Access数据库视频教程
Asp网站开发视频教程
Asp项目实例开发视频教程
Asp.net动态网站开发视频教程
Sql Server数据库视频教程
Asp.net视频教程
Flash 动画角本编程视频教程
Flash视频教程
Falsh MTV视频教程
文章教程搜索
输入您的搜索字词
google
本站
提交搜索表单
C语言程序设计推荐教程
.学习C语言最快速入门教程.
.北大青鸟C语言PPT学习大纲第十章
.北大青鸟C语言PPT学习大纲第十章
.北大青鸟C语言PPT学习大纲第九章
.C语言视频教程(21视频教程网)
.2002年4月计算机等级考试二级C语
.2001年9月计算机等级考试二级C语
.2001年9月计算机等级考试二级C语
.2001年9月计算机等级考试二级C语
.2001年9月计算机等级考试二级C语
.2001年9月计算机等级考试二级C语
.国家计算机二级考试程序修改与设
.国家计算机二级考试程序修改与设
.国家计算机二级考试程序修改与设
.国家计算机二级考试程序修改与设
.全国计算机等级考试二、三、四级考
.1998年9月全国计算机等级考试二
.1998年4月全国计算机等级考试二
.1997年9月全国计算机等级考试二
.1997年4月全国计算机等级考试二
.1996年9月全国计算机等级考试二
.1996年4月全国计算机等级考试二
.2001年9月基础知识知识和C语言程
.2001年9月全国计算机等级考试二
.2001年4月基础知识知识和C语言程
.2001年4月全国计算机等级考试二
.2000年9月基础知识知识和C语言程
.2000年9月全国计算机等级考试二
.2000年4月基础知识知识和C语言程
.2000年4月全国计算机等级考试二
C语言程序设计热门教程
.C语言编写的Mysql编程接口(4)
.C语言编写的Mysql编程接口(3)
.C语言编写的Mysql编程接口(2)
.C语言编写的Mysql编程接口(1)
.C语言教程:2013年计算机二级VB常
.C语言教程:2013年计算机二级VB常
.C语言教程:2013年计算机二级VB常
.C语言教程:2013年计算机二级VB常
.C语言教程:2013年计算机二级VB常
.C语言教程:变态的C语言Hello Wo
.C语言教程:变态的C语言Hello Wo
.C语言教程:变态的C语言Hello Wo
.C语言教程:变态的C语言Hello Wo
.C语言教程:变态的C语言Hello Wo
.C语言教程:变态的C语言Hello Wo
.C语言教程:C语言模拟试题五
.C语言教程:C语言模拟试题四
.C语言教程:C语言模拟试题三
.C语言教程:C语言模拟试题二
.C语言教程:C语言模拟试题一
.C语言考试:2012年全国计算机等级
.C语言考试:2012年全国计算机等级
.C语言考试:2012年全国计算机等级
.C语言考试:2012年全国计算机等级
.C语言考试:2012年全国计算机等级
.C语言教程:指针变量的运算分析
.C语言教程:main函数的参数分析
.C语言教程:指针型函数分析
.C语言教程:函数指针变量分析
.C语言教程:多维数组的指针变量分
Word教程网
Excel教程网
Dreamweaver
教程网
Fireworks教程网
PPT教程网
FLASH教程网
PS教程网
HTML教程网
DIV CSS教程网
FLASH AS教程网
ACCESS教程网
SQL SERVER教程网
C语言教程网
JAVASCRIPT教程网
ASP教程网
ASP.NET教程网
CorelDraw教程网
关于我们
|
教程购买
|
广告刊登
|
网站地图
|
湖北继续教育网
|
QQ:2693987339(点击联系)购买教程光盘
地址:湖北省武汉市曹家湾32号501室 电话:027-86646545 15972130058
--
教程购买问题汇总
21视频教程网专业的网站开发视频教程学习网站
ICP备案号:
鄂ICP备14009716号-13
公安备案号:
42011102002974
看全部视频教程
购买方式/价格
:
咨询客服
tel:
15972130058