五子棋是中国最古老的的棋类之一,老少皆宜,特别适合用来开发智力,对于编程而言,实现它也算一个特别经典的案例。
本文主要从五子棋下棋、判定五子相连、以及智能获取最优棋子上讨论五子棋的实现。
首先是棋盘绘制:
我是在Unix系统上用C写的,所以界面比较简陋,用getch()获取上下左右移动的键值,和Enter键确定下子,附加一个ESC退出
对于键值:
up:183
down:184
right:185
left:186
enter:10
esc:27
界面绘制呢,五子棋一般采用15*15的规格,所以显示函数如下
void showMap(int map[][15],size_t len){
system("clear");
puts("\n\n\n");
char s = 'A';
for(int i=0;i<15;i++){
printf("\t\t\t");
if(i>=10)printf(" %c",s++);
else printf(" %d",i);
for(int j=0;j<15;j++){
if(map[i][j] == 0)printf(".");
if(map[i][j] == 1)printf("#");
if(map[i][j] == -1)printf("O");
printf(" ");
}
printf("\n");
}
printf("\t\t\t ");
char c = 'A';
for(int j=0;j<15;j++){
if(j>=10)printf("%c &#