本文整理汇总了C#中HREngine.Bots.Playfield.isEqual方法的典型用法代码示例。如果您正苦于以下问题:C# Playfield.isEqual方法的具体用法?C# Playfield.isEqual怎么用?C# Playfield.isEqual使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HREngine.Bots.Playfield
的用法示例。
在下文中一共展示了Playfield.isEqual方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: updateEverything
public bool updateEverything(Behavior botbase, bool runExtern = false, bool passiveWait = false)
{
this.updateBehaveString(botbase);
ownPlayerController = TritonHs.OurHero.ControllerId;
// create hero + minion data
getHerostuff();
//small fix for not knowing when to mulligan:
if (ownMaxMana == 1 && currentMana == 1 && numMinionsPlayedThisTurn == 0 && cardsPlayedThisTurn == 0)
{
setnewLoggFile();
getHerostuff();
}
getMinions();
getHandcards();
getDecks();
// send ai the data:
Hrtprozis.Instance.clearAll();
Handmanager.Instance.clearAll();
Hrtprozis.Instance.setOwnPlayer(ownPlayerController);
Handmanager.Instance.setOwnPlayer(ownPlayerController);
this.numOptionPlayedThisTurn = 0;
this.numOptionPlayedThisTurn += this.cardsPlayedThisTurn + this.ownHero.numAttacksThisTurn;
foreach (Minion m in this.ownMinions)
{
if (m.Hp >= 1) this.numOptionPlayedThisTurn += m.numAttacksThisTurn;
}
Hrtprozis.Instance.updatePlayer(this.ownMaxMana, this.currentMana, this.cardsPlayedThisTurn, this.numMinionsPlayedThisTurn, this.numOptionPlayedThisTurn, this.ueberladung, ownHero.entitiyID, enemyHero.entitiyID, this.numberMinionsDiedThisTurn, this.ownCurrentOverload, this.enemyOverload, this.heroPowerUsesThisTurn, this.lockandload);
Hrtprozis.Instance.setPlayereffects(this.ownDragonConsort, this.enemyDragonConsort, this.ownLoathebs, this.enemyLoathebs, this.ownMillhouse, this.enemyMillhouse, this.ownKirintor, this.ownPrepa, this.ownsabo, this.enemysabo, this.ownFenciCoaches);
Hrtprozis.Instance.updateSecretStuff(this.ownSecretList, this.enemySecretCount);
Hrtprozis.Instance.updateOwnHero(this.ownHeroWeapon, this.heroWeaponAttack, this.heroWeaponDurability, this.heroname, this.heroAbility, this.ownAbilityisReady, this.ownHero, this.ownHeroPowerUsesThisGame);
Hrtprozis.Instance.updateEnemyHero(this.enemyHeroWeapon, this.enemyWeaponAttack, this.enemyWeaponDurability, this.enemyHeroname, this.enemyMaxMana, this.enemyAbility, this.enemyHero, this.enemyHeroPowerUsesThisGame);
Hrtprozis.Instance.updateMinions(this.ownMinions, this.enemyMinions);
Handmanager.Instance.setHandcards(this.handCards, this.anzcards, this.enemyAnzCards);
Hrtprozis.Instance.updateFatigueStats(this.ownDecksize, this.ownHeroFatigue, this.enemyDecksize,
this.enemyHeroFatigue);
Probabilitymaker.Instance.getEnemySecretGuesses(this.enemySecretList,
Hrtprozis.Instance.heroNametoEnum(this.enemyHeroname));
//learnmode :D
Playfield p = new Playfield();
if (lastpf != null)
{
if (lastpf.isEqualf(p))
{
return false;
}
//board changed we update secrets!
//if(Ai.Instance.nextMoveGuess!=null) Probabilitymaker.Instance.updateSecretList(Ai.Instance.nextMoveGuess.enemySecretList);
Probabilitymaker.Instance.updateSecretList(p, lastpf);
lastpf = p;
}
else
{
lastpf = p;
}
p = new Playfield(); //secrets have updated :D
// calculate stuff
Helpfunctions.Instance.ErrorLog("calculating stuff... " + DateTime.Now.ToString("HH:mm:ss.ffff"));
if (runExtern)
{
Helpfunctions.Instance.logg("recalc-check###########");
if (p.isEqual(Ai.Instance.nextMoveGuess, true))
{
printstuff(p, false);
Ai.Instance.doNextCalcedMove();
}
else
{
printstuff(p, true);
readActionFile(passiveWait);
}
}
else
{
// Drew: This prevents the freeze during AI updates, but no API functions may be called
// during this time!
using (TritonHs.Memory.ReleaseFrame(true))
{
printstuff(p, false);
//Helpfunctions.Instance.logg("middle calculations: " + DateTime.Now.ToString("HH:mm:ss.ffff"));
Ai.Instance.dosomethingclever(botbase);
}
//.........这里部分代码省略.........
示例2: updateEverything
public bool updateEverything(Behavior botbase, bool runExtern = false, bool passiveWait = false)
{
this.updateBehaveString(botbase);
HRPlayer ownPlayer = HRPlayer.GetLocalPlayer();
HRPlayer enemyPlayer = HRPlayer.GetEnemyPlayer();
ownPlayerController = ownPlayer.GetHero().GetControllerId();//ownPlayer.GetHero().GetControllerId()
// create hero + minion data
getHerostuff();
getMinions();
getHandcards();
getDecks();
// send ai the data:
Hrtprozis.Instance.clearAll();
Handmanager.Instance.clearAll();
Hrtprozis.Instance.setOwnPlayer(ownPlayerController);
Handmanager.Instance.setOwnPlayer(ownPlayerController);
this.numOptionPlayedThisTurn = 0;
this.numOptionPlayedThisTurn += this.cardsPlayedThisTurn + this.ownHero.numAttacksThisTurn;
foreach (Minion m in this.ownMinions)
{
if (m.Hp >= 1) this.numOptionPlayedThisTurn += m.numAttacksThisTurn;
}
Hrtprozis.Instance.updatePlayer(this.ownMaxMana, this.currentMana, this.cardsPlayedThisTurn, this.numMinionsPlayedThisTurn, this.numOptionPlayedThisTurn, this.ueberladung, ownPlayer.GetHero().GetEntityId(), enemyPlayer.GetHero().GetEntityId(), this.numberMinionsDiedThisTurn, this.ownCurrentOverload, this.enemyOverload);
Hrtprozis.Instance.setPlayereffects(this.ownDragonConsort, this.enemyDragonConsort, this.ownLoathebs, this.enemyLoathebs, this.ownMillhouse, this.enemyMillhouse, this.ownKirintor, this.ownPrepa);
Hrtprozis.Instance.updateSecretStuff(this.ownSecretList, this.enemySecretCount);
Hrtprozis.Instance.updateOwnHero(this.ownHeroWeapon, this.heroWeaponAttack, this.heroWeaponDurability, this.heroname, this.heroAbility, this.ownAbilityisReady, this.ownHero);
Hrtprozis.Instance.updateEnemyHero(this.enemyHeroWeapon, this.enemyWeaponAttack, this.enemyWeaponDurability, this.enemyHeroname, this.enemyMaxMana, this.enemyAbility, this.enemyHero);
Hrtprozis.Instance.updateMinions(this.ownMinions, this.enemyMinions);
Handmanager.Instance.setHandcards(this.handCards, this.anzcards, this.enemyAnzCards);
Hrtprozis.Instance.updateFatigueStats(this.ownDecksize, this.ownHeroFatigue, this.enemyDecksize, this.enemyHeroFatigue);
Probabilitymaker.Instance.getEnemySecretGuesses(this.enemySecretList, Hrtprozis.Instance.heroNametoEnum(this.enemyHeroname));
//learnmode :D
Playfield p = new Playfield();
if (lastpf != null)
{
if (lastpf.isEqualf(p))
{
return false;
}
//board changed we update secrets!
//if(Ai.Instance.nextMoveGuess!=null) Probabilitymaker.Instance.updateSecretList(Ai.Instance.nextMoveGuess.enemySecretList);
Probabilitymaker.Instance.updateSecretList(p, lastpf);
lastpf = p;
}
else
{
lastpf = p;
}
p = new Playfield();//secrets have updated :D
// calculate stuff
Helpfunctions.Instance.ErrorLog("calculating stuff... " + DateTime.Now.ToString("HH:mm:ss.ffff"));
if (runExtern)
{
Helpfunctions.Instance.logg("recalc-check###########");
//p.printBoard();
//Ai.Instance.nextMoveGuess.printBoard();
if (p.isEqual(Ai.Instance.nextMoveGuess, true))
{
printstuff(false);
Ai.Instance.doNextCalcedMove();
}
else
{
printstuff(true);
readActionFile(passiveWait);
}
}
else
{
printstuff(false);
Ai.Instance.dosomethingclever(botbase);
}
Helpfunctions.Instance.ErrorLog("calculating ended! " + DateTime.Now.ToString("HH:mm:ss.ffff"));
return true;
}
示例3: updateEverything
public bool updateEverything(Behavior botbase, bool quequeActions, bool runExtern = false, bool passiveWait = false, bool nodruidchoice=true)
{
quequeActions = false;
Helpfunctions.Instance.ErrorLog("updateEverything");
this.updateBehaveString(botbase);
ownPlayerController = TritonHs.OurHero.ControllerId;
// create hero + minion data
getHerostuff();
//small fix for not knowing when to mulligan:
if (ownMaxMana == 1 && currentMana == 1 && numMinionsPlayedThisTurn == 0 && cardsPlayedThisTurn == 0)
{
setnewLoggFile();
getHerostuff();
}
getMinions();
getHandcards(nodruidchoice);
getDecks();
correctSpellpower();
// send ai the data:
Hrtprozis.Instance.clearAll();
Handmanager.Instance.clearAll();
Hrtprozis.Instance.setOwnPlayer(ownPlayerController);
Handmanager.Instance.setOwnPlayer(ownPlayerController);
this.numOptionPlayedThisTurn = 0;
this.numOptionPlayedThisTurn += this.cardsPlayedThisTurn + this.ownHero.numAttacksThisTurn;
foreach (Minion m in this.ownMinions)
{
if (m.Hp >= 1) this.numOptionPlayedThisTurn += m.numAttacksThisTurn;
}
Hrtprozis.Instance.updatePlayer(this.ownMaxMana, this.currentMana, this.cardsPlayedThisTurn, this.numMinionsPlayedThisTurn, this.numOptionPlayedThisTurn, this.ueberladung, ownHero.entitiyID, enemyHero.entitiyID, this.numberMinionsDiedThisTurn, this.ownCurrentOverload, this.enemyOverload, this.heroPowerUsesThisTurn,this.lockandload);
Hrtprozis.Instance.setPlayereffects(this.ownDragonConsort, this.enemyDragonConsort, this.ownLoathebs, this.enemyLoathebs, this.ownMillhouse, this.enemyMillhouse, this.ownKirintor, this.ownPrepa, this.ownsabo, this.enemysabo, this.ownFenciCoaches, this.enemyCursedCardsInHand);
Hrtprozis.Instance.updateSecretStuff(this.ownSecretList, this.enemySecretCount);
Hrtprozis.Instance.updateOwnHero(this.ownHeroWeapon, this.heroWeaponAttack, this.heroWeaponDurability, this.heroname, this.heroAbility, this.ownAbilityisReady, this.ownHero, this.ownHeroPowerUsesThisGame);
Hrtprozis.Instance.updateEnemyHero(this.enemyHeroWeapon, this.enemyWeaponAttack, this.enemyWeaponDurability, this.enemyHeroname, this.enemyMaxMana, this.enemyAbility, this.enemyHero, this.enemyHeroPowerUsesThisGame);
Hrtprozis.Instance.updateMinions(this.ownMinions, this.enemyMinions);
Handmanager.Instance.setHandcards(this.handCards, this.anzcards, this.enemyAnzCards, this.choiceCards);
Hrtprozis.Instance.updateFatigueStats(this.ownDecksize, this.ownHeroFatigue, this.enemyDecksize, this.enemyHeroFatigue);
Probabilitymaker.Instance.getEnemySecretGuesses(this.enemySecretList, Hrtprozis.Instance.heroNametoEnum(this.enemyHeroname));
//learnmode :D
Playfield p = new Playfield();
if (lastpf != null)
{
if (lastpf.isEqualf(p))
{
return false;
}
//board changed we update secrets!
//if(Ai.Instance.nextMoveGuess!=null) Probabilitymaker.Instance.updateSecretList(Ai.Instance.nextMoveGuess.enemySecretList);
Probabilitymaker.Instance.updateSecretList(p, lastpf);
}
lastpf = p;
p = new Playfield();//secrets have updated :D
// calculate stuff
/*foreach (Handmanager.Handcard hc in p.owncards)
{
Helpfunctions.Instance.ErrorLog("hc playfield" + hc.manacost + " " + hc.getManaCost(p));
}*/
/*if (quequeActions)
{
// Detect errors in HearthRanger execution of our last set of actions and try to fix it so we don't
// have to re-calculate the entire turn.
Bot currentBot = (Bot)rangerbot;
if (currentBot.numActionsSent > currentBot.numExecsReceived && !p.isEqualf(Ai.Instance.nextMoveGuess))
{
Helpfunctions.Instance.ErrorLog("HR action queue did not complete!");
Helpfunctions.Instance.logg("board state out-of-sync due to action queue!");
if (Ai.Instance.restoreBestMoves(p, currentBot.queuedMoveGuesses))
{
Helpfunctions.Instance.logg("rolled back state to replay queued actions.");
Helpfunctions.Instance.ErrorLog("#queue-rollback#");
}
}
}*/
Helpfunctions.Instance.ErrorLog("calculating stuff... " + DateTime.Now.ToString("HH:mm:ss.ffff"));
//.........这里部分代码省略.........