javascript - 如何显示数组中的随机值?
问题描述
我对javascript相当陌生,并且在制作程序时遇到了一些麻烦。我希望程序询问用户他们想从一副牌中抽取多少张牌,但我需要帮助让我的程序输入最终选择了每个套件的多少张牌。
var NUM = readInt("How many cards will you draw from the deck?");
var RANDOM = Randomizer.nextBoolean();
var DIAMONDS = "Diamonds";
var HEARTS = "Hearts";
var SPADES = "Spades";
var CLUBS = "Clubs";
function start(){
var take = takeCard();
printArray(take);
countCards(take);
}
// This function will pick a random card from the deck.
//Needs Work
function takeCard(){
var pick = [];
for(var i = 0; i < NUM; i++){
if(Randomizer.nextBoolean()){
pick.push(DIAMONDS);
}else{
pick.push(HEARTS);
pick.push(SPADES);
pick.push(CLUBS);
}
}
return pick;
}
// Displays the array
function printArray(arr){
for(var i = 0; i < arr.length; i++){
println("Flip Number " + (i+1) + ": " + arr[i]);
}
}
//Counts the number of Cards in each suite
//Needs Work
function countCards(take){
var countOne = 0;
var countTwo = 0;
var countThree = 0;
var countFour = 0;
for(var i = 0; i < take.length; i++){
if(take[i] == "Heads"){
countOne++;
} else {
countTwo++;
}
}
println("Number of Diamonds: " + countOne);
println("Number of Hearts: " + countTwo);
println("Number of Spades: " + countThree);
println("Number of Clubs: " + countFour);
}
解决方案
这看起来像家庭作业,所以我不会给你一个完整的工作解决方案,而是解释如何分解它并让你编写代码。
您应该从生成一整副牌开始。有 4 套花色,每套花色有 13 张牌。所以这就像 2 个循环一样简单(一个用于花色,一个用于卡片)。将每张卡片推入一个数组,最终得到一个包含 52 个元素的数组
然后洗牌。最简单的方法是使用一种称为“Fisher-Yates shuffle”的方法。您可以在此处了解如何在 javascript 中执行此操作:如何随机化(随机播放)JavaScript 数组?
然后,您询问用户有多少张卡片,然后简单地使用Array.splice
.
最后,你循环遍历你提取的那组,计算不同的花色。
推荐阅读
- gradle - 我可以在不构建特定项目的情况下拥有 gradle 缓存依赖项吗
- javascript - 免费的 jqgrid 不会在 Edges 上重新加载数据
- python - 如何停止或结束一个线程然后重新启动它?
- c++ - 结合静态和动态多态的工厂方法
- javascript - Vue:未捕获的参考:未定义函数
- swiftui - 尝试创建多屏流时,SwiftUI“推送”NavigationView/NavigationLink 不起作用
- function - 如何在帕斯卡中看到 VMT?
- python - 在 Discord Python 中等待后台反应
- c# - 添加谷歌插件后版本更改时 Unity Gradle 构建失败
- powershell - 返回值时如何避免捕获标准输出