随机函数
使用时间做种子,产生不一样的随机数字
srand rand---取值范围0-32767
若没有rand 则产生一样的随机数字
---要导入一个头文件 #include <time.h>
---- sand(time(NULL));----必须大写
printf("随机数字: %d\n", rand);
--------------------------------------------
rand() % 10 ---模10即取个位上的数 取值范围0-9
所以在拳皇设计中 要使攻击力在5-15之间 应该 rand () % 11 + 5
---------
取值的算法模板---取 a-b的值 rand() % (b-a+1) + a---max-min+1 +min
------------------
printf("**************************\n")-----------表示每次攻击都是如下情况
----------------------
-----------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int main()
{
///使用时间作为种子,产生不一样的随机数字
srand(time(NULL));
printf("随机数字: %d\n", rand());
int hp1 = 100, hp2 = 100;///1p 2p初始血量
int att1, att2;
int i = 0; ///对战的轮数
while (hp1 >= 0 && hp2 >= 0)///当两个玩家都活着的时候,继续对战
{
///默认1p先攻击
att1 = rand() % 11 + 5;
if(att1 == 15)///暴击
att1 *= 2;///让攻击变为原来的两倍
att2 = rand() % 11 + 5;
///玩家1攻击,玩家2掉血
hp2 -= att1;
///玩家2攻击,玩家1掉血
hp1 -= att2;
///建议两人打完后,立即用if判断血量少于0的,为输
if(hp1 < 0 || hp2 < 0);
printf("1p胜利,2p胜利", hp1 < 0, hp2 < 0);
printf("**************\n");///可不要
printf("第%d轮: \n", i + 1);
printf("玩家1的攻击力: %d,玩家2的血量: %d\n", att1, hp2);
printf("玩家2的攻击力: %d,玩家1的血量: %d\n", att2, hp1);
printf("**************\n");///可不要
i++;
Sleep(1000);///休眠1000毫秒,即1000毫秒显示一轮
break;///用来对if循环结束,若在某轮后,hp1 或者 hp2 <0,则程序结束
}
printf("ko!游戏结束, 玩家1的血量: %d\t玩家2的血量: %d\n", hp1, hp2);
}
----------------------
可在后加sleep(); 设置每隔多少毫秒显示一轮
若使用Sleep函数(Sleep必须首字母大写),则在头文件加#include <windows.h>
在循环开始前可定义一个变量 int i =0; ///对战的轮数
在显示轮数前加一个printf("第%d轮: \n", i + 1);
然后在每轮结束时写一个i++;
--------------------------------------