JavaScript实现斗地主游戏的思路实现斗地主游戏的思路
主要介绍了JavaScript实现斗地主游戏的思路的相关资料,需要的朋友可以参考下
本文知识给大家分享一下使用js写斗地主的思路,代码写的不好,还请见谅。
这里说说斗地主主要包含的功能:洗牌,发牌,玩家出牌、电脑出牌,出牌规则的验证,输赢啥的没有判断,只是实现了这几
个主要功能,下面依次说说几个功能的实现:
1.洗牌:洗牌:
var pukes=this.manage.pukes;//存放扑克牌的数组
//洗牌
for(var i=;i<pukes.length;i++){
var tmp=pukes[i];
var index=util.random(i,pukes.length);//随机交换两张牌
pukes[i]=pukes[index];
pukes[index]=tmp;
}
2.发牌发牌(简版默认是玩家自己为地主,电脑为农民),由于前面洗牌时已经将牌的顺序打乱,所以发牌只是简单的循环把
pukes中的元素添加到每个玩家实例中的pukes字段中。
//发牌
var start=;
for(var i=;i<this.manage.pukes.length-;i++) {
if(start==this.manage.players.length){
start=;
}
this.manage.pukes[i].status=true;
this.manage.players[start].pukesLen++;
this.manage.players[start++].pukes.push(this.manage.pukes[i]);
}
for(var i=this.manage.pukes.length-;i<this.manage.pukes.length;i++){
//地主多三张
this.manage.pukes[i].status=true;
this.manage.players[this.manage.curPlayerIndex].pukesLen++;
this.manage.players[this.manage.curPlayerIndex].pukes.push(this.manage.pukes[i]);
}
3.玩家出牌玩家出牌,玩家出牌分为电脑和玩家自己两个步骤,电脑出牌是非常傻瓜的出牌方式(有牌就出):
//出牌
if(this.options.playerIndex==this.manage.curPlayerIndex) {
var spks = [],gz=false;
if (this.manage.curMaxPlayerIndex == this.options.playerIndex) {
this.manage.deskPukes = [];
}
if (this.isCompute) {
//电脑自动出牌
var start = ;
var len=this.manage.deskPukes.length||;
while (start < this.pukes.length) {
spks = [];
for (var i = ,j=start; i <len&&j<this.pukes.length; i++) {
//随便选一张 可以出就行
if(this.pukes[j].status) {
spks.push(this.pukes[j++]);
}
}
if(spks.length) {
if (rules.valids(spks, this.manage.deskPukes)) {
gz = true;
break;
}
}
start++;
}
}
else {
//玩家选择出牌
for (var i = ; i < this.pukes.length; i++) {
if (this.pukes[i].selected && this.pukes[i].status) {
spks.push(this.pukes[i]);
}
}
if (rules.valids(spks, this.manage.deskPukes)) {