鱼C论坛

 找回密码
 立即注册
查看: 2365|回复: 4

vc6.0编译时出现两个错误error LNK2001: unresolved external symbol _start

[复制链接]
发表于 2012-10-26 22:06:32 | 显示全部楼层 |阅读模式
1鱼币
QQ截图20121026215138.rar (3.19 KB, 下载次数: 2)


# include<stdio.h>
# include<string.h>
# include<stdlib.h>

int a,b,c,d,x; /* a b为玩家下子坐标 ,c d为电脑下子坐标 x为剩余空位置*/
int qipan[15][15];

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[j][i]=0; /* 置棋盘全为空 */
  draw();/*调用画图*/
  while(x!=0)
  {
   printf("1P请输入:");
   scanf("%d%d",&a,&b);
   if(a==15&&b==15)/*是悔棋,重置棋盘,重新获取棋子坐标*/
   { x+=2;
    qipan[d][c]=0;
    qipan[b1][a1]=0;
    system("cls");
    draw(); /*调用画图函数*/
    printf("1P请输入:");
    scanf("%d%d",&a,&b);
   }
   while((a<0||a>14)||(b<0||b>14)||qipan[b][a]!=0) /*判断棋子坐标是否超出范围,或者是否有棋子*/
   {
    printf("坐标错误或该位置已有子!请重新输入:");
    scanf("%d%d",&a,&b);
   }
   a1=a;
   b1=b;
   x--;
   qipan[b][a]=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[b][a]=0;
    qipan[d1][c1]=0;
    system("cls");
    draw();
    printf("2P请输入:");
    scanf("%d%d",&c,&d);
   }
   while((c<0||c>14)||(d<0||d>14)||qipan[d][c]!=0)
   {
    printf("坐标错误或该位置已有子!请重新输入:");
    scanf("%d%d",&c,&d);
   }
   c1=c;
   d1=d;
   x--;
   qipan[d][c]=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[q][p];
while(n!=5)
{
  m=0;
  while(k==qipan[q][p])/*这个语句什么意思*/
  {
   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[q][p])/*这个语句什么意思*/
  {
   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[15][15][4];
for(j=0;j<15;j++)
  for(i=0;i<15;i++)
  {
   if(qipan[j][i]==0)
    strcpy(p[j][i],"  \0");
   if(qipan[j][i]==1)
    strcpy(p[j][i],"●\0");
   if(qipan[j][i]==2)
    strcpy(p[j][i],"◎\0");
  }
printf("         0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  \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[i][0],p[i][1],p[i][2],p[i][3],p[i][4],p[i][5],p[i][6],p[i][7],p[i][8],p[i][9],p[i][10],p[i][11],p[i][12],p[i][13],p[i][14],j);
  printf("       ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤\n");
}
    printf("     14│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│%s│14\n",p[14][0],p[14][1],p[14][2],p[14][3],p[14][4],p[14][5],p[14][6],p[14][7],p[14][8],p[14][9],p[14][10],p[14][11],p[14][12],p[14][13],p[14][14]);
    printf("       └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘\n");
printf("         0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  \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;
}
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-9 22:16:05 | 显示全部楼层
到底qipan是一维还是二维数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-9 22:31:52 | 显示全部楼层
#include "stdafx.h"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-9 23:06:01 | 显示全部楼层
换一个编译器试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-27 16:07:59 | 显示全部楼层
厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 09:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表