标签: playing-cards

用于建模纸牌游戏的现成Javascript库?

MVC'架构'.我想要一种方便的方法来指定纸牌游戏的规则,包括诸如手或技巧,得分,使用牌组或包中的哪些牌等等.有没有人知道这样的事情,最好是在Javascript中?

谢谢你的指导.

javascript python model-view-controller game-engine playing-cards

5
推荐指数
1
解决办法
3022
查看次数

正确使用LINQ来洗牌

我正在尝试写一个简单的纸牌游戏.为了提出一个好的改组算法,我遇到了Jeff Atwood 关于Coding Horror 的帖子.

但是,当我在调用构造函数后查看对象的内容时,它们不会被洗牌.

以下是我尝试使用Jeff的解决方案:

class MainDeck : List<Card>
{
   public MainDeck()
    {
        this.Add(new Card(1, "Hearts"));
        this.Add(new Card(2, "Hearts"));
        this.Add(new Card(3, "Hearts"));
        ...

        this.OrderBy(a => Guid.NewGuid());
    }
}
Run Code Online (Sandbox Code Playgroud)

这是卡的代码:

class Card
    {
        string suit;
        int value;

        public Card(int value, string suit)
        {
            this.value = value;
            this.suit = suit;
        }

        bool isFaceCard()
        {
            if (value >= 11 || value == 1)
                return true;
            else
                return false;
        }

        public override string ToString()
        {
            return (value +", " + …
Run Code Online (Sandbox Code Playgroud)

c# linq list playing-cards

5
推荐指数
3
解决办法
1万
查看次数

Javascript-Lodash随机播放与Math.Random()

我正在用Javascript编写一个简单的BlackJack游戏。到目前为止,我有一个像这样的数组:

var deckArray = [ "card1", "card2",...,"card52" ]
Run Code Online (Sandbox Code Playgroud)

我有一个像这样的“交易”功能:

var deal = function(){
   var card = Math.floor(Math.random() * deckArray.length);
   return deckArray.splice(card,1)[0];
};
Run Code Online (Sandbox Code Playgroud)

由于我已经在使用Math.random来从deckArray中随机选择,对我来说,将这样的“ shuffle”函数与Lodash结合起来是否对我来说是多余的?

var shuffle = function(){
  deckArray = _.shuffle(deckNames);
};
Run Code Online (Sandbox Code Playgroud)

javascript random shuffle playing-cards lodash

5
推荐指数
1
解决办法
7209
查看次数

如何测试一张纸牌是否在Java中足够洗牌

我必须测试,看看这种方法是否已经改组了一副牌.这里如果代码为实际的洗牌部分.

 public void randomShuffle () {
               for (int i = 0; i < DECK_SIZE; i++) {
                   int place = (int)((Math.random()*(51-i))+i);
                   Card temp = this.cardAt(i);
                   this.cardList[i] = this.cardAt(place);
                   this.cardList[place] = temp;
           }
       }
Run Code Online (Sandbox Code Playgroud)

测试它是否被洗牌的问题是我只能切换两张卡而且它会被认为是洗牌.这是我到目前为止对随机shuffle的测试.

static void randomShuffleTest () {
       Deck deck1 = Deck.newDeckOf52();
       Deck deck2 = Deck.newDeckOf52();
       deck2.randomShuffle();           

       assert false == deck1.equals(deck2);
    }
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是,我如何测试某些东西是否已被洗牌?

java random algorithm shuffle playing-cards

4
推荐指数
1
解决办法
4879
查看次数

在.NET中提取图像的一部分

我有一副牌的PNG作为1张图像(它将所有52张卡合并为1张图像文件).如何根据需要提取单个卡(或在启动时将它们全部提取到单独的图像文件中).

我理解知道哪个行和列得到的逻辑,它是我遇到麻烦的实际图像处理代码.

我正在使用Visual Studio 2010并使用VB(尽管任何.NET语言中的示例代码都可以).

我不允许发布图像本身,但这是一个示例图像

http://www.jfitz.com/cards/windows-playing-cards.png

谢谢.

.net c# vb.net image playing-cards

4
推荐指数
1
解决办法
3882
查看次数

排序一副纸牌

给一副N纸牌。您必须使用以下允许的操作对它们进行排序:

  1. 您可以看到前2张卡。
  2. 您可以交换它们。
  3. 您可以在底部插入顶部。

有任何想法吗?

sorting algorithm playing-cards data-structures

4
推荐指数
1
解决办法
5065
查看次数

对于2D卡牌游戏,Open GL是否具有过度杀伤力?

我只是想创建一个纸牌游戏,我只是在想是否使用OpenGl或CoreAnimation.你能告诉我使用OpenGL进行2D卡片游戏是否有点过分.谢谢:)

iphone core-animation opengl-es objective-c playing-cards

3
推荐指数
1
解决办法
1347
查看次数

我需要帮助在C++中生成一副牌

我正在尝试使用C++生成一副牌.我已经编写了所有代码,但有一个问题我似乎无法弄清楚:

Deck::Deck(){
         Card card;
         bool match = false;
         for (int i=0;i<47;i++){
             do{
                card.setCard();
                match = cardInDeck(card, i);
                }while(match == true);
             match = false;
             cards[i] = card;
         }
         numDrawn = 0;
    }
Run Code Online (Sandbox Code Playgroud)

在我的Deck类的构造函数中,我有一个for()循环,它生成所有52张牌并确保牌组中没有匹配的牌.至少它应该.问题是,我不能使循环迭代超过47次并仍然有效.超过47的任何数字都会导致控制台屏幕在运行时为空,除了闪烁的光标.我不太确定大于47的数字会导致它停止工作.我已经对它进行了广泛的测试,0到48之间的每个数字都有效.

也许我的代码中的其他地方有一些小错误,我只是没有看到.我真的不知道.但我真的很感激我能得到的任何帮助.

这是我的完整代码:

#include<iostream>
#include<stdlib.h>
using namespace std;

void run();

class Card{
      private:
              char suit;
              int value;
      public:
             Card();
             void setCard();
             void getCard();      
             int getValue();
             int getSuit();
      };

class Deck{
      private:
              Card cards[52];
              int numDrawn;
      public:
             Deck();
             void shuffle();
             void draw();
             bool cardInDeck(Card card, int index);
      };

int main(){ …
Run Code Online (Sandbox Code Playgroud)

c++ playing-cards

2
推荐指数
1
解决办法
7354
查看次数

C++卡片洗牌功能

我正在尝试使用C++构建扑克游戏.甲板洗牌功能给了我一些问题.每次我运行初始化卡组的程序,将其洗牌,然后打印卡组我得到相同的输出:

Shuffling the cards and dealing...
Printing deck...
KD
6S
7D
QD
5C
JH
9S
6D
7H
JD
QH
3C
7S
3H
TC
5D
5S
3D
AD
7C
4H
6H
JC
TS
4D
JS
QC
AH
9C
2D
5H
8C
TD
4S
2S
KS
2C
8D
KC
2H
9H
6C
KH
3S
QS
8S
8H
4C
AS
AC
9D
TH
Run Code Online (Sandbox Code Playgroud)

使用Deck和Card类我有相关的功能定义如下:

Deck::Deck(){
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 13; …
Run Code Online (Sandbox Code Playgroud)

c++ random class playing-cards

2
推荐指数
1
解决办法
3924
查看次数

Haskell功能与扑克牌(返回值的手)

我正处于修订周,我正在尝试为Haskell考试撰写过去的论文.但是,这个功能是我无法应付的.

扑克牌的价值如下所示:'2','3','4','5','6','7','8','9','T','J', 'Q','K','A'.一手牌可以写成一个字符串,例如"A563Q".

我需要写一个函数scoreHand :: [PlayingCardValue] - > Int,它将返回一手牌中持有的总值.'A'的值为11.'T','J','Q'和'K'各自的值为10.其他数字的面值('2'的值为2,'3 '的值为3,依此类推).

所以我应该写这个函数的两个版本.第一个使用递归,没有库函数或列表理解,第二个使用列表理解,库函数等.

我用递归编写了这个版本,但我正在努力与其他版本.

这是我的递归代码(即使我使用的是一个库函数,但我最终会弄清楚)

*

import Data.Char
type PlayingCardValue = Char
scoreHand :: [PlayingCardValue] -> Int
scoreHand [] = 0
scoreHand (x:xs) =
  if x > '1' && x < '9'
    then digitToInt x + scoreHand (xs)
    else if x == 'T' || x == 'J' || x == 'Q' || x == 'K'
      then 10 + scoreHand (xs)
        else if x == 'A'
          then 11 + …
Run Code Online (Sandbox Code Playgroud)

haskell list playing-cards

2
推荐指数
1
解决办法
220
查看次数