c语言学习日记--结构体的综合应用,红蓝buff小程序

/*
 * @Author: your name
 * @Date: 2021-03-18 16:33:29
 * @LastEditTime: 2021-03-19 09:28:02
 * @LastEditors: your name
 * @Description: In User Settings Edit
 * @FilePath: \YueQianC_Daima.1\3.18\6.c
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef enum Color    //枚举函数
{
    red = 0,//栈空间
    blue = 1//栈空间
} color;
//红buff
typedef struct red
{

    int hit;         //伤害          
    color color;     //颜色
    int RecoverLife; //生命恢复

    /* data */
}S_R, *S_P;
//蓝buff
typedef struct blue
{
    int cooling;     //冷却
    color color;     //颜色
    int RecoverMana; //法力恢复   
}S_B, *S_q;
// 两种buff只能选择一种
typedef union buff              //联合函数
{
    S_R red;

    S_B blue;
    /* data */
}buf,*buff;
buff level_red(buff r, int i);
buff level_blue(buff b, int i);

int main()
{
    int mask = 0; //判断红蓝,0=红,1=蓝         //常量区

    buff r=(buff)malloc(sizeof(buf));//堆空间
                                                      //malloc在这里
    buff b=(buff)malloc(sizeof(buf));//堆空间
    

    int level;                                 //常量区
    printf("红buff按0,蓝buff,按1");
    scanf("%d", &mask);
    printf("输入你想要的buff等级");
    scanf("%d", &level);
    if (mask == 0)
    {
        level_red(r, level);
        r=level_red(r, level);
        printf("获得红buff\n伤害:%4d\n颜色:%4d\n生命恢复:%4d\n",
            r->red.hit,
            r->red.color, 
            r->red.RecoverLife);
            
            }
    else if (mask == 1)
    {
        level_blue(b, level);
        b=level_blue(b, level);
        printf("获得蓝buff\n冷却:%4d\n颜色:%4d\n法力恢复:%4d\n",
            b->blue.cooling,
            b->blue.color, 
            b->blue.RecoverMana);
    }
    else
    {
        printf("input error!");
    }
    free(r);
    free(b);
    return 0;
}


//红蓝buff等级计算方式
buff level_red(buff r, int i)           //栈空间
{


    r->red.hit = 15 * i;        //每一级的伤害按照15的倍数翻倍
    r->red.RecoverLife = 5 * i; //每级的回血按照5翻倍
    r->red.color = 0;         //红色buff的颜色为红
    return r;
}

buff level_blue(buff b, int i)       //栈空间
{


    b->blue.cooling = 3 * i;     //每一级的伤害按照3的倍数翻倍          
    b->blue.RecoverMana = 5 * i; //每级的回蓝按照5翻倍
    b->blue.color = 1;        //红色buff的颜色为红
    return b;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值