garak / bridge
一个用于管理桥牌游戏的PHP库
v0.5.0
2024-04-06 14:30 UTC
Requires
- php: ^8.1
- doctrine/collections: ^1.8
- garak/card: ^0.5
Requires (Dev)
- phpunit/phpunit: ^9.6
README
简介
此库提供了一些PHP类,用于创建桥牌游戏
- 游戏 (待扩展)
- 玩家 (待扩展)
- 桌子
- 回合
- 手牌
- 侧面
- 胜利
安装
运行 composer require garak/bridge
。
用法
以下是一个游戏第一回合的示例
<?php require 'vendor/autoload.php'; use App\Game; // this is your Game class, extending \Garak\Bridge\Game use App\Player; // this is your Player class, extending \Garak\Bridge\Player use Garak\Bridge\Hand; use Garak\Bridge\Side; use Garak\Bridge\Table; use Garak\Bridge\Turn; $north = Hand::createFromString('6s,4h,3s,Td,6c,3d,3h,Kc,Qc,Tc,7d,2c,6d'); $east = Hand::createFromString('9d,Jh,5s,8c,Ks,4s,5h,4d,8s,Jc,2d,2s,Qs'); $south = Hand::createFromString('7h,Kd,Js,2h,Th,Qh,7s,Ac,3c,Ad,7c,9s,6h'); $west = Hand::createFromString('9h,Ts,5c,Jd,9c,As,8h,Ah,Kh,8d,4c,Qd,5d'); $table = new Table($north, $east, $south, $west); $game = new Game($table, new Side('N')); // second argument is starting side $game->join(new Player('John Doe'), new Side('N')); $game->join(new Player('Will Riker'), new Side('E')); $game->join(new Player('Yoda'), new Side('S')); $game->join(new Player('Peter Venkman'), new Side('W')); $game->addTurn(new Turn($game, 1, Card::fromRankSuit('6s'))); $game->addTurn(new Turn($game, 2, Card::fromRankSuit('4s'))); $game->addTurn(new Turn($game, 3, Card::fromRankSuit('7s'))); $game->addTurn(new Turn($game, 4, Card::fromRankSuit('Ts'))); echo $game->getWins()->getEastWest(); // will output "1", since West won the first turn
TODO
拍卖实现尚未完成...