noeldavies/cards

一套标准卡牌,用于构建任何卡牌游戏

v0.3 2016-12-16 01:30 UTC

This package is auto-updated.

Last update: 2024-09-11 22:58:33 UTC


README

#Cards. 几分钟内构建卡牌游戏。

默认提供一套标准的52张卡牌,但可以自定义以构建所需的任何牌组。创建桥牌、21点、德州扑克等...

安装

通过Composer引入包。

运行 composer require noeldavies/cards

使用方法

要开始使用牌组...

$d = new Deck;

$d->shuffle();

//deal... an array of cards
$hand1 = $d->drawHand(10);
$hand2 = $d->drawHand(10);

//draw a single card
$card = deck->draw();

//do something with card
$value = $card->value();
$suit = $card->suit();

//special card?
if($card->isFaceCard()){...}

//cards left in the deck
$deck->count(); 

当游戏结束时,只需通过洗牌(shuffle)重置牌组。现在牌组中有所有卡片(包括已抽取的)。

//start a new game...
$deck->shuffle();

要自定义牌组(即哪些牌属于牌组)可以实现CardProvider接口

class MyGameDeckProvider implements CardProvider{
    
    public function getCards(){

        //return an array of card for MyGame 
	}
}
//...
$deck = new Deck(new MyGameDeckProvider);

你可能还想看看

  • Shuffleable 用于洗牌
  • CardProvider 用于向牌组提供牌

当前实现不允许在抽取牌后将其放回牌组。洗牌会重置牌组