Jam*_*ell 2 ruby arrays random-sample
在一个战斗计划中,我有一个阵列中的两个玩家:
players = [brad, josh]
Run Code Online (Sandbox Code Playgroud)
我想随机选择两个不同的玩家,其中一个将攻击另一个,示意图如下:
random_player.attack(other_random_player)
Run Code Online (Sandbox Code Playgroud)
我想确保球员永远不会攻击自己.如果我做:
players[rand(0..1)].attack(players[rand(0..1)])
Run Code Online (Sandbox Code Playgroud)
一个玩家有可能会战斗自己.一旦第一个玩家被选中并与阵列中剩余的玩家战斗,我该如何做到这一点?
你可以使用.sample:
match = players.sample(2);
match[0].attack(match[1]);
Run Code Online (Sandbox Code Playgroud)
这将从阵列中随机挑选两名玩家,然后你让他们互相争斗.没有办法同时选择同一个玩家.
更干净:
p1, p2 = players.sample(2)
p1.attack p2
Run Code Online (Sandbox Code Playgroud)