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