用JavaScript生成一副卡片?

用JavaScript生成一副卡片?,javascript,Javascript,我目前正在尝试建立一个程序,预测各种扑克手的获胜几率。我认为表示每张卡的最佳方法是将其设置为具有两个属性的对象:number和suit。我想我应该把它添加到一个名为deck的数组中,但我不确定生成这副牌的最佳方法是什么?我可以把它们都打出来——或者我可以做一个for循环,调用卡构造函数52次,但是有没有更好的方法…?只是为了好玩,因为我只是有点奇怪,我构建了一个小javascript来创建卡,然后以随机顺序显示它们。我确实使用了jQuery,但这不是必需的 首先定义套装、卡号和存储卡的卡阵列。c

我目前正在尝试建立一个程序,预测各种扑克手的获胜几率。我认为表示每张
卡的最佳方法是将其设置为具有两个属性的对象:
number
suit
。我想我应该把它添加到一个名为
deck
的数组中,但我不确定生成这副牌的最佳方法是什么?我可以把它们都打出来——或者我可以做一个
for循环
,调用
构造函数52次,但是有没有更好的方法…?

只是为了好玩,因为我只是有点奇怪,我构建了一个小javascript来创建卡,然后以随机顺序显示它们。我确实使用了jQuery,但这不是必需的

首先定义套装、卡号和存储卡的卡阵列。count变量用于跟踪下一个屏幕上显示的卡

var suits = ["H","S","C","D"];
var numbers = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"];
var cards = [];
var count = 0;
添加一个洗牌和抽牌按钮以及一个显示牌的位置

<button id="shuffle">Shuffle</button>
<button id="draw">Draw</button>

<div id="cards"></div>
要对卡片进行排序,可以使用自定义排序功能

    cards = cards.sort(function(a,b) {
        return (a.order < b.order ? -1 : 1)
    });
cards=cards.sort(函数a,b){
退货(a订单
最后,显示甲板上的前四个

    for(var i = 0;i < 4;i++) {
        count++;
        dispCard(i);
    }
});
for(变量i=0;i<4;i++){
计数++;
显示卡(i);
}
});
我使用了一个名为dispCard的函数来显示卡

function dispCard(cardNum) {
    var i = cardNum
    var count = cardNum + 1;
    var card = cards[i];
    $("#cards").append(count + " - " + card.number + card.suit + "<br/>");   
}
功能显示卡(cardNum){
变量i=cardNum
var count=cardNum+1;
var卡=卡[i];
$(“#卡片”)。追加(计数+”-“+card.number+card.suit+”
); }
抽签按钮只取下一张卡,如果号码是52,则不做任何操作

$("#draw").click(function() {
    if(count < 52) {
        dispCard(count);
        count++;
    }
    return false;
});
$(“#绘制”)。单击(函数(){
如果(计数<52){
显示卡(计数);
计数++;
}
返回false;
});

这里有一个

只是为了好玩,因为我有点奇怪,我构建了一个小javascript来创建卡片,然后以随机顺序显示它们。我确实使用了jQuery,但这不是必需的

首先定义套装、卡号和存储卡的卡阵列。count变量用于跟踪下一个屏幕上显示的卡

var suits = ["H","S","C","D"];
var numbers = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"];
var cards = [];
var count = 0;
添加一个洗牌和抽牌按钮以及一个显示牌的位置

<button id="shuffle">Shuffle</button>
<button id="draw">Draw</button>

<div id="cards"></div>
要对卡片进行排序,可以使用自定义排序功能

    cards = cards.sort(function(a,b) {
        return (a.order < b.order ? -1 : 1)
    });
cards=cards.sort(函数a,b){
退货(a订单
最后,显示甲板上的前四个

    for(var i = 0;i < 4;i++) {
        count++;
        dispCard(i);
    }
});
for(变量i=0;i<4;i++){
计数++;
显示卡(i);
}
});
我使用了一个名为dispCard的函数来显示卡

function dispCard(cardNum) {
    var i = cardNum
    var count = cardNum + 1;
    var card = cards[i];
    $("#cards").append(count + " - " + card.number + card.suit + "<br/>");   
}
功能显示卡(cardNum){
变量i=cardNum
var count=cardNum+1;
var卡=卡[i];
$(“#卡片”)。追加(计数+”-“+card.number+card.suit+”
); }
抽签按钮只取下一张卡,如果号码是52,则不做任何操作

$("#draw").click(function() {
    if(count < 52) {
        dispCard(count);
        count++;
    }
    return false;
});
$(“#绘制”)。单击(函数(){
如果(计数<52){
显示卡(计数);
计数++;
}
返回false;
});

这里有一个

只是为了好玩,因为我有点奇怪,我构建了一个小javascript来创建卡片,然后以随机顺序显示它们。我确实使用了jQuery,但这不是必需的

首先定义套装、卡号和存储卡的卡阵列。count变量用于跟踪下一个屏幕上显示的卡

var suits = ["H","S","C","D"];
var numbers = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"];
var cards = [];
var count = 0;
添加一个洗牌和抽牌按钮以及一个显示牌的位置

<button id="shuffle">Shuffle</button>
<button id="draw">Draw</button>

<div id="cards"></div>
要对卡片进行排序,可以使用自定义排序功能

    cards = cards.sort(function(a,b) {
        return (a.order < b.order ? -1 : 1)
    });
cards=cards.sort(函数a,b){
退货(a订单
最后,显示甲板上的前四个

    for(var i = 0;i < 4;i++) {
        count++;
        dispCard(i);
    }
});
for(变量i=0;i<4;i++){
计数++;
显示卡(i);
}
});
我使用了一个名为dispCard的函数来显示卡

function dispCard(cardNum) {
    var i = cardNum
    var count = cardNum + 1;
    var card = cards[i];
    $("#cards").append(count + " - " + card.number + card.suit + "<br/>");   
}
功能显示卡(cardNum){
变量i=cardNum
var count=cardNum+1;
var卡=卡[i];
$(“#卡片”)。追加(计数+”-“+card.number+card.suit+”
); }
抽签按钮只取下一张卡,如果号码是52,则不做任何操作

$("#draw").click(function() {
    if(count < 52) {
        dispCard(count);
        count++;
    }
    return false;
});
$(“#绘制”)。单击(函数(){
如果(计数<52){
显示卡(计数);
计数++;
}
返回false;
});

这里有一个

只是为了好玩,因为我有点奇怪,我构建了一个小javascript来创建卡片,然后以随机顺序显示它们。我确实使用了jQuery,但这不是必需的

首先定义套装、卡号和存储卡的卡阵列。count变量用于跟踪下一个屏幕上显示的卡

var suits = ["H","S","C","D"];
var numbers = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"];
var cards = [];
var count = 0;
添加一个洗牌和抽牌按钮以及一个显示牌的位置

<button id="shuffle">Shuffle</button>
<button id="draw">Draw</button>

<div id="cards"></div>
要对卡片进行排序,可以使用自定义排序功能

    cards = cards.sort(function(a,b) {
        return (a.order < b.order ? -1 : 1)
    });
cards=cards.sort(函数a,b){
退货(a订单
最后,显示甲板上的前四个

    for(var i = 0;i < 4;i++) {
        count++;
        dispCard(i);
    }
});
for(变量i=0;i<4;i++){
计数++;
显示卡(i);
}
});
我使用了一个名为dispCard的函数来显示卡

function dispCard(cardNum) {
    var i = cardNum
    var count = cardNum + 1;
    var card = cards[i];
    $("#cards").append(count + " - " + card.number + card.suit + "<br/>");   
}
功能显示卡(cardNum){
变量i=cardNum
var count=cardNum+1;
var卡=卡[i];
$(“#卡片”)。追加(计数+”-“+card.number+card.suit+”
); }
抽签按钮只取下一张卡,如果号码是52,则不做任何操作

$("#draw").click(function() {
    if(count < 52) {
        dispCard(count);
        count++;
    }
    return false;
});
$(“#绘制”)。单击(函数(){
如果(计数<52){
显示卡(计数);
计数++;
}
返回false;
});


这里有一个

我觉得你最后的建议很可靠。只要确保你不重复任何卡片,你就是金色的。用循环生成它们对我来说很好。可能有两个循环。一套一套,一个数字一套。我认为一个foreach循环会是一个更好的解决方案。你的套牌需要随机排列吗?你最后的建议听起来很可靠。只要确保你不重复任何卡,你是金色的