vc6.0编译时出现两个错误error LNK2001: unresolved external symbol _start
# include<stdio.h>
# include<string.h>
# include<stdlib.h>
int a,b,c,d,x; /* a b为玩家下子坐标 ,c d为电脑下子坐标 x为剩余空位置*/
int qipan;
void draw(); /* 画棋盘 */
void start();/* 程序的主要控制函数 */
void draw(); /* 画棋盘 */
int win(int p,int q);/* 判断胜利 p q为判断点坐标 */
void yiwei(int n,int *i,int *j); /* 在n方向上对坐标 i j 移位 n为1-8方向 从右顺时针开始数*/
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void main()
{
char k;
do{
x=225;/*15*15的棋盘共有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 star()
{
int i,j,a1,b1,c1,d1,choice;/* a1 b1储存玩家上手坐标 c1 d1储存电脑上手坐标 */
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║ ║\n");
printf("\t║ 1.双人游戏 2.退出游戏 ║\n");
printf("\t║ ║\n");
printf("\t╚═══════════════════════════════╝\n");
printf("\t\t\t请输入1或2:");
scanf("%d",&choice);
while(choice!=1&&choice!=2)
{
printf("输入错误,请重新输入:");
scanf("%d",&choice);
}
if(choice==2)
{
//////////////////////////////////////////////////////////////////////////////////////////////
}
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=0; /* 置棋盘全为空 */
draw();/*调用画图*/
while(x!=0)
{
printf("1P请输入:");
scanf("%d%d",&a,&b);
if(a==15&&b==15)/*是悔棋,重置棋盘,重新获取棋子坐标*/
{ x+=2;
qipan=0;
qipan=0;
system("cls");
draw(); /*调用画图函数*/
printf("1P请输入:");
scanf("%d%d",&a,&b);
}
while((a<0||a>14)||(b<0||b>14)||qipan!=0) /*判断棋子坐标是否超出范围,或者是否有棋子*/
{
printf("坐标错误或该位置已有子!请重新输入:");
scanf("%d%d",&a,&b);
}
a1=a;
b1=b;
x--;
qipan=1;
system("cls");
draw();/*调用画图函数*/
printf("1P下在%d %d。\n",a,b);
if(win(a,b))
{
printf("你真棒!!!\n");
return;
} /* 玩家1赢 */
printf("2P请输入:");
scanf("%d%d",&c,&d);
if(c==15&&d==15)
{
x+=2;
qipan=0;
qipan=0;
system("cls");
draw();
printf("2P请输入:");
scanf("%d%d",&c,&d);
}
while((c<0||c>14)||(d<0||d>14)||qipan!=0)
{
printf("坐标错误或该位置已有子!请重新输入:");
scanf("%d%d",&c,&d);
}
c1=c;
d1=d;
x--;
qipan=2;
system("cls");
draw();/*调用画图函数*/
printf("2P下在%d %d。\n",c,d);
if(win(c,d))
{
printf("你真棒!!!\n");
return;
} /* 玩家2赢 */
}
printf("和局\n");/*和局是下完所有的225个地方*/
}/*上接if==2语句*/
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int win(int p,int q) /* 判断胜利 p q为判断点坐标,胜利返回1,否则返回0 */
{
int k,n=1,m,P,Q; /* k判断p q坐标是玩家下的棋子还是电脑下的棋子【
k储存判断点p q的状态2或1(空位置设为0 ,玩家下的位置设为1 ,电脑下的位置设为2)。】
P Q储存判断点坐标。n为判断方向。m为个数。 */
P=p;
Q=q;
k=qipan;
while(n!=5)
{
m=0;
while(k==qipan)/*这个语句什么意思*/
{
m++;
if(m==5)
return 1;
yiwei(n,&p,&q);
if(p<0||p>14||q<0||q>14)
break;
}
n+=4;
m-=1;
p=P;
q=Q; /* 转向判断 什么意思? */
while(k==qipan)/*这个语句什么意思*/
{
m++;
if(m==5)
return 1;
yiwei(n,&p,&q);
if(p<0||p>14||q<0||q>14)
break;
}
n=n-3;
p=P;
q=Q; /* 不成功则判断下一组方向 什么意思?*/
}
return 0;/*什么意思*/
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
void draw() /* 画棋盘 */
{
int i,j;
char p;
for(j=0;j<15;j++)
for(i=0;i<15;i++)
{
if(qipan==0)
strcpy(p,"\0");
if(qipan==1)
strcpy(p,"●\0");
if(qipan==2)
strcpy(p,"◎\0");
}
printf(" 0 1 2 3 4 5 6 7 8 9 1011121314\n");
printf(" ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐\n");
for(i=0,j=0;i<14;i++,j++)/*控制打印13个横向*/
{
printf(" %2d│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%d\n",j,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,j);
printf(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤\n");
}
printf(" 14│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│14\n",p,p,p,p,p,p,p,p,p,p,p,p,p,p,p);
printf(" └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘\n");
printf(" 0 1 2 3 4 5 6 7 8 9 1011121314\n");
}
/////////////////////////////////////////////////////////////////////////////////////////////
void yiwei(int n,int *i,int *j) /* 在n方向上对坐标 i j 移位 n为1-8方向 从右顺时针开始数 */
{
switch(n)
{
case 1: *i+=1;
break;
case 2: *i+=1; *j+=1;
break;
case 3: *j+=1;
break;
case 4: *i-=1; *j+=1;
break;
case 5: *i-=1;
break;
case 6: *i-=1; *j-=1;
break;
case 7: *j-=1;
break;
case 8: *i+=1; *j-=1;
break;
}
}
到底qipan是一维还是二维数组 #include "stdafx.h" 换一个编译器试试 厉害
页:
[1]