用C语言. 编写一个文本界面的围棋打谱程序

用C语言. 编写一个文本界面的围棋打谱程序,第1张

这是一个简单的程序,会自动计算提子,但不会数目。其它的运行一次估计就差不多会用了。稍微写了点注释。

#include<stdio.h>

#include<stdlib.h>

char board[21][21]

char move[5][2]={{-1,0},{1,0},{0,-1},{0,1},{0,0}}

void initBoard()//初始化棋盘

void showBoard()//输出棋盘

char set(int x,int y,char color)//下子

void process(int xx,int yy)//计算提子

int main()

{

FILE * fptr=NULL

char pufile[256]={0}

char op

int s

int x,y,r

char color

char win

int cnt

start:

s=8

while(s!=1 &&s!=2)

{

printf("选择模式:\n1---下棋\n2---看棋谱\n0---退出\n")

printf("下棋模式下,下子请输入s x y(x,y为位置),认输输入g,和棋输入h\n选择:")

scanf("%d",&s)

if(s==0) return 0

//Egg1

if(s==10) printf("Programmer: swordlance :)\n")

//Egg1 end

}

getchar()

printf("输入棋谱路径:")

gets(pufile)

if(s==1) fptr=fopen(pufile,"w")

else fptr=fopen(pufile,"r")

if(!fptr)

{

printf("文件无法打开(创建)!\n")

system("PAUSE")

return -1

}

initBoard()

cnt=0

color='B'

while(op!='g')

{

system("CLS")

showBoard()

printf("(第%d手)",++cnt)

if(s==1)

{

printf("%c 方:",color)

scanf("%c",&op)

//printf("[%c]",op)

if(op=='s')

{

scanf("%d %d",&x,&y)

getchar()

if(set(x,y,color)!=0)

{

printf("该处不能落子!\n")

cnt--

system("PAUSE")

}

else

{

process(x,y)

fprintf(fptr,"%d %d\n",x,y)

if(color=='B') color='W'

else color='B'

}

}

else if(op=='g')

{

printf("%c 方认输。\n",color)

if(color=='B') fprintf(fptr,"0 1\n")

else fprintf(fptr,"0 -1\n")

fflush(fptr)

fclose(fptr)

system("PAUSE")

goto start

}

else if(op=='h')

{

printf("和棋。\n")

fprintf(fptr,"0 0\n")

fflush(fptr)

fclose(fptr)

system("PAUSE")

goto start

}

else

{

printf("参数错误,下子请输入s x y(x,y为位置),认输输入 g,和棋输入h")

cnt--

system("PAUSE")

}

}

else

{

fscanf(fptr,"%d %d",&x,&y)

if(x==0)

{

if(y>0) printf("W 方胜!\n")

else if(y<0) printf("B 方胜!\n")

else printf("和棋!\n")

system("PAUSE")

goto start

}

else

{

printf("%c 方落子(%d,%d)\n",color,x,y)

set(x,y,color)

process(x,y)

if(color=='B') color='W'

else color='B'

}

system("PAUSE")

}

}

system("PAUSE")

return 0

}

void initBoard()

{

int i,j

board[0][0]='O'

for(i=1i<=19i++) board[0][i]='-'

board[0][20]='O'

for(i=1i<=19i++)

{

board[i][0]='|'

for(j=1j<=19j++) board[i][j]='+'

board[i][20]='|'

}

board[20][0]='O'

for(i=1i<=19i++) board[20][i]='-'

board[20][20]='O'

board[4][4]=board[4][10]=board[4][16]=

board[10][4]=board[10][10]=board[10][16]=

board[16][4]=board[16][10]=board[16][16]='*'

}

void showBoard()

{

int i,j

for(i=0i<=20i++)

{

for(j=0j<=20j++)

{

printf("%c",board[i][j])

}

printf("\n")

}

}

char set(int x,int y,char color)

{

if(board[x][y]=='W' || board[x][y]=='B') return -1//不能落子

else board[x][y]=color

return 0

}

//计算提子

void process(int xx,int yy)

{

char his[21][21]={0}//记录算过的棋子以节约效率

char Q[400][2]={0}//某一片棋

int e//Q的长度。

char mcolor//这片棋的颜色

char ecolor//另一种颜色

int QI=0//气数

int i,j,k,l,m

int x,y

for(m=0m<5m++)

{

i=xx+move[m][0]//为了能够完成打劫,先算别人再算自己

j=yy+move[m][1]

if(his[i][j]==0 &&(board[i][j]=='W' || board[i][j]=='B')) //该位置有子开始算气

{

QI=0

his[i][j]=1

mcolor=board[i][j]

ecolor=(board[i][j]=='W'?'B':'W')

//printf("m=%c e=%c\n",mcolor,ecolor)

Q[0][0]=i

Q[0][1]=j

e=1

for(k=0k<ek++)

{

for(l=0l<4l++)

{

x=Q[k][0]+move[l][0]

y=Q[k][1]+move[l][1]

//printf("x=%d y=%d\n",x,y)

//system("PAUSE")

if(x>0 &&y>0 &&x<20 &&y<20 &&his[x][y]==0)

{

if(board[x][y]==mcolor)//己方,长气

{

Q[e][0]=x

Q[e][1]=y

e++

his[x][y]=1

}

else

{

if(board[x][y]=='+') QI++//空地,加气,忽略重复计算

}

}

}

}

//printf("QI=%d\n",QI)

//system("PAUSE")

if(!QI)//死棋,提子

{

for(k=0k<ek++)

{

board[Q[k][0]][Q[k][1]]='+'

his[Q[k][0]][Q[k][1]]=0

}

}

}

}

}

1. 围棋助手 V8.76

一个专业的围棋工具软件,包含职业棋手对局41409谱,教

www.skycn.com/soft/246.html

2. 围棋助手 8.76E 升级版

一个专业的围棋工具软件

download.pchome.net/game/chess/15739.html

3. 围棋定式详解 3.0

定式详解包含了几乎所有常用定式,带有详细的解说。有了它,查询定式、学习定式将不再

www.onlinedown.net/soft/7794.htm

4. 围棋助手 8.76 完整版

www.onlinedown.net/soft/8958.htm

5. 弈缘围棋 完全安装版 1.81

这是一个集“棋谱管理”和“网上对弈”于一身的围棋软件

download.pchome.net/game/chess/7875.html

6. 弈缘围棋 简装版 1.81

一个集“棋谱管理”和“网上对弈”于一身的围棋软件

download.pchome.net/game/chess/8868.html

7. 围棋入门网上训练软件 1.0

中国围棋网和中国大学生围棋网联合推出的围棋入门网上训练软件,用它可以和很多同是初

www.onlinedown.net/soft/18649.htm

8. Go81 随身围棋 1.3

Go81是PDA上的彩色围棋游戏,提供9x9,13x13两种不同大小的棋盘可让玩家好好厮杀一番;

www.onlinedown.net/soft/24560.htm

9. 3D Reversi Deluxe 3D 围棋

3DReversiDeluxe让喜好棋类游戏的玩家有个挑战计算机的机会,玩家可以挑战游戏中所设

www.onlinedown.net/soft/34334.htm

10. 喜玛拉雅围棋谱 19.0 +

使用xml纪录围棋谱,任意一手都可以有N多变化图

download.pchome.net/game/chess/18580.html

11. 弈缘围棋 V1.81 完全版

这是一个集“棋谱管理”和“网上对弈”于一身的围棋软

www.skycn.com/soft/6558.html

12. 围棋伴侣 0.3

如果你想在短时间内提高你的围棋棋艺如果你想在学棋的过程中有一个良师益友如果你想

www.onlinedown.net/soft/26128.htm

13. 围棋攻防手筋 1.14

www.onlinedown.net/soft/11116.htm

14. 围棋死活习题集 3.0

围棋泰斗吴清源说:很多围棋爱好者向我提出了这样的问题:“怎样才能提高棋力?”我的

www.onlinedown.net/soft/7795.htm

15. 围棋助手光盘版 8.40d

一个专业的围棋工具软件,包含教程、细解千余个,职业棋手对局35000谱,集成棋谱快车

www.onlinedown.net/soft/8959.htm

16. 围棋名局精解 1.21

带详细解说的名局棋谱,容量比传统出版物大多了。

www.onlinedown.net/soft/13994.htm

17. 围棋五子棋对弈 1.0

围棋五子棋网络对弈,支持Internet和局域网对战

download.pchome.net/game/chess/16566.html

18. MultiGo 围棋棋谱软件 2.2.8

为功能强大的围棋打谱软件。全面支持SGF文件格式,并能读BDX(清风)及NGF(新浪)的

www.onlinedown.net/soft/4140.htm

19. 喜玛拉雅围棋谱软件 19.0

用xml记录围棋谱。任意一手都可以有N多变化图。每个变化图都可以有N多手,这N多手又都

www.onlinedown.net/soft/32988.htm

20. 网上围棋对局室 1.65

www.onlinedown.net/soft/10270.htm

21. 围棋官子技巧 1.1.4

www.onlinedown.net/soft/13511.htm

22. 北极星游戏系列之网络围棋 built 990129

“北极星软件OpenWorld系列”之一,必须在LSChat!的基础上运行

download.pchome.net/game/netgame/1609.html

23. 围棋名局 1.0

围棋打谱软件,围棋爱好者必备。内含1600局经典名局棋谱,棋谱通过作者主页不定期发布

www.onlinedown.net/soft/30375.htm

24. 弈缘围棋 1.81

这是一个集“棋谱管理”和“网上对弈”于一身的围棋软件。棋谱管理:可以记谱、保存棋

www.onlinedown.net/soft/13993.htm

25. 联众游戏之围棋 V1.09

围棋对于我们中国人来说已经远远超出了它的娱乐功能

download.pchome.net/game/netgame/1596.html

26. 蓝光伤脑筋十二块 2.00

曾被漫画师丰子恺誉为“超平玩具之上,与象棋、围棋相颉顽”的“伤脑筋十二块”,是一

www.onlinedown.net/soft/30595.htm

27. 围棋精灵 1.03b

围棋精灵是一款精巧设计的围棋打谱软件。与同类软件相比,围棋精灵在全面支持SGF格式

www.onlinedown.net/soft/35852.htm

28. 思佳围棋软件 2.0.5

.功能最强、界面最漂亮的围棋对弈软件.支持人机对弈,棋力可以达到九级,并且还在不

www.onlinedown.net/soft/43140.htm

29. 3D Reversi Deluxe 3D 围棋 V1.0

3D Reversi Deluxe 让喜好棋类游戏的玩家有个挑战计算

www.skycn.com/soft/19370.html

30. 围棋名局 1.0

围棋爱好者必备的围棋打谱软件

download.pchome.net/game/tools/17497.html

31. 围棋骗着与无理手 1.2.4

www.onlinedown.net/soft/14015.htm

32. 网络围棋 V1.10

网络围棋是一款围棋游戏软件。特点:1.支持棋谱管理:可

www.skycn.com/soft/19149.html

33. 喜玛拉雅围棋谱 V18.0

使用xml纪录围棋谱。任意一手都可以有N多变化图,每个

www.skycn.com/soft/18252.html

34. 网络围棋 1.10

是一款围棋游戏软件。特点:1.支持棋谱管理:可以记谱、保存棋谱2.局域网两人对弈3.

www.onlinedown.net/soft/34133.htm

35. JGame 2.06 for win2000,win2003,win XP或win NT

⊙JGame目前最新版为JGameV2.0.6版,包括围棋、象棋、五子棋、国际象棋、陆战棋、四国

www.onlinedown.net/soft/31603.htm

36. 围棋死活题集 3.0

收集1000多道精妙的死活题,难度从出学者到接近专业棋手水平

download.pchome.net/game/chess/20212.html

37. JGame 2.06 for win95,win98,win XP

⊙JGame目前最新版为JGameV2.0.6版,包括围棋、象棋、五子棋、国际象棋、陆战棋、四国

www.onlinedown.net/soft/31604.htm

38. 棋谱快车 V1.4

一个免费的围棋棋谱下载工具,帮你轻松下载网上数万个

www.skycn.com/soft/14246.html

39. 围棋游戏

有初学、爱好、专家、大师四个难度等级供你选择,模式分为电脑自动下棋、双人比赛

download.21cn.com/list.php?id=43969

40. SICQ围棋、五子棋插件 1.1

SICQ围棋、五子棋插件

download.pchome.net/internet/communications/message/1870.html

41. 围棋助手 V7.30 特别版

围棋助手是一个专业的围棋工具软件。它具有对局、打谱、在谱中推演变化、研究定式

download.21cn.com/list.php?id=33259

42. 五星连珠 V1.0

五星连珠是东方的一种古老游戏。在类似围棋棋盘的19X1

www.skycn.com/soft/10284.html

43. 围棋实战训练 5.2

www.onlinedown.net/soft/47284.htm

44. wjygo 电脑围棋 3.6

1.和电脑下围棋。2.支持悔棋、胜负计算,智能提示落子。3.围棋打谱,支持sgf格式棋谱。

www.onlinedown.net/soft/26701.htm

45. 围棋助手 V8.72

一个专业的围棋工具软件,具有打谱、推演棋谱变化、配参考图、网上对局、录入、打

download.21cn.com/list.php?id=28421

46. 蓝光伤脑筋十二块 V2.00

曾被漫画师丰子恺誉为“超平玩具之上,与象棋、围棋相

www.skycn.com/soft/17549.html

47. GoSec2000浏览版 1.01

是一款围棋资料管理软件,她是一位非常能干的围棋小秘书,能帮助您完成以下工作:1、

www.onlinedown.net/soft/13998.htm

48. MultiGo 围棋棋谱软件 V2.2.8

为功能强大的围棋打谱软件。全面支持 SGF 文件格式,并能读 BDX (清风)及 NGF ?

download.21cn.com/list.php?id=30784

49. 围棋棋谱转换程序 1.0

可以完成sgf,新浪围棋,联众围棋三种格式棋谱文件之间的转换,方便棋友们交流,使用和

www.onlinedown.net/soft/5815.htm

50. 围棋打谱程序 V1.0

可以很方便的打出围棋谱。

www.skycn.com/soft/22374.html

51. 围棋定式详解 V3.01

定式详解包含了几乎所有常用定式,带有详细的解说。有

www.skycn.com/soft/25477.html

52. 蓝光伤脑筋十二块 V2.00

曾被漫画师丰子恺誉为“超平玩具之上,与象棋、围棋相颉顽”的“伤脑筋十二块”。

download.21cn.com/list.php?id=43561

53. DOS围棋

DOS围棋游戏,在Win 9x下运行良好,至今仍是人机对弈围棋佳品。

download.21cn.com/list.php?id=43968

54. 围棋死活习题集移动版之Symbian(uiq)版 1.00

随时随地享受围棋的乐趣。围棋死活习题集收集了1200多道精妙的死活题。想提高棋力,做

www.onlinedown.net/soft/46515.htm

55. 围棋SGF棋谱阅读器 1.01

www.onlinedown.net/soft/46937.htm

56. 围棋死活习题集移动版之PocketPC 2003版 1.0

随时随地享受围棋的乐趣。围棋死活习题集收集了1200多道精妙的死活题。想提高棋力,做

www.onlinedown.net/soft/46435.htm

57. 围棋死活习题集移动版之Palm版 1.0

随时随地享受围棋的乐趣。围棋死活习题集收集了1200多道精妙的死活题。想提高棋力,做

www.onlinedown.net/soft/46436.htm

58. 喜玛拉雅围棋谱 V12.0

使用xml纪录围棋谱。任意一手都可以有N多变化图,每个变化图都可以有N多手,这N多

download.21cn.com/list.php?id=49949

59. 围棋和五子棋控件 V1.6.166

很有特色的一款围棋和五子棋控件,并且作者已将五子棋

www.skycn.com/soft/25655.html

60. 围棋SGF棋谱阅读器 V1.01

一个轻便的围棋SGF棋谱阅读器。

www.skycn.com/soft/25659.html

61. 围棋死活习题集移动版之Symbian(s60)版 1.00

随时随地享受围棋的乐趣。围棋死活习题集收集了1200多道精妙的死活题。想提高棋力,做

www.onlinedown.net/soft/46518.htm

62. 围棋死活习题集移动版之PocketPC 2002版 1.00

随时随地享受围棋的乐趣。围棋死活习题集收集了1200多道精妙的死活题。想提高棋力,做

www.onlinedown.net/soft/46519.htm

63. 围棋死活习题集移动版之Symbian(S90)版 1.00

随时随地享受围棋的乐趣。围棋死活习题集收集了1200多道精妙的死活题。想提高棋力,做

www.onlinedown.net/soft/46522.htm

64. 围棋死活习题集移动版之HandheldPC(SH4)版 1.00

随时随地享受围棋的乐趣。围棋死活习题集收集了1200多道精妙的死活题。想提高棋力,做

www.onlinedown.net/soft/46516.htm

65. 围棋死活习题集移动版之PalmsizePC(SH3)版 1.00

随时随地享受围棋的乐趣。围棋死活习题集收集了1200多道精妙的死活题。想提高棋力,做

www.onlinedown.net/soft/46517.htm

66. 围棋死活习题集移动版之PocketPC (ARM)版 1.00

随时随地享受围棋的乐趣。围棋死活习题集收集了1200多道精妙的死活题。想提高棋力,做

www.onlinedown.net/soft/46521.htm

67. 围棋死活习题集移动版之Symbian(s80)版 1.00

随时随地享受围棋的乐趣。围棋死活习题集收集了1200多道精妙的死活题。想提高棋力,做

www.onlinedown.net/soft/46520.htm

68. 围棋定式详解 2.0

定式详解包含了几乎所有常用定式,带有详细的解说。你也可以随时进入研究模式自己再琢

dl.pconline.com.cn/html/1/0/dlid=6300&dltypeid=1&pn=0&.html

69. MultiGo 围棋棋谱软件 2.2.8

为功能强大的围棋打谱软件。全面支持 SGF 文件格式,并能读 BDX (清风)及 NGF (新

dl.pconline.com.cn/html/1/4/dlid=10484&dltypeid=1&pn=0&.html

70. 弈缘围棋 1.81完全版

一个集“棋谱管理”和“网上对弈”于一身的围棋软件。

dl.pconline.com.cn/html/1/9/dlid=1169&dltypeid=1&pn=0&.html

71. 围棋名局精解 1.21

带详细解说的名局棋谱, 容量比传统出版物大多了。

dl.pconline.com.cn/html/1/3/dlid=5613&dltypeid=1&pn=0&.html

72. 死活习题集 2.0

围棋死活习题集收集了1500 道精妙的死活题,难度从出学者到接近专业棋手水平。想提高

dl.pconline.com.cn/html/1/1/dlid=5631&dltypeid=1&pn=0&.html

73. 围棋助手 8.74

围棋助手是一个专业的围棋工具软件,它具有对局、打谱、在谱中推演变化、研究定式、输

dl.pconline.com.cn/html/1/6/dlid=6146&dltypeid=1&pn=0&.html

74. 围棋和五子棋控件 V1.6.166

www.ddooo.com/softdown/38372.htm

75. 围棋定式详解 V3.0

www.ddooo.com/softdown/37963.htm

76. 围棋SGF棋谱阅读器 V1.01

www.ddooo.com/softdown/38390.htm

77. 弈缘围棋 V1.81 完全版

www.ddooo.com/softdown/12394.htm

78. 围棋大师

www.ddooo.com/softdown/3638.htm

79. 多面围棋

www.ddooo.com/softdown/24683.htm

80. 新浪围棋客户端软件 NEW

www.ddooo.com/softdown/27101.htm

81. 围棋助手光盘版 V8.40d

www.ddooo.com/softdown/32822.htm

82. 喜玛拉雅围棋谱 V19.0

www.ddooo.com/softdown/27309.htm

83. 围棋助手 V8.76

www.ddooo.com/softdown/30633.htm

84. 喜玛拉雅围棋谱 V18.0

download.winzheng.com/SoftView/SoftView_18249.htm

85. 弈缘围棋 V1.81 完全版

download.winzheng.com/SoftView/SoftView_6557.htm

86. 围棋助手 V8.74

download.winzheng.com/SoftView/SoftView_246.htm

87. 围棋打谱程序 V1.0

download.winzheng.com/SoftView/SoftView_22371.htm

88. 网络围棋 V1.10

download.winzheng.com/SoftView/SoftView_19146.htm

89. 3D Reversi Deluxe 3D 围棋 V1.0

download.winzheng.com/SoftView/SoftView_19367.htm

90. 围棋定式详解 V3.01

www.78soft.com/soft/15918.htm

91. 蓑衣围棋 2.0

www.shareware.cn/pub/717.html

92. 围棋助手简体版本 8.30

www.shareware.cn/pub/104.html

93. 围棋定式详解 2.0

www.shareware.cn/pub/7503.html

94. 蓑衣围棋 2.5

www.shareware.cn/pub/9873.html

95. 围棋死活习题集 3.0

www.shareware.cn/pub/11004.html

96. Go81 随身围棋 V1.3

www.pcdog.com/soft/30240.htm


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11491400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存