【炉石传说】用c语言编写燃烧权杖模拟器

写在前面 本人是刚开学的大一新生,目前正在学习C语言,文章仅具有纪念成长的意义,若要参考请谨慎。 (这并不是老师的作业)


创作契机

迫切地想要将所学应用于实践,更主要的原因是中午被自己的傻龙翻盘了= = 本文想要写的就是5%最具有戏剧性的燃烧权杖

算法设计

输入双方的血量,进行随机的炎爆(-10血)打击,直到一方血量小于等于0,输出结果。 首先是“随机”,这是超出我目前学习范围的问题。经过我在各大论坛的搜罗,有了通过stdlib.h和time.h头文件生成随机数的办法。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
          
   
    int ran;
    time_t t=time(NULL);
    srand(t);
    ran = rand();      
    return 0;
}

由于随机数过大 有以下办法 ran = rand()%10; 这样可以使生成随机数在0-9之间。自然想到了用0-4和5-9来分别判断对哪一方造成伤害。 其余的循环、输入输出等都已在课上学过。通过循环判断可以实现程序。 此外,还需要借助windows.h头文件下的Sleep来实现暂停一秒,括号内单位为毫秒。 Sleep(1000); 再加一点皮的东西,完整程序如下:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int main() {
          
   
    int a,b,ran,x,y;
    printf("傻龙燃烧权杖模拟器
请输入我方血量和敌方血量:");
    time_t t=time(NULL);
    srand(t);
    scanf("%d",&x);
    scanf("%d",&y);
    if(x>y)
        printf("不会吧不会吧 不会有人血比别人多还打不死对面吧
");
    Sleep(1000);
    while(x>0&&y>0)
        {
          
   
            ran = rand()%10;
            if(ran<5)
                    {
          
   x-=10;printf("%d  %d
",x,y);}
            if(ran>=5)
                    {
          
   y-=10;printf("%d  %d
",x,y);}
            Sleep(1000);
        }
    if (x<=0)
        printf("你没了,对面还剩%d血
真的是个大笨蛋
",y);
    if (y<=0)
        printf("对面没了,你还剩%d血",x);
    return 0;
}

总结

作为刚刚开始学习的大学生,我很高兴可以写出自己第一个测试欧非(?)的程序。 很欢迎各位大佬来帮忙斧正,改进,指导我,不胜感激。希望各位看到这篇文章的可以见证我的成长,共同进步。 编程人,编程魂,编程都是人上人。👻

经验分享 程序员 微信小程序 职场和发展