863475209 发表于 2012-10-26 22:06:32

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;
}
}

565123 发表于 2013-3-9 22:16:05

到底qipan是一维还是二维数组

devil5975 发表于 2013-3-9 22:31:52

#include "stdafx.h"

syjsu 发表于 2013-3-9 23:06:01

换一个编译器试试

阔怀 发表于 2015-8-27 16:07:59

厉害
页: [1]
查看完整版本: vc6.0编译时出现两个错误error LNK2001: unresolved external symbol _start