• PlantsVsZombies_1


    第一版,攻击僵尸函数有严重问题。

    #include <stdio.h>
    #include <string.h>
    #include "api.h"
    #include "PlantsVsZombies.h"
    
    EndSysInfo sysBaseInfo = {0};
    
    int grassArray[2][10] = {0};//标记草地是否可种植
    int zombieLife[2][10] = {3};//标记僵尸的生命值
    int tempFlag = 0;//如果是刚产生的僵尸,下1h才能移动,标记为0表示没产生,为1表示产生
    
    void main(int argc, char* argv[])
    {
        CmdReset(); 
        /* 
        启动Socket服务侦听5555端口(sapi_server_start函数在lib库已实现)。
        lib库已实现从Socket接收到字符串后的命令分发处理;
        */
        api_server_start(argc, argv);
        // 此处不会执行到,注意不要在此处添加代码
    }
    
    /*****************************************************************************
     函 数 名  : CmdReset
     功能描述  : 考生自行实现,实现系统初始化
     输入参数  : 无
     输出参数  : 无
     返 回 值  : 无
     调用函数  : 
     被调函数  : 
     
     修改历史      :
      1.日    期   : 2009年9月9日
        作    者   : 
        修改内容   : 新生成函数
    
    *****************************************************************************/
    void CmdReset()
    {
        sysBaseInfo.endTime = 0;
        sysBaseInfo.sysSun = 200;
        sysBaseInfo.sysGold = SYS_GOLD_INIT;
        sysBaseInfo.sunflowerNum = 0;
        sysBaseInfo.diedSunflowerNum = 0;
        sysBaseInfo.beanshooterNum = 0;
        sysBaseInfo.diedBeanshooterNum = 0;
        sysBaseInfo.commonZombieNum = 0;
        sysBaseInfo.ironZombieNum = 0;
        sysBaseInfo.diedCommonZombieNum = 0;
        sysBaseInfo.diedIronZombieNum = 0;
    
        for(int i = 0; i < 2; i++)
        {
            for(int j = 0; j < 10; j++)
            {
                grassArray[i][j] = 0;
                zombieLife[i][j] = 3;
            }
        }
        api_defendsys_ret(OP_E_INIT_SUCCESS);
        return;
    }
    
    /**
        收集阳光
    */
    void collectSun()
    {
        for(int i = 0; i < sysBaseInfo.sunflowerNum; i++)
        {
            if(sysBaseInfo.sysSun < SYS_SUN_UP_LIMIT_NUM)
            {
                sysBaseInfo.sysSun += SUN_SELECTED;
            }
    
            if(sysBaseInfo.sysSun > SYS_SUN_UP_LIMIT_NUM)
            {
                sysBaseInfo.sysSun = SYS_SUN_UP_LIMIT_NUM;
            }                
        }
    }
    
    /**
        产生僵尸
    */
    void generateZombie(int curTime)
    {
        if(curTime%2 == 0)
        {
            grassArray[0][9] = COMMON_ZOMBIE;
            grassArray[1][9] = COMMON_ZOMBIE;
            sysBaseInfo.commonZombieNum += 2;
            tempFlag = 1;
        }
        tempFlag = 0;
    }
    
    /**
        攻击僵尸
    */
    void attackZombie()
    {
        for(int k = 0; k < 2; k++)
        {
            for(int i =0; i < 9;i++)
            {
                if(grassArray[k][i] == BEAN_SHOOTER)
                {
                    for(int j=i; j < 10;j++)
                    {
                        if(grassArray[k][j] == COMMON_ZOMBIE)
                        {
                            if(zombieLife[k][j] > 1)
                            {
                                zombieLife[k][j] -= 1;
                                break;
                            }
                            else if(zombieLife[k][j] == 1)
                            {
                                zombieLife[k][j] -= 1;
                                sysBaseInfo.commonZombieNum -= 1;
                                sysBaseInfo.diedCommonZombieNum += 1;
                                grassArray[k][j] = NOTHING;
                            }
                        }
                    }
                }
            }
        }
    }
    
    
  • 相关阅读:
    IE8上传插件jquery-form.js上传请求参数设置type为post失效问题
    路径参数汉字兼容问题
    vue-cli2移动端适配
    事件委托原生、jQuery实现
    new Date()在移动端的问题
    create-react-app配置less
    删除左右两边空格
    日期转换
    Git 常用命令
    单页面应用
  • 原文地址:https://www.cnblogs.com/liuzc/p/6517552.html
Copyright © 2020-2023  润新知