玩家对战和星星塔--(随机时间,while循环,for循环)

此代码有随机时间的使用,以及while循环

  #include <stdio.h> 
    #include <time.h>   //time() 
    #include <windows.h>//Sleep()休眠 
    
    int main()
    {
       srand(time(NULL));//使用时间作为种子,产生随机数字
       printf("随机数字: %d\n",rand());//rand()函数的取值范围是0-32767
       /*使用循环模拟实现玩家对战
         双方初始HP为100
    	 每次攻击5-15
    	 HP最先为零或复制被KO
        */
        int hp1=100,hp2=100;//两个玩家血量初始化 
        int att1,att2; //两个玩家攻击力 
        int i=0;
        while( hp1 >= 0 && hp2 >= 0)//当都生存时,继续对战
    	{
    	   //默认1p先攻击
    	   att1 = rand() % 11 + 5; //攻击力在5-15之间
    	   att2 = rand() % 11 + 5; 
    	      i++;
    	   //玩家1攻击,玩家2掉血
    	   hp2 -=att1;
    	   //玩家2攻击,玩家1掉血
    	   hp1 -=att2;
    	   if(hp1<=0)
    	   {
    	   	printf("玩家1输,玩家2剩余血量:%d\n",hp2);break; 
    	   }
    	    if(hp2<=0)
    	   {
    	   	printf("玩家2输,玩家1剩余血量:%d\n",hp1); break;
    	   }
    	   printf("第%d轮\n",i);
    	   printf("************************************\n");
    	   printf("玩家1攻击力: %d,玩家2剩余血量: %d\n",att1,hp2);
    	   printf("玩家2攻击力: %d,玩家1剩余血量: %d\n",att2,hp1);
    	   printf("************************************\n\n");
           Sleep(1000);//休眠1000毫秒 
           
    }    
    printf("KO\n玩家1的血量:%d 玩家2的血量:%d",hp1,hp2);
    }

此代码实现了星星塔的输出,运用for循环及星星塔中‘ ’和‘*’的关系规律

#include <stdio.h>
int main()
{
	int i;
    int j;
    int k;
    int num;
    for(;;)
    {
        printf("请输入你的星星塔层数:");
        scanf("%d",&num);
        if(num > 0)
        {
            break;
        }
        printf("不符合输入要求,请重新输入\n");
    }
    for(i = 0;i < num;i ++)
    {
        for(k =0; k < (num - 1) - i;k++)  
        {
            printf(" ");
        }
        for(j = 0; j <= 2 * i;j ++)
        {
            printf("*");
        }
        printf("\n");
    }
    for(i = 0;i < num - 1;i++)
    {
        for(k = 0;k < i + 1;k ++)
        {
            printf(" ");
        }
        for(j =0 ; j<=(num * 2 - 1) - 3 - ( i * 2) ;j++)  //(2 * num)+1 -(i + 1) * 2 - 3
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值