最近在自学PHP,感觉PHP很灵活。通过学习PHP,把以前学习C#、java时没有弄清楚的概念都理顺了,对OOP的认识又上升了一个台阶。为了检验最近的学习成果,决定写一个德扑的算法程序。
这个程序很简单,只实现如下功能:
1、按照玩家的数量分配手牌;
2、把手牌和公牌进行组合后计算出胜负结果,以及获胜玩家和所有玩家的牌型;不考虑玩牌的过程,即没有下注这个阶段。
====以下为正文====
根据需求进行设计,至少需要三个类:
1、扑克牌类Cards
2、玩家类Player
3、牌桌类(包含核心算法逻辑)Table
====Cards类====
在德扑中不需要用到大王和小王,所以使用的牌数为52张。在本程序中红桃用H代替、梅花用C代替、黑桃用S代替、方块用D代替;点数则分别为2、3、4、5、6、7、8、9、T(10)、J、Q、K、A
以下代码创建一副扑克牌
$cards=array();
$suit=array("H","S","D","C");
$p=array("T","J","Q","K","A");
for($i=0;$i<count($suit);$i++){
for($j=2;$j<=9;$j++){
$cards[]=$suit[$i].$j;
}
for($k=0;$k<count($p);$k++){
$cards[]=$suit[$i].$p[$k];
}
}
return $cards;
这样生成的扑克牌是按顺序的,所以必须洗牌,用系统函数shuffle可以模拟实现。Cards类的目前代码如下: