文字版大富翁

原创软件   2007-12-19 18:15   阅读95   评论4  
字号:    

    前段时间无聊,编了个游戏。不过由于新浪发不了这么长的文章,所以发到这里来了。

 

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <time.h>

//地图尺寸
#define SIZE 42
//总玩家数目
#define COUNT 5
//幸运卡片数目
#define CARD 5
//起始现金数
#define StartCash 10000
//起始存款数
#define StartDeposit 10000
//银行位置
#define BANK 0
//抽取幸运卡片的位置
#define LUCK 20

struct PlayerType
{
 char Name[10];
 int Pos,State;
 long Cash,Deposit;
} ;

struct MapType
{
 char Name[10];
 int Holder,Price,Count;
} ;

struct CardType
{
 char Action[256];
 int Prize;
} ;

void Init(struct MapType Map[], struct PlayerType Player[], struct CardType Card[])  //初始化地图、玩家、卡片信息
{
 FILE *Input;
 int i;

 Input=fopen("Map.Info","r");
 for (i=0;i<=SIZE-1;i++)
 {
  fscanf(Input,"%s%d",Map[i].Name,&Map[i].Price);
  Map[i].Holder=0;
  Map[i].Count=0;
 }
 fclose(Input);
 Input=fopen("Player.Info","r");
 for (i=0;i<=COUNT-1;i++)
 {
  fscanf(Input,"%s",Player[i].Name);
  Player[i].Cash=StartCash;
  Player[i].Deposit=StartDeposit;
  Player[i].Pos=rand()%SIZE;
  Player[i].State=0;
 }
 fclose(Input);
 Input=fopen("Card.Info","r");
 for (i=0;i<=CARD-1;i++) fscanf(Input,"%s%d",Card[i].Action,&Card[i].Prize);
 fclose(Input);
}

void ClearScreen()  //清屏
{
 system("cls");
}

void InputPlayerName(struct PlayerType Player[], int PlayerCount)  //输入玩家姓名
{
 int i;

 for (i=1;i<=PlayerCount;i++)
 {
  printf("请输入%d号玩家的昵称:>",i);
  scanf("%s",Player[i].Name);
 }
}

int Over(struct PlayerType Player[])  //判断是否游戏结束
{
 int i,Count=0;

 for (i=1;i<=COUNT-1;i++)
  if (Player[i].State==0) Count++;
 if (Count<=1) return 1;
 else return 0;
}

void Copy(char Str[], char Source[])
{
 unsigned i;

 for (i=0;i<=strlen(Source)-1;i++) Str[i]=Source[i];
 Str[i]='\0';
}

int Fight(char NameA[], int HumA, char NameB[], int HumB)  //战斗系统
{
 int BloodA=100,BloodB=100,Attack,Defend;
 char AttackDes[3][256],DefendDes[3][256];

 AttackDes[0][0]='\0';
 Copy(AttackDes[0],"抡起拳头一拳砸向");
 AttackDes[1][0]='\0';
 Copy(AttackDes[1],"提起手掌一巴掌扇向");
 AttackDes[2][0]='\0';
 Copy(AttackDes[2],"飞起一脚踢向");
 DefendDes[0][0]='\0';
 Copy(DefendDes[0],"见势立即格挡");
 DefendDes[1][0]='\0';
 Copy(DefendDes[1],"迅速反击对手要害");
 DefendDes[2][0]='\0';
 Copy(DefendDes[2],"凭借其敏捷的身法闪避");
 ClearScreen();
 while (1)
 {
  if (HumA)
  {
   while (1)
   {
    printf("进攻方:%s\n体力:%d\n请选择攻击方式(1.轻击 2.中击 3.重击):>",NameA,BloodA);
    Attack=getch();
    if (Attack<49 || Attack>51)
    {
     ClearScreen();
     printf("输入有误,请重新输入...\n");
    }
    else break;
   }
   ClearScreen();
  }
  else Attack=rand()%3+49;
  if (HumB)
  {
   while (1)
   {
    printf("防守方:%s\n体力:%d\n请选择防御方式(1.格挡 2.反击 3.躲闪):>",NameB,BloodB);
    Defend=getch();
    if (Defend<49 || Defend>51)
    {
     ClearScreen();
     printf("输入有误,请重新输入...\n");
    }
    else break;
   }
   ClearScreen();
  }
  else Defend=rand()%3+49;
  printf("进攻方:%s\n体力:%d\n请选择攻击方式(1.轻击 2.中击 3.重击):>%d\n\n",NameA,BloodA,Attack-48);
  printf("防守方:%s\n体力:%d\n请选择防御方式(1.格挡 2.反击 3.躲闪):>%d\n\n战斗详情:\n",NameB,BloodB,Defend-48);
  Sleep(1000);
  printf("%s%s%s!\n",NameA,AttackDes[rand()%3],NameB);
  Sleep(1000);
  printf("%s%s,",NameB,DefendDes[Defend-49]);
  if (Attack==Defend) printf("成功化解了%s的进攻!\n",NameA);
  else
  {
   printf("但失败了,损失20点体力...\n");
   BloodB=BloodB-20;
  }
  Sleep(2000);
  ClearScreen();
  if (BloodB<=0) return 1;
  if (HumB)
  {
   while (1)
   {
    printf("进攻方:%s\n体力:%d\n请选择攻击方式(1.轻击 2.中击 3.重击):>",NameB,BloodB);
    Attack=getch();
    if (Attack<49 || Attack>51)
    {
     ClearScreen();
     printf("输入有误,请重新输入...\n");
    }
    else break;
   }
   ClearScreen();
  }
  else Attack=rand()%3+49;
  if (HumA)
  {
   while (1)
   {
    printf("防守方:%s\n体力:%d\n请选择防御方式(1.格挡 2.反击 3.躲闪):>",NameA,BloodA);
    Defend=getch();
    if (Defend<49 || Defend>51)
    {
     ClearScreen();
     printf("输入有误,请重新输入...\n");
    }
    else break;
   }
   ClearScreen();
  }
  else Defend=rand()%3+49;
  printf("进攻方:%s\n体力:%d\n请选择攻击方式(1.轻击 2.中击 3.重击):>%d\n\n",NameB,BloodB,Attack-48);
  printf("防守方:%s\n体力:%d\n请选择防御方式(1.格挡 2.反击 3.躲闪):>%d\n\n战斗详情:\n",NameA,BloodA,Defend-48);
  Sleep(1000);
  printf("%s%s%s!\n",NameB,AttackDes[rand()%3],NameA);
  Sleep(1000);
  printf("%s%s,",NameA,DefendDes[Defend-49]);
  if (Attack==Defend) printf("成功化解了%s的进攻!\n",NameB);
  else
  {
   printf("但失败了,损失20点体力...\n");
   BloodA=BloodA-20;
  }
  Sleep(2000);
  ClearScreen();
  if (BloodA<=0) return 0;
 }
}

void PrintPlayerInf(struct MapType Map[], struct PlayerType Player[], int PlayerNum)  //显示玩家信息
{
 printf("玩家名称:%s\n现金:$%ld\n存款:$%ld\n所在地:%s  投资价格:%d  投资度:%d  持有人:%s\n",Player[PlayerNum].Name,Player[PlayerNum].Cash,Player[PlayerNum].Deposit,Map[Player[PlayerNum].Pos].Name,Map[Player[PlayerNum].Pos].Price,Map[Player[PlayerNum].Pos].Count,Player[Map[Player[PlayerNum].Pos].Holder].Name);
}

void Bank(struct PlayerType Player[], int PlayerNum)  //银行系统
{
 int Command,Money;
 
 do
 {
  ClearScreen();
  printf("%s,您好!欢迎您来到\"游侠UFO版大富翁\"银行!\n",Player[PlayerNum].Name);
  while (1)
  {
   printf("您卡上的余请额为:%d\n选择(1.取款 2.存款 3.离开):>",Player[PlayerNum].Deposit);
   Command=getch();
   if (Command<49 || Command>51)
   {
    ClearScreen();
    printf("输入有误,请重新输入...\n");
   }
   else break;
  }
  Command=Command-48;
  ClearScreen();
  if (Command==3)
  {
   printf("谢谢光临!\n");
   Sleep(1000);
  }
  else
   if (Command==1)
   {
    while (1)
    {
     printf("您卡上的余请额为:%d\n请输入取款金额:>",Player[PlayerNum].Deposit);
     scanf("%d",&Money);
     if (0<=Money && Money<=Player[PlayerNum].Deposit) break;
     else
     {
      ClearScreen();
      if (Money>=0) printf("\n您的存款余额不足,请重新输入...\n");
      else printf("\n输入有误,请重新输入...\n");
     }
    }
    Player[PlayerNum].Deposit=Player[PlayerNum].Deposit-Money;
    Player[PlayerNum].Cash=Player[PlayerNum].Cash+Money;
    printf("取款成功!\n");
    Sleep(1000);
   }
   else
   {
    while (1)
    {
     printf("您手上的现金有:%d\n请输入存款金额:>",Player[PlayerNum].Cash);
     scanf("%d",&Money);
     if (0<=Money && Money<=Player[PlayerNum].Cash) break;
     else
     {
      ClearScreen();
      if (Money>=0) printf("\n您的现金不足,请重新输入...\n");
      else printf("\n输入有误,请重新输入...\n");
     }
    }
    Player[PlayerNum].Cash=Player[PlayerNum].Cash-Money;
    Player[PlayerNum].Deposit=Player[PlayerNum].Deposit+Money;
    printf("存款成功!\n");
    Sleep(1000);
   }
 } while (Command!=3);
 ClearScreen();
}

void Luck(struct PlayerType Player[], int PlayerNum, struct CardType Card[])  //幸运卡抽取系统
{
 int Temp;

 ClearScreen();
 printf("这里是幸运卡抽取地!\n\n按任意键开始抽取幸运卡...\n");
 getch();
 Temp=rand()%CARD;
 Player[PlayerNum].Cash=Player[PlayerNum].Cash+Card[Temp].Prize;
 if (Player[PlayerNum].Cash<0)
 {
  Player[PlayerNum].Deposit=Player[PlayerNum].Deposit+Player[PlayerNum].Cash;
  Player[PlayerNum].Cash=0;
 }
 printf("%s\n",Card[Temp].Action);
 Sleep(3000);
 ClearScreen();
}

void BurstUp(struct MapType Map[], struct PlayerType Player[], int PlayerNum)  //破产系统
{
 int i;

 ClearScreen();
 printf("%s已经破产,其土地将全部由\"游侠UFO大富翁\"政府回收!\n\n按任意键继续...\n",Player[PlayerNum].Name);
 getch();
 Player[PlayerNum].State=1;
 for (i=0;i<=SIZE-1;i++)
  if (Map[i].Holder==PlayerNum) Map[i].Holder=0;
 ClearScreen();
}

main()
{
 struct PlayerType Player[COUNT];
 struct MapType Map[SIZE];
 struct CardType Card[CARD];
 int PlayerCount/*非AI玩家数量*/,Day=0,i,j,Step,Command,Temp;

 srand(time(0));  //初始化随机数发生器
 Init(Map,Player,Card);
 while (1)
 {
  printf("请输入玩家数量:>");
  scanf("%d",&PlayerCount);
  if (PlayerCount>COUNT-1)
  {
   ClearScreen();
   printf("数据输入有错,请重新输入...\n");
  }
  else break;
 }
 InputPlayerName(Player,PlayerCount);
 while (!Over(Player))
 {
  Day++;
  if (Day%30==0)
   for (i=1;i<=COUNT;i++) Player[i].Deposit=Player[i].Deposit*101/100;
  for (i=1;i<=PlayerCount;i++)  //玩家策略
  {
   ClearScreen();
   if (Player[i].State==0)
   {
    printf("第%d天!\n",Day);
    PrintPlayerInf(Map,Player,i);
    printf("\n按任意键开始投骰子...\n");
    getch();
    Step=rand()%6+1;
    printf("骰子点数 = %d\n",Step);
    Sleep(1000);
    ClearScreen();
    while (Step>0)
    {
     Player[i].Pos=(Player[i].Pos+1)%SIZE;
     PrintPlayerInf(Map,Player,i);
     Step--;
     printf("剩余步数:%d\n",Step);
     Sleep(1000);
     ClearScreen();
     if (Player[i].Pos==BANK) Bank(Player,i);  //路过银行
    }
    ClearScreen();
    for (j=1;j<=COUNT;j++)
     if (i!=j && Player[i].Pos==Player[j].Pos)
     {
      while (1)
      {
       printf("你和%s相遇了,是否对其进行掠夺?(1.是 2.否):>",Player[j].Name);
       Command=getch();
       if (Command<49 || Command>50)
       {
        ClearScreen();
        printf("输入有误,请重新输入...\n");
       }
       else break;
      }
      Command=Command-48;
      if (Command==1)
      {
       printf("\n你选择对%s进行掠夺!\n\n按任意键开始战斗...\n",Player[j].Name);
       getch();
       if (j<=PlayerCount) Temp=1;
       else Temp=0;
       if (Fight(Player[i].Name,1,Player[j].Name,Temp))
       {
        printf("%s成功打倒%s,并从%s身上夺取金钱$500!\n%s被救护车送进医院抢救,花费$100...\n\n按任意键继续...\n",Player[i].Name,Player[j].Name,Player[j].Name,Player[j].Name);
        getch();
        Player[j].Cash=Player[j].Cash-600;
        if (Player[j].Cash<0)
        {
         Player[j].Deposit=Player[j].Deposit+Player[j].Cash;
         Player[j].Cash=0;
        }
        Player[i].Cash=Player[i].Cash+500;
        if (Player[j].Deposit<0) BurstUp(Map,Player,j);
       }
       else
       {
        printf("%s的掠夺未成功,反被%s打倒...\n%s被救护车送进医院抢救,花费$100...\n\n按任意键继续...\n",Player[i].Name,Player[j].Name,Player[i].Name);
        getch();
        ClearScreen();
        Player[i].Cash=Player[i].Cash-100;
        if (Player[i].Cash<0)
        {
         Player[i].Deposit=Player[j].Deposit+Player[j].Cash;
         Player[i].Cash=0;
        }
        if (Player[i].Deposit<0) BurstUp(Map,Player,i);
       }
      }
      else
      {
       printf("\n你悄无声息地从%s身旁经过...\n",Player[j].Name);
       Sleep(1000);
      }
     }
    if (Player[i].Pos==LUCK)
    {
     Luck(Player,i,Card);
     if (Player[i].Deposit<0) BurstUp(Map,Player,i);
    }
    else
     if (Player[i].Pos!=BANK)
      switch (Map[Player[i].Pos].Holder)
      {
      case 0:  //落脚地不属于任何玩家
       while (1)
       {
        printf("欢迎来到\"%s\",此地售价:$%d\n是否购买此地?(1.购买 2.不购买):>",Map[Player[i].Pos].Name,Map[Player[i].Pos].Price);
        Command=getch();
        if (Command<49 || Command>50)
        {
         ClearScreen();
         printf("输入有误,请重新输入...\n");
        }
        else break;
       }
       Command=Command-48;
       if (Command==1)
        if (Player[i].Cash<Map[Player[i].Pos].Price)
        {
         printf("\n很抱歉,您的现金不足,不能购买此地...\n");
         Sleep(1000);
        }
        else
        {
         Player[i].Cash=Player[i].Cash-Map[Player[i].Pos].Price;
         Map[Player[i].Pos].Holder=i;
         Map[Player[i].Pos].Count=1;
         printf("\n您已经成功购买此地!\n");
         Sleep(1000);
        }
       break;
      default:  //落脚地属于某个玩家
       if (Map[Player[i].Pos].Holder==i)  //落脚地是自己的地
       {
        if (Map[Player[i].Pos].Count<10)
        {
         while (1)
         {
          printf("欢迎来到\"%s\",您已经购买过此地,目前投资度为%d.\n是否继续投资?(1.是 2.否):>",Map[Player[i].Pos].Name);
          Command=getch();
          if (Command<49 || Command>50)
          {
           ClearScreen();
           printf("输入有误,请重新输入...\n");
          }
          else break;
         }
         Command=Command-48;
         if (Command==1)
          if (Player[i].Cash<Map[Player[i].Pos].Price)
          {
           printf("\n很抱歉,您的现金不足,不能投资此地...\n");
           Sleep(1000);
          }
          else
          {
           Player[i].Cash=Player[i].Cash-Map[Player[i].Pos].Price;
           Map[Player[i].Pos].Count++;
           printf("\n您已经成功投资此地!\n");
           Sleep(1000);
          }
        }
       }
       else
       {
        printf("欢迎来到\"%s\",此地属于%s,你须向他支付过路费%d.\n\n按任意键继续...\n",Map[Player[i].Pos].Name,Player[Map[Player[i].Pos].Holder].Name,Map[Player[i].Pos].Price*Map[Player[i].Pos].Count/2);
        getch();
        Player[i].Cash=Player[i].Cash-Map[Player[i].Pos].Price*Map[Player[i].Pos].Count/2;
        Player[Map[Player[i].Pos].Holder].Deposit=Player[Map[Player[i].Pos].Holder].Deposit+Map[Player[i].Pos].Price*Map[Player[i].Pos].Count/2;
        if (Player[i].Cash<0) Player[i].Deposit=Player[i].Deposit+Player[i].Cash;
        if (Player[i].Deposit<0) BurstUp(Map,Player,i);
        else
        {
         while (1)
         {
          printf("是否抢夺此地?(1.是 2.否):>");
          Command=getch();
          if (Command<49 || Command>50)
          {
           ClearScreen();
           printf("输入有误,请重新输入...\n");
          }
          else break;
         }
         Command=Command-48;
         ClearScreen();
         if (Command==1)
         {
          printf("你选择抢夺此地!\n\n按任意键开始与%s战斗...\n",Player[Map[Player[i].Pos].Holder].Name);
          getch();
          if (Map[Player[i].Pos].Holder<=PlayerCount) Temp=1;
          else Temp=0;
          if (Fight(Player[i].Name,1,Player[Map[Player[i].Pos].Holder].Name,Temp))
          {
           printf("%s成功打倒%s,\"%s\"现归%s所有!\n%s被救护车送进医院抢救,花费$100...\n\n按任意键继续...\n",Player[i].Name,Player[Map[Player[i].Pos].Holder].Name,Map[Player[i].Pos].Name,Player[i].Name,Player[Map[Player[i].Pos].Holder].Name);
           getch();
           Player[Map[Player[i].Pos].Holder].Cash=Player[Map[Player[i].Pos].Holder].Cash-100;
           if (Player[Map[Player[i].Pos].Holder].Cash<0) Player[Map[Player[i].Pos].Holder].Deposit=Player[Map[Player[i].Pos].Holder].Deposit+Player[Map[Player[i].Pos].Holder].Cash;
           if (Player[Map[Player[i].Pos].Holder].Deposit<0) BurstUp(Map,Player,Map[Player[i].Pos].Holder);
           Map[Player[i].Pos].Holder=i;
          }
          else
          {
           printf("%s的抢夺未成功,反被%s打倒...\n%s被救护车送进医院抢救,花费$100...\n\n按任意键继续...\n",Player[i].Name,Player[j].Name,Player[i].Name);
           getch();
           Player[i].Cash=Player[i].Cash-100;
           if (Player[i].Cash<0)
           {
            Player[i].Deposit=Player[j].Deposit+Player[j].Cash;
            Player[i].Cash=0;
           }
           if (Player[i].Deposit<0) BurstUp(Map,Player,i);
          }
         }
        }
       }
      }
   }
  }
  for (i=PlayerCount+1;i<=COUNT-1;i++)  //AI策略
  {
   ClearScreen();
   if (Player[i].State==0)
   {
    printf("第%d天!\n",Day);
    PrintPlayerInf(Map,Player,i);
    Sleep(1000);
    Step=rand()%6+1;
    printf("骰子点数 = %d\n",Step);
    Sleep(2000);
    ClearScreen();
    while (Step>0)
    {
     Player[i].Pos=(Player[i].Pos+1)%SIZE;
     PrintPlayerInf(Map,Player,i);
     Step--;
     printf("剩余步数:%d\n",Step);
     Sleep(1000);
     ClearScreen();
     if (Player[i].Pos==BANK && Player[i].Cash<2000)  //路过银行
     {
      if (Player[i].Deposit>=5000) Temp=Player[i].Deposit/2;
      else Temp=Player[i].Deposit;
      Player[i].Deposit=Player[i].Deposit-Temp;
      Player[i].Cash=Player[i].Cash+Temp;
     }
    }
    ClearScreen();
    for (j=1;j<=COUNT;j++)
     if (i!=j && Player[i].Pos==Player[j].Pos)
     {
      printf("%s和%s相遇了!\n",Player[i].Name,Player[j].Name);
      if (Player[i].Cash+Player[i].Deposit>=500)
      {
       printf("\n%s选择对%s进行掠夺!\n",Player[i].Name,Player[j].Name);
       Sleep(3000);
       if (j<=PlayerCount) Temp=1;
       else Temp=0;
       if (Fight(Player[i].Name,0,Player[j].Name,Temp))
       {
        printf("%s成功打倒%s,并从%s身上夺取金钱$500!\n%s被救护车送进医院抢救,花费$100...\n",Player[i].Name,Player[j].Name,Player[j].Name,Player[j].Name);
        Sleep(2000);
        ClearScreen();
        Player[j].Cash=Player[j].Cash-600;
        if (Player[j].Cash<0)
        {
         Player[j].Deposit=Player[j].Deposit+Player[j].Cash;
         Player[j].Cash=0;
        }
        Player[i].Cash=Player[i].Cash+500;
        if (Player[j].Deposit<0) BurstUp(Map,Player,j);
       }
       else
       {
        printf("%s的掠夺未成功,反被%s打倒...\n%s被救护车送进医院抢救,花费$100...\n",Player[i].Name,Player[j].Name,Player[i].Name);
        Sleep(2000);
        ClearScreen();
        Player[i].Cash=Player[i].Cash-100;
        if (Player[i].Cash<0)
        {
         Player[i].Deposit=Player[j].Deposit+Player[j].Cash;
         Player[i].Cash=0;
        }
        if (Player[i].Deposit<0) BurstUp(Map,Player,i);
       }
      }
      else
      {
       printf("\n%s悄无声息地从%s身旁经过...\n",Player[i].Name,Player[j].Name);
       Sleep(1000);
      }
     }
    if (Player[i].Pos==LUCK)  //落脚地是幸运卡抽取地
    {
     Temp=rand()%CARD;
     Player[i].Cash=Player[i].Cash+Card[Temp].Prize;
     if (Player[i].Cash<0)
     {
      Player[i].Deposit=Player[i].Deposit+Player[i].Cash;
      Player[i].Cash=0;
     }
     if (Player[i].Deposit<0) BurstUp(Map,Player,i);
    }
    else
     if (Player[i].Pos!=BANK)
      switch (Map[Player[i].Pos].Holder)
      {
      case 0:  //落脚地不属于任何玩家
       printf("%s来到\"%s\",此地售价:$%d\n",Player[i].Name,Map[Player[i].Pos].Name,Map[Player[i].Pos].Price);
       if (Player[i].Cash>=Map[Player[i].Pos].Price)
       {
        printf("%s选择购买此地!\n",Player[i].Name);
        Player[i].Cash=Player[i].Cash-Map[Player[i].Pos].Price;
        Map[Player[i].Pos].Holder=i;
        Map[Player[i].Pos].Count=1;
        Sleep(2000);
       }
       break;
      default:  //落脚地属于某个玩家
       if (Map[Player[i].Pos].Holder==i)  //落脚地是自己的地
       {
        if (Map[Player[i].Pos].Count<10)
        {
         printf("%s来到\"%s\",%s已经购买过此地,目前投资度为%d.\n",Player[i].Name,Map[Player[i].Pos].Name,Player[i].Name);
         if (Player[i].Cash>=Map[Player[i].Pos].Price)
         {
          printf("%s选择投资此地!\n",Player[i].Name);
          Player[i].Cash=Player[i].Cash-Map[Player[i].Pos].Price;
          Map[Player[i].Pos].Count++;
          Sleep(2000);
         }
        }
       }
       else
       {
        printf("%s来到\"%s\",此地属于%s,%s支付过路费%d.\n",Player[i].Name,Map[Player[i].Pos].Name,Player[Map[Player[i].Pos].Holder].Name,Player[i].Name,Map[Player[i].Pos].Price*Map[Player[i].Pos].Count/2);
        Sleep(2000);
        Player[i].Cash=Player[i].Cash-Map[Player[i].Pos].Price*Map[Player[i].Pos].Count/2;
        Player[Map[Player[i].Pos].Holder].Deposit=Player[Map[Player[i].Pos].Holder].Deposit+Map[Player[i].Pos].Price*Map[Player[i].Pos].Count/2;
        if (Player[i].Cash<0) Player[i].Deposit=Player[i].Deposit+Player[i].Cash;
        if (Player[i].Deposit<0) BurstUp(Map,Player,i);
        else
        {
         Command=Command-48;
         ClearScreen();
         if (Player[i].Cash+Player[i].Deposit>=500)
         {
          printf("%s选择抢夺此地!\n\n马上开始与%s战斗...\n",Player[i].Name,Player[Map[Player[i].Pos].Holder].Name);
          Sleep(1000);
          if (Map[Player[i].Pos].Holder<=PlayerCount) Temp=1;
          else Temp=0;
          if (Fight(Player[i].Name,0,Player[Map[Player[i].Pos].Holder].Name,Temp))
          {
           printf("%s成功打倒%s,\"%s\"现归%s所有!\n%s被救护车送进医院抢救,花费$100...\n",Player[i].Name,Player[Map[Player[i].Pos].Holder].Name,Map[Player[i].Pos].Name,Player[i].Name,Player[Map[Player[i].Pos].Holder].Name);
           Sleep(2000);
           Player[Map[Player[i].Pos].Holder].Cash=Player[Map[Player[i].Pos].Holder].Cash-100;
           if (Player[Map[Player[i].Pos].Holder].Cash<0) Player[Map[Player[i].Pos].Holder].Deposit=Player[Map[Player[i].Pos].Holder].Deposit+Player[Map[Player[i].Pos].Holder].Cash;
           if (Player[Map[Player[i].Pos].Holder].Deposit<0) BurstUp(Map,Player,Map[Player[i].Pos].Holder);
           Map[Player[i].Pos].Holder=i;
          }
          else
          {
           printf("%s的抢夺未成功,反被%s打倒...\n%s被救护车送进医院抢救,花费$100...\n",Player[i].Name,Player[j].Name,Player[i].Name);
           Sleep(2000);
           Player[i].Cash=Player[i].Cash-100;
           if (Player[i].Cash<0)
           {
            Player[i].Deposit=Player[j].Deposit+Player[j].Cash;
            Player[i].Cash=0;
           }
           if (Player[i].Deposit<0) BurstUp(Map,Player,i);
          }
         }
        }
       }
      }
   }
  }
 }
}

评论(?)
阅读(?)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
网易公司版权所有 ©1997-2009