javascript 列出可能的组合和解决方案,并根据所选方案设置另一个变量

gajydyqb  于 2023-01-01  发布在  Java
关注(0)|答案(1)|浏览(148)

我可能用词很奇怪
我正在做一个网络应用程序来跟踪一个游戏中的杀戮效果,我和学校里的一些朋友玩这个游戏。在游戏中有多种类型的“刺客”,有时会在杀戮时产生不同的效果。这有时会让人困惑,所以我试图做一些东西,你可以输入这两种类型,它会给予相应的杀戮效果。我我试过只得到一对的结果作为概念证明,但是数量太多(144个组合!!!!),为每个组合单独创建一个函数显然不是一个好办法。有没有办法可以列出组合(例如:a = "Classic", v = "Poison", outcome = "Victim is eliminated, attacker receives 2 day death countdown"),然后使用此列表,从变量中获取攻击者和受害者类,并将第三个变量设置为该对的结果?
当我创建一个测试函数时使用的代码是

function checkSelection(attackerClass, victimClass) {
    // Check if the selectedAttacker is 'Classic' and the selectedVictim is 'Oxford'
    if (attackerClass === 'Classic' && victimClass === 'Oxford') {
      // Get the result element
      const result = document.querySelector('#outcome');
  
   
      result.textContent = 'No special effect';
    }
  }
  
  let attackerSel = document.querySelector('#attackerSel')
  let victimSel = document.querySelector('#victimSel')
  attackerSel.addEventListener('change', function(){
    var attacker = this.value;
    return attacker;
  })
  console.log(attacker)
  
  setInterval(checkSelection(attacker, victim), 5)

我想我在变量作用域上犯了一个错误,但我不认为这有什么关系,因为我不打算创建144个不同的版本

gopyfrb3

gopyfrb31#

使用攻击者和受害者的值在一个对象中构建一个键,它会给你你需要的结果,怎么样?

const outcomeMap = {
  'Classic-Oxford': 'No special effect',
  'Classic-Poison': 'Victim is eliminated, attacker receives 2 day death countdown',
  'Piano-Oxford': 'The royal musical society takes out a bounty on attacker',
  'Piano-Poison': 'Victim is poisoned, 2 day death countdown',
};

const attackerSel = document.querySelector('#attackerSel');
const victimSel = document.querySelector('#victimSel');
const outcomeEle = document.querySelector('#outcome');

function checkSelection() {
  const attackerClass = attackerSel.value;
  const victimClass = victimSel.value;
  outcomeEle.textContent = outcomeMap[attackerClass + '-' + victimClass] || 'Not found';
}

attackerSel.addEventListener('change', checkSelection);
victimSel.addEventListener('change', checkSelection);
<form>
  <select id="attackerSel">
    <option value=""></option>
    <option value="Classic">Classic</option>
    <option value="Piano">Piano</option>
  </select>
  <select id="victimSel">
    <option value=""></option>
    <option value="Oxford">Oxford</option>
    <option value="Poison">Poison</option>
  </select>
</form>

<div id="outcome"></div>

相关问题