【问题标题】:What would be the simplest way to get "the other" of 2 static values?获得 2 个静态值的“另一个”的最简单方法是什么?
【发布时间】:2015-10-21 11:05:29
【问题描述】:

我有一个有 2 个玩家的游戏。它们被称为p1p2。每一回合我都必须在它们之间切换。这就是我现在所做的

var currentPlayer = "p1";
var nextPlayer = (currentPlayer === "p1") ? "p2" : "p1";

但似乎并不优雅。有没有办法从 2 个预定义的值中获取“另一个”。

【问题讨论】:

  • 我认为你的方法很好。这当然很容易理解。
  • 最简单的方法(currentPlayer === "p1") ? "p2" : "p1"; 是最简单,可修改的方式
  • 标题应改为从2个静态值中获取“另一个值”的可能方法是什么?

标签: javascript variables logic


【解决方案1】:

您正在做的是一种非常常见的方法,所以没关系。但如果你想要更优雅的东西,你可以这样做:

var players = ["p1", "p2"];
var playerNum = 0;
var currentPlayer = players[playerNum];
var nextPlayerNum = (playerNum + 1) % players.length;
var nextPlayer = players[nextPlayerNum];

这对于两个玩家来说可能有点过分了。但它很容易推广到任意数量的玩家——只需向players 数组添加更多元素。

players 也可以是一个对象数组,其中包含玩家的所有状态,而不仅仅是他们的名字。

【讨论】:

  • 2x 代码,1/2 可以理解的并不优雅。
  • 它更加模块化,因为它不需要在整个代码中硬编码播放器名称。
  • @Barmar 我不同意,var player1 = 'p1', player2 = 'p2'; var nextPlayer = (currentPlayer === player1) ? player2 : player1; 这不是 模块化
  • 我喜欢这个答案,因为它也适用于三个、四个......玩家,您只需更改玩家数组,您现在甚至可以从服务器获取该数组......
  • @rene OP 只对两个玩家感兴趣。这会给你下一个链中的玩家,而不是另一个
猜你喜欢
  • 2012-07-13
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 2018-09-12
  • 2019-04-21
  • 2019-10-11
  • 2011-03-27
  • 2021-08-28
相关资源
最近更新 更多