C语言模拟海战

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()

  int flag=0,i,percent,temp;
  int choice;
  int user_sum=0,com_sum=0;
  int user[10]={0};
  int com[10]={0};
  int s[3]={0};
  int *p_user=user,*p_com=com,*p_s=s;
   srand((unsigned)time(NULL));
  while(1){
    user_sum=0;com_sum=0;
head:
     printf("\033[31m1->attck\n");                //选择界面
    printf("2->fallback\n");
    printf("input your choice:\033[0m");
    scanf("%d",&choice);
    getchar();
   if(choice!=1&&choice!=2) 
      { 
        printf("please input again:");
        goto head;
      }
   switch(choice)          
   { 
    case  1:                                           //进攻模式
           for(i=0;i<3;i++)         //user  产生三发炮弹攻击玩家
             {
              *(p_s+i) = rand()%10;
              *(p_user+*(p_s+i)) =1;    
            }
            printf("user:    ");
           for(i=0;i<10;i++)        //user_boat   // 输出船受伤的样子
           { if(*(p_user+i)==0)printf("#");
             else  printf("0");
            }
           printf("\n");   
          for(i=0;i<10;i++) 
          {
            user_sum=user_sum+*(p_user+i);    
          }
          printf("the part be destroyed:%d%%\n",user_sum*10);          //船的受损状况


           for(i=0;i<3;i++)   //computer             产生三发炮弹攻击电脑的船只
            {
    *(p_s+i) = rand()%10;
    *(p_com+*(p_s+i)) =1;    
     }
            printf("computer:");
    for(i=0;i<10;i++)                            //输出电脑船受伤的样子
      { if(*(p_com+i)==0)  printf("#");
             else printf("0");
           }
           printf("\n"); 
            
          for(i=0;i<10;i++)                                             
          {
           com_sum=com_sum+*(p_com+i);    
          }                                            
          printf("the part be destroyed:%d%%\n",com_sum*10);  //输出电脑船的受损状况
          temp=com_sum;            break; 
               
     case 2:
             percent=rand()%10;                                    //生成50%逃跑几率
            if(percent>=0&&percent<=4) 
          { 
           printf("running failed!\n");
             
           for(i=0;i<3;i++)   //user
            {
    *(p_s+i) = rand()%10;
    *(p_user+*(p_s+i)) =1;    
     }
            printf("user:    ");
    for(i=0;i<10;i++)
       {if(*(p_user+i)==0) printf("#");
              else printf("0");}
           printf("\n"); 
            
          for(i=0;i<10;i++)
          {
           user_sum=user_sum+*(p_user+i);    
          }
          printf("the part be destroyed:%d%%\n",user_sum*10);
         


            printf("computer:");
           for(i=0;i<10;i++)
            {  if(*(p_com+i)==0)printf("#");
               else printf("0");    
             }
           printf("\n");     
          printf("the part be destroyed:%d%%\n",temp*10);              
       }   
         else {printf("running succeed!\n");flag=1;break;}
                   break;
   } //switch
     if(flag==1) {printf("game over!\n");break;}                             //判断逃跑成功,结束游戏
     if(user_sum>=10&&com_sum>=10)                   
               {    
                   printf("game draw!\n");break;                                      //平局
               } 
     else   if(user_sum>=10)
              { printf("computer win!\n");break;                                  //电脑赢
              }
     else   if(com_sum>=10) 
              { 
                printf("user win!\n");break;                                                 //玩家赢
              }
  } //while 

}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值