编程岩石,纸张,剪刀的选择组合-Javascript
Programming Rock, Paper, Scissors choice combinations - Javascript
如果已经创建了一个主题,请原谅我,但我已经找过了,似乎找不到。
我正试图弄清楚如何在X数量游戏的基础上,获得岩石剪刀选择的每一个可能组合的输出。
有多少可能的结果的方程式很简单-X^Y=结果。
(X的Y次方——其中X等于游戏数量,Y等于选择数量——等于可能的组合数量。)
比方说一个人玩三个游戏:石头、纸、剪刀。这是3^3 = 27
。
如果rock = 1
、scissors = 2
和paper = 3
(我按这个顺序列出了它们,这样它就可以从左到右在哪个节拍上),那么结果是:111,112,113,121,122,123…等等…
但问题是,如何将其输出?对于3^3,我可以做一个外循环,有一个内循环,然后有一个内环。但我需要它是动态的,这样我就可以输入X表示游戏的数量,Y表示选择的数量,并让它返回所有可能的选择组合的数组。所以我想我可以为每列有一个循环(其中列等于游戏数量)。。我只是不确定我会怎么做。
我需要结果在一个数组中,这样我就可以稍后查找某些组合。
有人能帮我吗?
我真正需要的只是逻辑,所以伪代码就可以了。但一个扎实的剧本也很棒。
提前感谢!
我认为这个库解决了您的问题:https://github.com/dankogai/js-combinatorics(脚本:https://raw.githubusercontent.com/dankogai/js-combinatorics/master/combinatorics.js)
您将使用的功能是:
baseN = Combinatorics.baseN([1,2,3], 3);
console.log(baseN.toArray())
其中1、2、3是可能的选项,3是重复次数。这将提供一个由27种不同组合组成的数组,您可以实现这些组合。
var a = ['1', '2', '3', '4']
combine(a,a);
function combine(srcArr, oldArr) {
var newArr = [];
while(oldArr[0].length < srcArr.length)
for(i=0; i<srcArr.length; i++) {
for(j=0; j<oldArr.length; j++) {
newArr.push(oldArr[j] + srcArr[i]);
}
}
combine(srcArr, newArr);
}
}
这是一个递归算法,由起始数组和相同的种子数组启动。在每次函数调用中,都会通过将起始数组的每个成员添加到种子数组的各个成员来创建一个新数组。新数组将成为下一个函数调用的种子数组。您可以通过在if
- 复选框选择组合
- 多个和单个选择/组合框的逻辑
- 在jquery mobile中动态选择组合框
- 从选择/组合 JavaScript 中删除节点
- 选择组合框值
- Angularjs :从列表中选择组合
- 选择组合框后显示复选框
- 编程岩石,纸张,剪刀的选择组合-Javascript
- 将数据输入和下拉选择组合到js中
- 从外部CSV文件填充选择组合框表单
- 角材质链通过从数组中选择组合,形成输入数组
- 根据文本自动选择组合框中的值
- 将输入和选择组合到一个可见的输入字段中
- ExtJS多选择组合框
- Ajax加载复选框后选择组合框- php
- 我如何在html页面中创建日期选择组合框
- 如何选择组合值,点击进入
- 选择组合框数据后的动态文本字段(编码器)
- 如何计算所有可能的选择组合
- 选择组合框值并通过隐藏字段将其发送到下一页