f111fei2008 f111fei2008
关注数: 10 粉丝数: 58 发帖数: 175 关注贴吧数: 7
学了1年的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() { char k; do{ x=225; start(); 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,choice; /* a1 b1储存玩家上手坐标 c1 d1储存电脑上手坐标 */ char ch; printf("\t╔══════════════════════════════╗\n");printf("\t║ ║\n");printf("\t║ 欢迎使用五子棋对战程序 祝您玩的愉快挑战无极限 ║\n"); printf("\t║ ║\n");printf("\t║ ._______________________. ║\n"); printf("\t║ | _____________________ | ║\n");printf("\t║ | I I | ║\n");printf("\t║ | I 五 子 棋 I | ║\n");printf("\t║ | I I | ║\n");printf("\t║ | I made by 晓之蓬 I | ║\n"); printf("\t║ | I___________________I | ║\n");printf("\t║ !_______________________! ║\n"); printf("\t║ ._[__________]_. ║\n");printf("\t║ .___|_______________|___. ║\n");printf("\t║ |::: ____ | ║\n"); printf("\t║ | ~~~~ [CD-ROM] | ║\n");printf("\t║ !_____________________! ║\n");printf("\t║ ║\n");printf("\t║ ║\n");printf("\t║ 寒 星 溪 月 疏 星 首,花 残 二 月 并 白 莲。 ║\n");printf("\t║ 雨 月 金 星 追 黑 玉,松 丘 新 宵 瑞 山 腥。 ║\n");printf("\t║ 星 月 长 峡 恒 水 流,白 莲 垂 俏 云 浦 岚。 ║\n");printf("\t║ 黑 玉 银 月 倚 明 星,斜 月 明 月 堪 称 朋。 ║\n");printf("\t║ 二 十 六 局 先 弃 二,直 指 游 星 斜 彗 星。 ║\n");printf("\t║ ║\n");printf("\t║ ║\n");printf("\t║ 1.人机对战 2.人人对战 ║\n");printf("\t║ ║\n");printf("\t╚═══════════════════════════ ══╝\n");printf("\t\t\t请输入1或2:");
1 下一页