求C元编写的在线五子棋游戏戏

当前访客身份:游客 [
当前位置:
我们是一个课程设计,让设计一个五子棋的游戏,让我们写实训报告,源代码调试出来了,可是实训报告不知道怎么写,求大神们指点。
一、需求分析
建立一个简单的五子棋游戏,能够实现人机对战。人人对战的简单功能。
二、概要设计(典型算法)
三、模块设计
四、详细设计
五、调试分析
六、用户使用说明
七、参考文献
八、对所设计的软件进行自我评价,如创新点、未解决的问题等情况说明
九、程序源代码
# include&stdio.h&
# include&string.h&
# include&stdlib.h&
# define SPA 0
# define MAN 1
# define COM 2
/* 空位置设为0 ,玩家下的位置设为1 ,电脑下的位置设为2 */
int qipan[15][15];
/* 15*15的棋盘 */
int a,b,c,d,x;
/* a b为玩家下子坐标 ,c d为电脑下子坐标 x为剩余空位置*/
void start();
/* 程序的主要控制函数 */
void draw();
/* 画棋盘 */
int win(int p,int q);
/* 判断胜利 p q为判断点坐标 */
void AI(int *p,int *q);
/* 电脑下子 p q返回下子坐标 */
int value(int p,int q);
/* 计算空点p q的价值 */
int qixing(int n,int p,int q);
/* 返回空点p q在n方向上的棋型 n为1-8方向 从右顺时针开始数 */
void yiwei(int n,int *i,int *j);
/* 在n方向上对坐标 i j 移位 n为1-8方向 从右顺时针开始数
void main()
printf(&还要再来一把吗?输入y或n:&); getchar(); scanf(&%c&,&k);
while(k!='y'&&k!='n'){ printf(&输入错误,请重新输入\n&); scanf(&%c&,&k); }
system(&cls&);
}while(k=='y');
printf(&谢谢使用!\n&);
void start()
int i,j,a1,b1,c1,d1,
/* a1 b1储存玩家上手坐标 c1 d1储存电脑上手坐标 */
printf(&\t╔═══════════════════════════════╗\n&);
printf(&\t║
printf(&\t║
欢迎使用五子棋对战程序
祝您玩的愉快挑战无极限
printf(&\t║
printf(&\t║
._______________________.
printf(&\t║
| _____________________ |
printf(&\t║
printf(&\t║
printf(&\t║
printf(&\t║
made by XXX
printf(&\t║
| I___________________I |
printf(&\t║
!_______________________!
printf(&\t║
._[__________]_.
printf(&\t║
.___|_______________|___.
printf(&\t║
printf(&\t║
~~~~ [CD-ROM]
printf(&\t║
!_____________________!
printf(&\t║
printf(&\t║
printf(&\t║
寒 星 溪 月 疏 星 首,花 残 二 月 并 白 莲。
printf(&\t║
雨 月 金 星 追 黑 玉,松 丘 新 宵 瑞 山 腥。
printf(&\t║
星 月 长 峡 恒 水 流,白 莲 垂 俏 云 浦 岚。
printf(&\t║
黑 玉 银 月 倚 明 星,斜 月 明 月 堪 称 朋。
printf(&\t║
二 十 六 局 先 弃 二,直 指 游 星 斜 彗 星。
printf(&\t║
printf(&\t║
printf(&\t║
1.人机对战
2.人人对战
printf(&\t║
printf(&\t╚═══════════════════════════════╝\n&);
printf(&\t\t\t请输入1或2:&);
scanf(&%d&,&choice);
/* 选择模式:人机或人人 */
while(choice!=1&&choice!=2) { printf(&输入错误,请重新输入:&); scanf(&%d&,&choice); }
if(choice==1){
/* 人机模式 */
system(&cls&);
printf(&欢迎使用五子棋人机对战!下子请输入坐标(如13 6)。悔棋请输入15 15。\n\n\n&);
for(j=0;j&15;j++)
for(i=0;i&15;i++)
qipan[j][i]=SPA;
/* 置棋盘全为空 */
printf(&先下请按1,后下请按2:&);
scanf(&%d&,&i);
while(i!=1&&i!=2)
{ printf(&输入错误,请重新输入:&); scanf(&%d&,&i); }
if(i==1) {
/* 如果玩家先手下子 */
printf(&请下子:&); scanf(&%d%d&,&a,&b);
while((a&0||a&14)||(b&0||b&14)) { printf(&坐标错误!请重新输入:&); scanf(&%d%d&,&a,&b); }
a1=a; b1=b; x--; qipan[a]=MAN; system(&cls&); draw();
while(x!=0){
if(x==225) { c=7; d=7; qipan[d][c]=COM; x--; system(&cls&); draw(); }
/* 电脑先下就下在7 7 */
else { AI(&c,&d); qipan[d][c]=COM; x--; system(&cls&); draw(); } /* 电脑下子 */
c1=c; d1=d;
/* 储存电脑上手棋型 */
if(win(c,d)){
/* 电脑赢 */
printf(&要悔棋吗?请输入y或n:&); getchar(); scanf(&%c&,&ch);
while(ch!='y'&&ch!='n') { printf(&输入错误,请重新输入:&); scanf(&%c&,&ch); }
if(ch=='n') { printf(&下不过电脑很正常,请不要灰心!!!\n&); }
else { x+=2; qipan[d][c]=SPA; qipan[a1]=SPA; system(&cls&); draw(); } /* 悔棋 */
printf(&电脑下在%d %d\n请输入:&,c,d); scanf(&%d%d&,&a,&b);
/* 玩家下子 */
if(a==15&&b==15) { x+=2; qipan[d][c]=SPA; qipan[a1]=SPA; system(&cls&); draw(); printf(&请输入:&); scanf(&%d%d&,&a,&b); } /* 悔棋 */
while((a&0||a&14)||(b&0||b&14)||qipan[a]!=SPA) { printf(&坐标错误或该位置已有子!请重新输入:&); scanf(&%d%d&,&a,&b); }
a1=a; b1=b; x--; qipan[a]=MAN; system(&cls&); draw();
if(win(a,b)){ printf(&电脑神马的都是浮云!!!\n&); }
/* 玩家赢 */
printf(&和局\n&);
if(choice==2){
system(&cls&);
printf(&欢迎使用五子棋人人对战!下子请输入坐标(如13 6)。悔棋请输入15 15。
for(j=0;j&15;j++)
for(i=0;i&15;i++)
qipan[j][i]=SPA; /* 置棋盘全为空 */
while(x!=0){
printf(&1P请输入:&); scanf(&%d%d&,&a,&b);
if(a==15&&b==15) { x+=2; qipan[d][c]=SPA; qipan[a1]=SPA; system(&cls&); draw(); printf(&1P请输入:&); scanf(&%d%d&,&a,&b); }
while((a&0||a&14)||(b&0||b&14)||qipan[a]!=SPA) { printf(&坐标错误或该位置已有子!请重新输入:&); scanf(&%d%d&,&a,&b); }
a1=a; b1=b; x--; qipan[a]=MAN; system(&cls&); draw();
printf(&1P下在%d %d。\n&,a,b);
if(win(a,b)){ printf(&你真棒!!!\n&); }
/* 玩家1赢 */
printf(&2P请输入:&); scanf(&%d%d&,&c,&d);
if(c==15&&d==15) { x+=2; qipan[a]=SPA; qipan[d1][c1]=SPA; system(&cls&); draw(); printf(&2P请输入:&); scanf(&%d%d&,&c,&d); }
while((c&0||c&14)||(d&0||d&14)||qipan[d][c]!=SPA) { printf(&坐标错误或该位置已有子!请重新输入:&); scanf(&%d%d&,&c,&d); }
c1=c; d1=d; x--; qipan[d][c]=COM; system(&cls&); draw();
printf(&2P下在%d %d。\n&,c,d);
if(win(c,d)){ printf(&你真棒!!!\n&); }
/* 玩家2赢 */
printf(&和局\n&);
void draw() /* 画棋盘 */
char p[15][15][4];
for(j=0;j&15;j++)
for(i=0;i&15;i++){
if(qipan[j][i]==SPA) strcpy(p[j][i],&
if(qipan[j][i]==MAN) strcpy(p[j][i],&●\0&);
if(qipan[j][i]==COM) strcpy(p[j][i],&◎\0&);
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐\n&);
for(i=0,j=0;i&14;i++,j++){
%2d│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%d\n&,j,p[i][0],p[i][1],p[i][2],p[i][3],p[i][4],p[i][5],p[i][6],p[i][7],p[i][8],p[i][9],p[i][10],p[i][11],p[i][12],p[i][13],p[i][14],j);
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤\n&);
14│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│0\n&,p[14][0],p[14][1],p[14][2],p[14][3],p[14][4],p[14][5],p[14][6],p[14][7],p[14][8],p[14][9],p[14][10],p[14][11],p[14][12],p[14][13],p[14][14]);
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘\n&);
int win(int p,int q)
/* 判断胜利 p q为判断点坐标,胜利返回1,否则返回0 */
int k,n=1,m,P,Q;
/* k储存判断点p q的状态COM或MAN。P Q储存判断点坐标。n为判断方向。m为个数。 */
k=qipan[q][p];
while(n!=5){
while(k==qipan[q][p]){
if(m==5) return 1;
yiwei(n,&p,&q); if(p&0||p&14||q&0||q&14)
n+=4; m-=1; p=P; q=Q;
/* 转向判断 */
while(k==qipan[q][p]){
if(m==5) return 1;
yiwei(n,&p,&q); if(p&0||p&14||q&0||q&14)
n-=3; p=P; q=Q;
/* 不成功则判断下一组方向 */
void AI(int *p,int *q)
/* 电脑下子 *p *q返回下子坐标 */
int i,j,k,max=0,I,J;
/* I J为下点坐标 */
for(j=0;j&15;j++)
for(i=0;i&15;i++)
if(qipan[j][i]==SPA){
/* 历遍棋盘,遇到空点则计算价值,取最大价值点下子。 */
k=value(i,j);
if(k&=max) { I=i; J=j; max=k; }
*p=I; *q=J;
int value(int p,int q) /* 计算空点p q的价值 以k返回 */
int n=1,k=0,k1,k2,K1,K2,X1,Y1,Z1,X2,Y2,Z2,
int a[2][4][4]={40,400,,6,10,600,,200,0,6,10,500,0,30,300,,8,300,,0,0,4,20,300,0};
/* 数组a中储存己方和对方共32种棋型的值
己方0对方1
活0冲1空活2空冲3
子数0-3(0表示1个子,3表示4个子) */
while(n!=5){
k1=qixing(n,p,q); n+=4;
/* k1,k2为2个反方向的棋型编号 */
k2=qixing(n,p,q); n-=3;
if(k1&k2) { temp=k1; k1=k2; k2= }
/* 使编号小的为k1,大的为k2 */
K1=k1; K2=k2;
/* K1 K2储存k1 k2的编号 */
Z1=k1%10; Z2=k2%10; k1/=10; k2/=10; Y1=k1%10; Y2=k2%10; k1/=10; k2/=10; X1=k1%10; X2=k2%10;
/* X Y Z分别表示 己方0对方1
活0冲1空活2空冲3
子数0-3(0表示1个子,3表示4个子) */
if(K1==-1) { if(K2&0) { k+=0; } else k+=a[X2][Y2][Z2]+5;
/* 空棋型and其他 */
if(K1==-2) { if(K2&0) { k+=0; } else k+=a[X2][Y2][Z2]/2; };
/* 边界冲棋型and其他 */
if(K1==-3) { if(K2&0) { k+=0; } else k+=a[X2][Y2][Z2]/3; };
/* 边界空冲棋型and其他 */
if(((K1&-1&&K1&4)&&((K2&-1&&K2&4)||(K2&9&&K2&14)))||((K1&99&&K1&104)&&((K2&99&&K2&104)||(K2&109&&K2&114)))){
/* 己活己活 己活己冲 对活对活 对活对冲 的棋型赋值*/
if(Z1+Z2&=2) { k+=a[X2][Y2][3]; }
else { k+=a[X2][Y2][Z1+Z2+1]; }
if(((K1&9&&K1&14)&&(K2&9&&K2&14))||((K1&109&&K1&114)&&(K2&109&&K2&114))){
/* 己冲己冲 对冲对冲 的棋型赋值*/
if(Z1+Z2&=2) { k+=10000; }
else { k+=0; }
if(((K1&-1&&K1&4)&&((K2&99&&K2&104)||(K2&109&&K2&114)))||((K1&9&&K1&14)&&((K2&99&&K2&104)||(K2&109&&K2&114)))){
/* 己活对活 己活对冲 己冲对活 己冲对冲 的棋型赋值*/
if(Z1==3||Z2==3) { k+=10000; }
else { k+=a[X2][Y2][Z2]+a[X1][Y1][Z1]/4; }
{ k+=a[X1][Y1][Z1]+a[X2][Y2][Z2];
/* 其他棋型的赋值 */
int qixing(int n,int p,int q)
/* 返回空点p q在n方向上的棋型号 n为1-8方向 从右顺时针开始数 */
int k,m=0;
/* 棋型号注解:
己活000-003 己冲010-013 对活100-103 对冲110-113 己空活020-023 己空冲030-033 对空活120-123 对空冲130-133 空-1 边界冲-2 边界空冲-3*/
yiwei(n,&p,&q);
if(p&0||p&14||q&0||q&14) k=-2;
/* 边界冲棋型 */
switch(qipan[q][p]){
case COM:{
m++; yiwei(n,&p,&q);
if(p&0||p&14||q&0||q&14) { k=m+9; }
while(qipan[q][p]==COM) { m++; yiwei(n,&p,&q); if(p&0||p&14||q&0||q&14) { k=m+9; } }
if(qipan[q][p]==SPA) k=m-1;
/* 己方活棋型 */
else k=m+9;
/* 己方冲棋型 */
case MAN:{
m++; yiwei(n,&p,&q);
if(p&0||p&14||q&0||q&14) { k=m+109; }
while(qipan[q][p]==MAN) { m++; yiwei(n,&p,&q); if(p&0||p&14||q&0||q&14) { k=m+109; } }
if(qipan[q][p]==SPA) k=m+99;
/* 对方活棋型 */
else k=m+109;
/* 对方冲棋型 */
case SPA:{
yiwei(n,&p,&q);
if(p&0||p&14||q&0||q&14) { k=-3; }
/* 边界空冲棋型 */
switch(qipan[q][p]){
case COM:{
m++; yiwei(n,&p,&q);
if(p&0||p&14||q&0||q&14) { k=m+29; }
while(qipan[q][p]==COM) { m++; yiwei(n,&p,&q); if(p&0||p&14||q&0||q&14) { k=m+29; } }
if(qipan[q][p]==SPA) k=m+19;
/* 己方空活棋型 */
else k=m+29;
/* 己方空冲棋型 */
case MAN:{
m++; yiwei(n,&p,&q);
if(p&0||p&14||q&0||q&14) { k=m+129; }
while(qipan[q][p]==MAN) { m++; yiwei(n,&p,&q); if(p&0||p&14||q&0||q&14) { k=m+129; } }
if(qipan[q][p]==SPA) k=m+119;
/* 对方空活棋型 */
else k=m+129;
/* 对方空冲棋型 */
case SPA: k=-1;
/* 空棋型 */
void yiwei(int n,int *i,int *j)
/* 在n方向上对坐标 i j 移位 n为1-8方向 从右顺时针开始数 */
switch(n){
case 1: *i+=1;
case 2: *i+=1; *j+=1;
case 3: *j+=1;
case 4: *i-=1; *j+=1;
case 5: *i-=1;
case 6: *i-=1; *j-=1;
case 7: *j-=1;
case 8: *i+=1; *j-=1;
共有2个答案
<span class="a_vote_num" id="a_vote_num_
代码有问题,而且代码风格也很糟糕。
--- 共有 1 条评论 ---
他这个估计是OS网站问题
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
曾经写过简单的AI
采用的是估值法,例如连2是20分,连3是100分,活四是10000分,死四是1000分,差不多这样的思路,这个分值需要你自己来设置,设置的好坏直接影响AI聪明
然后在估值法的基础上可以进行一些阿法贝塔剪枝。。。
有什么技术问题吗?
格子_的其他问题
类似的话题今日论坛第 1 个签到,每日签到可得财富值+2,连续5天签到后再连续签到则每日可得财富值
+4,记得每天都来签到哦~
三星S6&S6 edge电池与屏幕更换费用高昂
雷布斯确认 小米Note顶配版5月6日发布
苹果iPhone手机一直以来都是外界关注的焦点,而在今年,苹果公司有望为我们带来三款新iPhone,它们分别是iPhone 6S、iPhone 6S Plus以及iPhone 6C。如今,台湾媒体DigiTimes为我们带来了这三款新机的最新消息,消息显示苹果将会在今年九月推出新款iPhone手机,新机将会搭载A9处理器,并将安装Force Touch传感器。
滚动播报:
多智手机助手
全新WP客户端
站内全文搜索,由百度和塞班合作提供
上一主题:
下一主题:
查看: 655 | 回复: 3
含泪跪求能支持蓝牙的五子棋游戏(3版)
交易信用 0
原创小红花 0
积分/帖子:16
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
含泪跪求能支持蓝牙的五子棋游戏(3版)
网上找了好久都没找到,好不容易找到一个叫“Gomoku”的五子棋游戏,据介绍说支持蓝牙对战。可是下下来一试,却发现不能。& && &&&麻烦各位机油帮帮忙,给我发一个能支持蓝牙的五子棋吧!万分感激!………
财富值 542
交易信用 0
原创小红花 0
不伤心不伤心 可是回忆怎么忘记
积分/帖子:533
连续签到天数:1
全部签到天数:5
注册时间:
手机型号:
状态: 离线
回复 #1 michaelqaz 的帖子
&&我觉得你要的是这个、
我怀念的是无言感动、
我还念的是绝对炽热、
我怀念的是你很激动、
求我原谅,抱得我都痛。
财富值 2521
交易信用 0
原创小红花 0
积分/帖子:2577
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
[attach][/attach]你也可以通过模拟器来实现,
安装模拟器,对方手机也安装,然后下载游戏解压,将解压得到的nes文件放到模拟器安装盘/data/others/vnes。进入模拟器打开五子棋游戏就可以,
跟朋友蓝牙联机,双方进入游戏不要开始,你选择右软键,连接,新建主机,朋友那边再连接里选择加入游戏,然后你选择开始就好了,
也可以跟朋友蓝牙联机打坦克游戏,超级玛丽等。
安装模拟器可能显示证书过期,将手机日期调到06年安装。安装好里面两个游戏可能不能玩,删除就可以。
[ 本帖最后由
12:19 编辑 ]
交易信用 0
原创小红花 0
积分/帖子:16
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
2楼的,我说的就那个gomoku啊!我不会怎么蓝牙,你要是会的话能教教我吗?五子棋编写&#40;控制台版&#x5f;cmd命令框版&#41;【简单五子棋游戏,适合初学者学..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
五子棋编写&#40;控制台版_cmd命令框版&#41;【简单五子棋游戏,适合初学者学习,代码有详细注释】
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口求C语言编写的五子棋程序。_百度知道
求C语言编写的五子棋程序。
要能实现人机对战的
提问者采纳
0;=1; } } void main() { int gdriver=VGA; printf(&=1&&step_x& } if(n1+n2-1& } void draw_circle( } / } case UP ,R=18;); outtextxy(20; setfillstyle(1?5倍*&#47!&j&lt,Up; else { for(i=step_x; break ,j=step_y,gmode=VGAHI; settextstyle(3; for(x1=1; printf(& } while(&#92!=ESC),8); for(x1=1; settextstyle(2; / tc&quot,&quot, Right,int y); else *向右上方数*&#47,k++) { if(box[j][k]==flag) n2++; void attentoin(), Space to put,0,step_y; break .h&*无衬笔划字体,LIGHTBLUE),y1=1;||ch==&#39;),LIGHTBLUE), 水平放大5倍*/ for(j=x,(x1+JZ)*BILI; break : if(step_x+1& printf(&*向右下方数*&#47,n2 ,15); for(j=x; #include&x1& outtextxy(20;),int y) {
textbackground(BLACK);); printf(&quot,x2; } if(j&=5) { return(1);n&#39,k=y; judgewho(step_x; gotoxy(15,),1); floodfill(50; gotoxy(15;*绿色以实填充*&#47,(y1+JS)*BILI); printf(&quot!=SPACE&& #include& gotoxy(15;18)
n1=0 ;y1++) line((x1+JZ)*BILI,k&lt,&quot,50; floodfill(50,20;=1,(y1+JS)*BILI; else break ,j=step_y-1;N&#39,Down Key to move Piece&quot、禁止在棋盘外按空格& setlinestyle(SOLID_LINE,380; void attention() { char ch ,2): if(step_x-1&); printf(&=18; outtextxy(120; judgekey(); settextstyle(1; setbkcolor(LIGHTBLUE):&); } gotoxy(51;*定义一个图形窗口*/),5);y1&N]; } } void draw_box() { int x1;j--) if(box[i][j]==0) { draw_circle(step_x; } / } void judgekey() { int i .h&=1,k&gt.h&gt,step_y; n1=0 ; cleardevice(); int j ,8); if(flag==1) { setbkcolor(BLUE);*向左上方数*/1) void draw_box(),k--) { if(box[j][k]==flag) n1++; initgraph(&); &#47,14);*向左下方数*/ else break !=ESC); x=(x+JZ)*BILI ;k++) { if(box[j][k]==flag) n2++,439; step_y= / } if(n1+n2-1& for(x1=1;c;=18;j++:&quot,5); else { for(i=step_x+1.&quot,LIGHTBLUE),8); & } while(*/ gotoxy(15;); while(1) { gotoxy(60; void judgewho(2,LIGHTBLUE); */ while(1) { n1=0 ;*水平向左数*&#47.h& nosound(),1,20),step_y); for(j=x!&quot,2); } } else break ,20); } &#47,k=y. Press Space to place the Piece& /j&gt,step_y)==1) { sound(1000); for(j=x; else { for(i=step_x,(y1+JS)*BILI: if((step_y-1)&lt,k=y; getch(); } if(flag==2) { setbkcolor(BLUE); n2=0 ;=18) { if(box[step_x][step_y]==0) { box[step_x][step_y]= } case RIGHT ; setcolor(15),int color); else =5) { return(1); switch(key) { case LEFT ; window(1;Play R break . Press L gotoxy(15; judgewho(step_x;);1;=1; gotoxy(15; gotoxy(15,540,80,y1=1; closegraph(),1), 水平放大8倍*/ gotoxy(15,25); } if(i& key=bioskey(0); int step_x: if(step_x&gt,x2=18; &#47,6)、按空格确定落棋子&The White W step_x=The Red Win ,y,step_y),&j&i& if(ch==&#39,380; gotoxy(7; case SPACE ,12),(y2+JS)*BILI); } / judgewho(step_x-1; setviewport(100; settextstyle(3; textcolor(LIGHTGRAY),(x2+JZ)*BILI,k=y; break ,120,&0) break ,0,2),20,j=step_y; for(j=x; } void judgewho( setcolor(YELLOW);i&lt,int y);18) Lj--) { if(box[j][k]==flag) n1++,k&lt,439; step_y=0 ,8);*三重笔划字体; break ,k&gt!&j& n2=0 ;); attention(); void judgekey();j++; step_y=j ,4),k=y,540;3; rectangle(0,8); exit(0),int color) { setcolor(color);=18, ESC-quit,100,100; setcolor(12);i--) if(box[i][j]==0) { draw_circle(step_x; void draw_cicle( outtextxy(120,18); rectangle(0;*draw_circle(step_x;=18,1);k& gotoxy(15; else { for(i=step_x-1; / n1=0 ; clrscr(); setcolor(15); gotoxy(15,0,step_y);3,2)? [Y/
closegraph();=18&&step_y&gt,279); } } void change() { if(flag==1) flag=2 ; exit(0); closegraph(), 水平放大5倍*/),80,k++) { if(box[j][k]==flag) n2++,10);k&gt,step_y-1); / } if(n1+n2-1& setcolor(14);j& } /=1,0; } case DOWN ; do { step_x=0 ;x1++) line((x1+JZ)*BILI;i++) if(box[i][j]==0) { draw_circle(step_x,y1:&#92;*绿色以实填充*/ flag=1 ;
getch();=18;j&x1& /j++) { if(box[j][k]==flag) n2++;=5) { return(1). DO NOT press Space outside of the chessboard& else
if(flag==2) draw_circle(x; textcolor(YELLOW),k=y;),k--) { if(box[j][k]==flag) n1++,25);y&#39; break ,12),j=step_y+1: if((step_y+1)&gt,y2=18;1; draw_box();=5) { return(1); clrscr(); else if(ch==&#39,y; /j--; setcolor(YELLOW);j--;*垂直向下数*/ gotoxy(30; } return(0); printf(& setviewport(100;*垂直向上数*/x1++) for(y1=1; #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b #define SPACE 0x3920 #define BILI 20 #define JZ 4 #define JS 3 #define N 19 int box[N][N],step_y),step_y:& } case ESC ; settextstyle(2,k=y,y2 ;j&The Red W游戏操作规则、按左右上下方向键移动棋子&k--) { if(box[j][k]==flag) n1++;*三重笔划字体;y1++) box[x1][y1]=0 ;);*定义一个图形窗口*/ setcolor(YELLOW),16),0;y1& ch=getche(),& settextstyle(1,14); n2=0 ; printf(& judgewho(step_x;=18,step_y; for(j=x; for(j=x; #include& break , Down KEY printf(&) * setwritemode(XOR_PUT)!& &#47,120;*水平向右数*/The White W=1&&step_y&
} } change(),step_y , 水平放;=18; break ,279); printf(&Do you accept the above Playing R judgewho(step_x,int y) { if(flag==1) draw_circle(x;=18,14),&=18;0) break ,k;=1; void change(): break ,50.h& do { while(bioskey(1)==0);N)&j&1) } if(i&); printf(& &#47,1; step_x==18; y=(y+JS)*BILI ;*无衬笔划字体; else flag=1 ,y;=1; setcolor(12);) { window(1;=1,4),0; #include& );j++) if(box[i][j]==0) { draw_circle(step_x;=18; } if(n1+n2-1&gt,8); for(j=x; int flag=1 ; } / clrscr(); int judgeresult(18)break ,4); } if(j&你是否接受上述的游戏规则(Y&#47,n1; setcolor(14),step_y; } int judgeresult( delay(1000);Y&#39; textbackground(LIGHTBLUE),0,0; exit(0);2, Up; } / else break ,5),k=y; printf(&||ch==&#39;18)break , else
if(judgeresult(step_x; n2=0 ; cleardevice(); setfillstyle(1#include& circle(x
提问者评价
其他类似问题
您可能关注的推广回答者:
五子棋的相关知识
其他1条回答
网上很多,随便下啊
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求救用C编写个五子棋小游戏_百度知道
求救用C编写个五子棋小游戏
邮箱地址:
您可能关注的推广
五子棋小游戏的相关知识
按默认排序
其他2条回答
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 qq游戏五子棋辅助 的文章

 

随机推荐