求五子棋C源代码_百度知道
求五子棋C源代码
请高手帮忙写一个五子棋的C源代码,急!!!!不要网上复制的
提问者采纳
这个是稍微好一点的了,以前没事试过 /* 五子棋 */ #include&stdio.h& #include&stdlib.h& #include&graphics.h& #include&bios.h& #include&conio.h& #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]; int step_x,step_ int flag=1 ; void draw_box(); void draw_cicle(int x,int y,int color); void change(); void judgewho(int x,int y); void judgekey(); int judgeresult(int x,int y); void attentoin(); void attention() { window(1,1,80,25); textbackground(LIGHTBLUE); textcolor(YELLOW); clrscr(); gotoxy(15,2); printf(&游戏操作规则:&); gotoxy(15,4); printf(&Play Rules:&); gotoxy(15,6); printf(&1、按左右上下方向键移动棋子&); gotoxy(15,8); printf(&1. Press Left,Right,Up,Down Key to move Piece&); gotoxy(15,10); printf(&2、按空格确定落棋子&); gotoxy(15,12); printf(&2. Press Space to place the Piece&); gotoxy(15,14); printf(&3、禁止在棋盘外按空格&); gotoxy(15,16); printf(&3. DO NOT press Space outside of the chessboard&); gotoxy(15,18); printf(&你是否接受上述的游戏规则(Y/N)&); gotoxy(15,20); printf(&Do you accept the above Playing Rules? [Y/N]:&); while(1) { gotoxy(60,20); ch=getche(); if(ch=='Y'||ch=='y') else if(ch=='N'||ch=='n') { window(1,1,80,25); textbackground(BLACK); textcolor(LIGHTGRAY); clrscr(); exit(0); } gotoxy(51,12); printf(& &); } } void draw_box() { int x1,x2,y1,y2 ; setbkcolor(LIGHTBLUE); setcolor(YELLOW); gotoxy(7,2); printf(&Left, Right, Up, Down KEY to move, Space to put, ESC-quit.&); for(x1=1,y1=1,y2=18;x1&=18;x1++) line((x1+JZ)*BILI,(y1+JS)*BILI,(x1+JZ)*BILI,(y2+JS)*BILI); for(x1=1,y1=1,x2=18;y1&=18;y1++) line((x1+JZ)*BILI,(y1+JS)*BILI,(x2+JZ)*BILI,(y1+JS)*BILI); for(x1=1;x1&=18;x1++) for(y1=1;y1&=18;y1++) box[x1][y1]=0 ; } void draw_circle(int x,int y,int color) { setcolor(color); setlinestyle(SOLID_LINE,0,1); x=(x+JZ)*BILI ; y=(y+JS)*BILI ; circle(x,y,8); } void judgekey() { switch(key) { case LEFT : if(step_x-1&0) else { for(i=step_x-1,j=step_y;i&=1;i--) if(box[i][j]==0) { draw_circle(step_x,step_y,LIGHTBLUE); } if(i&1) step_x= judgewho(step_x,step_y); } case RIGHT : if(step_x+1&18) else { for(i=step_x+1,j=step_y;i&=18;i++) if(box[i][j]==0) { draw_circle(step_x,step_y,LIGHTBLUE); } if(i&18) step_x= judgewho(step_x,step_y); } case DOWN : if((step_y+1)&18) else { for(i=step_x,j=step_y+1;j&=18;j++) if(box[i][j]==0) { draw_circle(step_x,step_y,LIGHTBLUE); } if(j&18) step_y= judgewho(step_x,step_y); } case UP : if((step_y-1)&0) else { for(i=step_x,j=step_y-1;j&=1;j--) if(box[i][j]==0) { draw_circle(step_x,step_y,LIGHTBLUE); } if(j&1) step_y= judgewho(step_x,step_y); } case ESC : case SPACE : if(step_x&=1&&step_x&=18&&step_y&=1&&step_y&=18) { if(box[step_x][step_y]==0) { box[step_x][step_y]= if(judgeresult(step_x,step_y)==1) { sound(1000); delay(1000); nosound(); gotoxy(30,4); if(flag==1) { setbkcolor(BLUE); cleardevice(); setviewport(100,100,540,380,1); /*定义一个图形窗口*/ setfillstyle(1,2); /*绿色以实填充*/ setcolor(YELLOW); rectangle(0,0,439,279); floodfill(50,50,14); setcolor(12); settextstyle(1,0,5); /*三重笔划字体, 水平放?5倍*/ outtextxy(20,20,&The White Win !&); setcolor(15); settextstyle(3,0,5); /*无衬笔划字体, 水平放大5倍*/ outtextxy(120,120,&The White Win !&); setcolor(14); settextstyle(2,0,8); getch(); closegraph(); exit(0); } if(flag==2) { setbkcolor(BLUE); cleardevice(); setviewport(100,100,540,380,1); /*定义一个图形窗口*/ setfillstyle(1,2); /*绿色以实填充*/ setcolor(YELLOW); rectangle(0,0,439,279); floodfill(50,50,14); setcolor(12); settextstyle(1,0,8); /*三重笔划字体, 水平放大8倍*/ outtextxy(20,20,&The Red Win !&); setcolor(15); settextstyle(3,0,5); /*无衬笔划字体, 水平放大5倍*/ outtextxy(120,120,&The Red Win !&); setcolor(14); settextstyle(2,0,8); getch(); closegraph(); exit(0); } } change(); } } else } } void change() { if(flag==1) flag=2 ; else flag=1 ; } void judgewho(int x,int y) { if(flag==1) draw_circle(x,y,15); if(flag==2) draw_circle(x,y,4); } int judgeresult(int x,int y) { int j,k,n1,n2 ; while(1) { n1=0 ; n2=0 ; /*水平向左数*/ for(j=x,k=y;j&=1;j--) { if(box[j][k]==flag) n1++; else } /*水平向右数*/ for(j=x,k=y;j&=18;j++) { if(box[j][k]==flag) n2++; else } if(n1+n2-1&=5) { return(1); } /*垂直向上数*/ n1=0 ; n2=0 ; for(j=x,k=y;k&=1;k--) { if(box[j][k]==flag) n1++; else } /*垂直向下数*/ for(j=x,k=y;k&=18;k++) { if(box[j][k]==flag) n2++; else } if(n1+n2-1&=5) { return(1); } /*向左上方数*/ n1=0 ; n2=0 ; for(j=x,k=y;j&=1,k&=1;j--,k--) { if(box[j][k]==flag) n1++; else } /*向右下方数*/ for(j=x,k=y;j&=18,k&=18;j++,k++) { if(box[j][k]==flag) n2++; else } if(n1+n2-1&=5) { return(1); } /*向右上方数*/ n1=0 ; n2=0 ; for(j=x,k=y;j&=18,k&=1;j++,k--) { if(box[j][k]==flag) n1++; else } /*向左下方数*/ for(j=x,k=y;j&=1,k&=18;j--,k++) { if(box[j][k]==flag) n2++; else } if(n1+n2-1&=5) { return(1); } return(0); } } void main() { int gdriver=VGA,gmode=VGAHI; clrscr(); attention(); initgraph(&gdriver,&gmode,&c:\\tc&); /* setwritemode(XOR_PUT);*/ flag=1 ; draw_box(); do { step_x=0 ; step_y=0 ; /*draw_circle(step_x,step_y,8); */ judgewho(step_x-1,step_y-1); do { while(bioskey(1)==0); key=bioskey(0); judgekey(); } while(key!=SPACE&&key!=ESC); } while(key!=ESC); closegraph(); }
提问者评价
完全运行不了
其他类似问题
为您推荐:
其他1条回答
【五子棋简介】
五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。发展于日本,流行于欧美。
五子棋容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。
传统五子棋:
传统五子棋的棋子分为黑白两色,采用围棋棋盘,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。
因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。
五子棋,日文亦有“连五子、五子连、串珠、五目、五目碰、五格、五石、五法、五联、京棋”等多种称谓,英文则称之为“FIR (Five In A Row的缩写)、Gomoku(日语“五目”的...
您可能关注的推广
五子棋的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁五子棋、围棋、飞行器规则以及妙诀,简单就采纳,谢谢啦!_百度知道
五子棋、围棋、飞行器规则以及妙诀,简单就采纳,谢谢啦!
越简单越好,但不要不说清楚,谢谢
我有更好的答案
五子棋则不然,速度最快,十几分钟,甚至几分钟便是一盘,既有象棋的短兵相接,又有围棋的地与势的转换,既有大砍大杀、雷霆万钧的进攻,又有绵里藏针,以至柔化至刚的防守,不经意间一剑封喉,非常过瘾。因为变化相对较少,要想立于不败之地,必须有极精确的计算能力以及超强的想象力,非常符合现代人的生活节奏和高度紧张的生活环境。并且五子棋是最灵活的棋类游戏,一子置于盘中,上下左右皆通,棋诀云:“一子输赢”,一着不慎,马上全盘皆输,连翻盘的机会都没有,要求对弈者全神贯注,不能有丝毫马虎,能锻炼人养成集中注意力的好习惯,形成严谨的思维。
围棋的棋盘共有361个(19*19)交叉点。为了便于识别棋子的位置,棋盘上划上九个点&.&,这九个点叫做“星”。正中的“星”又叫“天元”。在各个“星”的...
可以简单一点吗,我知道是网上抄的,帮我简单化一点
姐姐,飞行棋很多种,我的是简化了的,五子棋就要看自己,我喜欢走日字形,不容易被抓,围棋呢尽量不要走天蓬,其他的我也不知道怎么总结了,如果想玩好还是建议先钻研一个棋下
其他类似问题
为您推荐:
五子棋的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁怎么帖被删了,说好的谁输了谁爆罩_五子棋吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:24,624贴子:
怎么帖被删了,说好的谁输了谁爆罩
怎么输了就删帖了,能不能有点信用啊
淼星。我发帖了。看看。...
俺就是佛,要是恁路遇老...
帖子好像被删了…打底裤...
一楼不给看
首先当然是我的录取通知...
还有没有人
请问各位大吧,医生乱开...
一三班那个傻逼 我是没...
希望各路大神罩着点。
最终决定的复读来了铜梁...
我帮妹妹找个对象,忽然...
不是赌衣服吗,怎么变成赌爆罩了
内&&容:使用签名档&&
保存至快速回贴
为兴趣而生,贴吧更懂你。&或五子棋入门_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
五子棋入门
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢