zoukankan      html  css  js  c++  java
  • P7610 [THUPC2021] 群星连结

    新鲜题解出炉~

    大模拟自然是很难写的,但此题比猪国杀要简单许多,没什么坑点,从码量上就可以看出,但我写了将近一天(可见码力之弱)。

    主要讲讲怎么尽量做到思路清晰而节省时间地做这类题目吧,也总结一下我策略上的问题。


    首先通读全文,技能天赋主要看一下有哪些形式

    因为只有两个玩家,有两种选择:

    • 用名字来命名。
    • (0/1) 来表示。

    考虑到两个玩家之间的互动是完全一样的,所以前者会大大增加码量,肯定得选择后者。

    最先搞定角色的属性

    接着先别着急写具体技能,先将主要框架罗列出来:

    • 能发动技能就发动技能。
    • 发动不了技能就发动普通攻击。
    • 己方行动结束后的结算。
    • 一回合结束后的结算。

    然后再着手那些花里胡哨的东西。观察到所有攻击类型都是伤害真实伤害的组合,于是可以写一个函数来计算生命值扣除

    在写剩下的东西之前一定要明确各种附加事件发生的时间结点

    普通攻击最好和技能分开来写,天赋建议先于技能大致写好。

    能量值加成和其余加成略有不同,前者不光需要差分还需要前缀和。

    然后就基本做完了,中二技能需要特别注意一下不然会获得 (99pts) 的高分。

    最后有一点建议:死亡角色不要干任何事情,建议在所有地方都判掉。虽然非生命值修改了也没关系但会导致代码非常混乱,调试也可能受影响。

    多多静态查错,实在不行了再去下载数据,和标程对比哪一步出了问题。

    我的问题就是,写代码的时候脑子比较晕,加之有些值很类似导致写出了一大堆锅。所以保持良好的状态写代码远比花费大量时间调试有效。

    代码在云剪切板

    推广一下

  • 相关阅读:
    iOS推送通知
    KVO内部实现原理
    沙盒目录结构
    UITableView的常用属性和代理方法
    优秀文章的链接
    c++面试题
    递归练习
    c#连接mysql环境配置
    mysql命令详解
    十进制转二进制
  • 原文地址:https://www.cnblogs.com/May-2nd/p/14883821.html
Copyright © 2011-2022 走看看