代码如下,在SilverFish\SilverFish\ai\Playfield.cs文件中

public void callKid(CardDB.Card c, int zonepos, bool own, bool spawnKid = true, bool oneMoreIsAllowed = false)
{ int allowed = ;
allowed += (oneMoreIsAllowed) ? : ; if (own)
{
if (this.ownMinions.Count >= allowed)
{
if (spawnKid) this.evaluatePenality += ;
else this.evaluatePenality += ;
return;
}
}
else
{
if (this.enemyMinions.Count >= allowed)
{
if (spawnKid) this.evaluatePenality -= ;
else this.evaluatePenality -= ;
return;
}
}
int mobplace = zonepos + ; //create minion (+triggers)
Handmanager.Handcard hc = new Handmanager.Handcard(c) { entity = this.getNextEntity() };
Minion m = createNewMinion(hc, mobplace, own);
//put it on battle field (+triggers)
addMinionToBattlefield(m); }

虚空领主为例子

Voidlord
虚空领主
{
"Entity": {
"CardId": "LOOT_368",

"LocStringZhCn": "<b>嘲讽,亡语:</b>\n召唤三个1/3并具有<b>嘲讽</b>的恶魔。",

"LocStringEnUs": "[x]<b>Taunt</b>\n <b>Deathrattle:</b> Summon three\n1/3 Demons with <b>Taunt</b>.",

情况分析,

假如场上已经有7个随从了,那么虚空领主死亡,只能召唤1个随从。

假如场上已经有6个随从了,那么虚空领主死亡,只能召唤2个随从。

假如场上已经有5个或者更少的随从,那么虚空领主死亡,可以召唤3个随从。

虚空领主的simulation实现在github上

https://github.com/ChuckHearthBuddy/SilverFish/blob/master/SilverFish/cards/LOOT/Sim_LOOT_368.cs

另外,CallKid函数需要加上注释

/// <summary>
///
/// </summary>
/// <param name="card"></param>
/// <param name="zonePosition"></param>
/// <param name="own"></param>
/// <param name="spawnKid">call kid triggered by another minion</param>
/// <param name="oneMoreIsAllowed">for deathrattle minion to call kid(such as Voidlord)</param>
public void CallKid(CardDB.Card card, int zonePosition, bool own, bool spawnKid = true, bool oneMoreIsAllowed = false)
{ int allowed = ;
allowed += (oneMoreIsAllowed) ? : ; if (own)
{
if (this.ownMinions.Count >= allowed)
{
if (spawnKid) this.evaluatePenality += ;
else this.evaluatePenality += ;
return;
}
}
else
{
if (this.enemyMinions.Count >= allowed)
{
if (spawnKid) this.evaluatePenality -= ;
else this.evaluatePenality -= ;
return;
}
}
int mobplace = zonePosition + ; //create minion (+triggers)
Handmanager.Handcard hc = new Handmanager.Handcard(card)
{
entity = this.getNextEntity()
};
Minion m = createNewMinion(hc, mobplace, own);
//put it on battle field (+triggers)
addMinionToBattlefield(m); }

HearthBuddy 召唤随从的问题的更多相关文章

  1. ccf-20160903--炉石传说

    本题思路如下图: 题目和代码如下: 问题描述 试题编号: 201609-3 试题名称: 炉石传说 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 <炉石传说:魔兽英雄传& ...

  2. CCF2016093炉石传说(C语言版)

    问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示).游戏在一个战斗棋盘上进行 ...

  3. 山东省第七届ACM竞赛 J题 Execution of Paladin (题意啊)

    题意:鱼人是炉石里的一支强大种族,在探险者协会里,圣骑士有了一张新牌,叫亡者归来,效果是召唤本轮游戏中7个已死鱼人.如果死掉的不足7个,那么召唤的数量就会不足7. 鱼人有很多,下面的4个是: 寒光智者 ...

  4. CCF CSP 201609-3 炉石传说

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...

  5. CCF 炉石传说(模拟)

    试题编号: 201612-3 试题名称: 炉石传说 时间限制: 1.0s 内存限制: 256.0MB 问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Wa ...

  6. ccf-201609-3 炉石传说

    问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示).游戏在一个战斗棋盘上进行 ...

  7. [bzoj4832][Lydsy1704月赛]抵制克苏恩

    题目大意:有一个英雄和若干个所从,克苏恩会攻击$K$次,每次回随机攻击对方的一个人,造成$1$的伤害.现在对方有一名克苏恩,你有一些随从.如果克苏恩攻击了你的一名随从,若这名随从不死且你的随从数量不到 ...

  8. 趣味ACM题——圣骑士的斩杀

    题目来源于山东省第七届ACM大学生程序设计竞赛(Execution of Paladin) 题目描述 鱼人是炉石里的一支强大种族,在探险者协会里,圣骑士有了一张新牌,叫亡者归来,效果是召唤本轮游戏中7 ...

  9. CSP-201609-3 炉石传说

    问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示).游戏在一个战斗棋盘上进行 ...

随机推荐

  1. react中key值的理解

    react利用key来识别组件,它是一种身份标识标识,相同的key react认为是同一个组件,这样后续相同的key对应组件都不会被创建有了key属性后,就可以与组件建立了一种对应关系,react根据 ...

  2. Flutter中的替换路由、返回到根路由

    替换路由 当我们有三个页面,页面1,页面2,页面3. 期望点击页面1按钮,跳转到页面2,页面2点击返回,跳转到页面1: 点击页面2按钮,跳转到页面3,页面3点击返回,跳转到页面1,而不是页面2. 这时 ...

  3. replace函数实现

    ##replace函数,跟split函数处理类似,比split简单 #coding=gbk ss='** *axx* *bv** *ctt** **dff***' print(ss) result=[ ...

  4. 剑指Offer的学习笔记(C#篇)-- 翻转单词的序列

    题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“student ...

  5. PhpStudy升级MySQL版本到5.7

    1:备份当前数据库数据. 最好是导成 SQL 文件 2:备份 PhpStudy 下的 MySQL 文件夹.以防升级失败.还可以使用旧版本的数据库 3:下载MySQL5.7.解压.然后放在 PhpStu ...

  6. vs2008重置方法

    开始->Microsoft Visual Studio 2008->Visual Studio Tools->Visual Studio 2008 命令提示 然后依次键入如下命令: ...

  7. 类似于ORACLE decode 的用法

    SQL Server 2008中的写法:select t.PROJECTNAME, t.BUILDCONTENTSCALE,  CASE t.PROJECTLEVEL      WHEN '0' TH ...

  8. java后台实体类设置默认值

    private String orderPrice;//定义类的属性 /* * get set方法 * String.trim() 返回字符串的副本,忽略前导空白和尾部空白. */ public St ...

  9. Django 数据库mysql到models的映射方法

    Django自动生成models 如果数据库表已经存在,执行命令,可以自动生成Models模型,实现models与数据表的映射 >>> python manage.py inspec ...

  10. 浅析pagehelper分页原理(转)

    之前项目一直使用的是普元框架,最近公司项目搭建了新框架,主要是由公司的大佬搭建的,以springboot为基础.为了多学习点东西,我也模仿他搭了一套自己的框架,但是在完成分页功能的时候,确遇到了问题. ...