💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
可是,弃掉其他角色的牌未免有些浪费,本着勤俭节约的原则,我们决心将弃牌改成获得牌,让卡牌可以循环利用。这主意不错吧? </br>所以前面那个引渡的技能,就被我们改成了: “引渡:每当你对一名角色造成一次伤害后,你可以获得其一张牌,然后该角色摸两张牌。”(编者:看到没?我们要开始收学费了!) </br>获得卡牌的方法和弃置的方法类似,只需要把弃置所用到的throwCard改成获得所用的函数就行了。这个函数就是那Room的成员函数obtainCard,它的原型是: ``` obtainCard(target, card, unhide=true) obtainCard(target, card_id, unhide=true) obtainCard(target, card, reason, unhide=true) ``` ![](https://img.kancloud.cn/82/70/827010551b36def787930557f1a2a225_1078x67.png) </br>其中: 1. `target`表示获得牌的目标角色,规定了这张牌最后会到谁那里去。 2. `card`表示被获得的卡牌对象本身;类似地,`card_id`表示卡牌编号。 3. `unhide`表示在整个获得牌的过程中,卡牌的朝向。填true就是正面朝上获得,大家都能看到这是什么牌;填false就是背面朝上了,只有刚才那个`target`才可以看牌。默认是填true的,也就是正面向上获得。 4. `reason`表示获得卡牌的原因。 </br>由于之前我们已经获得了被选中的牌的编号,所以这里我们就用第二个原型就可以了。 </br>引渡是一个光明正大的事业,还是不藏着掖着了,`unhide`就填true吧。 </br>所以代码就变成了这个样子: ![](https://img.kancloud.cn/69/c5/69c507113cfa0a1ce37356f86da2bc40_649x159.png) </br>效果如下: ![](https://img.kancloud.cn/da/f6/daf601d9e7a44a59d7ea5beeddbb61a0_222x157.png) </br>达到了我们的目的。