微信欢乐斗地主竞技模式分数不同步怎么回事

当前位置:
微信欢乐斗地主电脑版
更新时间:
软件大小:99.50MB
软件类型:国产软件
软件分类:
软件语言:简体
软件授权:免费软件
支持系统:
高速下载器广告
  微信欢乐斗地主电脑版是一款其他工具客户端应用,用户评价还是不错的。欢乐斗地主微信版近日推出了v5.20.028版本,修复了若干bug,提升了软件使用的流畅性,加上美观的界面,微信欢乐斗地主电脑版新版一定能给用户带来一个更好的体验。
  官方介绍
  微信欢乐斗地主电脑版是一款可以用微信登录的斗地主纸牌类手机游戏。在游戏中有着多种好玩的斗地主玩法,同时给你带来更多的赛事以及活动等你来参与,约上你的好友一起来打斗地主吧。
  腾讯移动游戏平台首款实时对战棋牌手游《欢乐斗地主》是包含斗地主经典玩法、癞子玩法和挑战赛玩法的合集版本!全民牌技PK,经典、癞子、挑战赛任你选,和好友拼倍数、拼财富。
  游戏特色
  【纯正的经典玩法】经典玩法+癞子玩法,全民牌技PK!抢地主,明牌,加倍等玩法,对局乐趣精彩不停!
  【丰富的竞技玩法】新鲜有趣的三颗心玩法,角色百变,技能升级!
  【刺激的赛事玩法】丰富多样的赛事模式,挑战赛爽快刺激!
  【高品质的游戏体验】场景化的游戏界面,感受真实的斗地主;丰富趣味的动画,增添更多欢乐元素!
  【全新的社交体验】邀请好友一起开私人房,给好友送心送豆,请好友一起做任务!高分炫耀,连胜比拼,好友互动不停!
  游戏功能
  1、支持微信登录和QQ登录,支持分享到微信和空间;
  2、新增好友排行榜;
  3、优化挑战赛游戏体验;
  4、优化网络问题和其他bug修复;
  5、通过QQ账号登录手机欢乐斗地主,欢乐豆可以和历史版本互通。
  更新日志
  1. TDT精英选拔赛登陆比赛模式,免费报名,只拼技术!周榜前9名即有机会前往北京演播室参与周赛,赢取现金大奖~
  2. 话费赛重回福利模式!打牌就能赢话费?我觉得微信欢乐斗地主电脑版很OK!
  3. 修复了少数机型的适配问题,稳定性提升
微信欢乐斗地主电脑版下载地址
Windows版下载
微信欢乐斗地主电脑版相关版本
精品软件推荐
绿色中文版v2.65
官方版v1.7 64位
电脑版v4.0.1
官方版v1.03.34
电脑版v2.3.0.3
v4.1 增加版
下载之家是国内最值得信赖的官方软件下载资源提供商,提供安全无毒的绿色软件下载、手机软件下载、游戏下载等。高速安全的软件下载尽在下载之家!
Copyright &
下载之家 (). All Rights Reserved.微信斗地主为什么赢了分数反而越来越少?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
微信斗地主为什么赢了分数反而越来越少?
我是为了完成任务的路过路过……
采纳率:50%
为您推荐:
其他类似问题
您可能关注的内容
斗地主的相关知识
换一换
回答问题,赢新手礼包【锦春记财经看点】微信斗地主与市场搞投机_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
【锦春记财经看点】微信斗地主与市场搞投机
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢  发牌(),就是取3张底牌,然后3个玩家各发17张牌,之前我把一副牌的信息都放置在了Scripts/logic/clone/Card.js中,也就是qc.landlord.Card类。存放在这个类的属性data中,这是一个数组,数组中的对象有3个属性,如下:
icon : 牌图片文件名,用于显示这张牌;
val : 牌值,也就是大小,由于在斗地主规则中除大小王外,2最大,A其次,所以这里并不完全按照数值排大小,A是14,2是15,小王16,大王17。其它牌自己的数值就是大小;
type : 花色,虽然说在斗地主中没有花色大小问题,但是为了手牌美观,一般都会把同等大小的牌按照一定的顺序(黑桃-红心-草花-方块)来排列。
  javascript的数组有许多强大的方法,在发牌这块上算是很多都派上用场了,整个发牌流程的思路如下:
使用数组slice方法复制一副牌来发牌,保证原牌组不会变动;
使用数组splice方法结合随机数,抽取一张牌,这里利用splice做删除时会以一个数组形式返回被删除的几个元素,得到返回的对象后加入到对应玩家的手牌的数组中。这样就不用去做一个洗牌的代码,好比如买了一副新牌经常我们都要洗一下再玩,但是也可以不洗,三个人每人随机从中抽一张,直到17张为止,大概就是这个思路。
使用数组sort方法对每个玩家手牌排序,这里需要我们自己写一个数组元素的比较方法。因为按照上面的方法,每个玩家的手牌都是乱序的,我们要求是从大到小并且等值的按照花色排序,排序不仅是为了展示美观,后面AI分析牌也用于判断顺子、连对之类的牌型,这里给出牌比较的代码,如下:
* 卡牌排序
* @method cardSort
{Object} a [description]
{Object} b [description]
* @return 1 : a & b ,-1 a : & b
[description]
8 GameRule.prototype.cardSort = function (a, b){
var va = parseInt(a.val);
var vb = parseInt(b.val);
if(va === vb){
return a.type & b.type ? 1 : -1;
} else if(va & vb){
return -1;
  发牌的时候,利用定时器每0.2秒给每个玩家都发一张牌,共发17张,这样玩家就可以看到一个发牌的动画。左右边的AI玩家不需要显示牌,只需要显示背面,所以每次只需要在各自的手牌容器中加一个牌的图片就可以;但是玩家自己的牌要按顺序显示,所以每次取牌,都要根据大小判断位置再放进去。代码在Scripts/ui/PlayUI.js中,这里给主要的代码,如下:
2 PlayUI.prototype.dealCards = function (){
var self = this,
cards = G.cardMgr.getNewCards();
//抽三张底牌
for (var i = 0; i & 3; i++) {
G.hiddenCards.push(self.getOneCard(cards));
var total = 17;
var deal = function (){
//左边电脑玩家发牌
card = self.getOneCard(cards);
G.leftPlayer.cardList.push(card);
var c = self.game.add.clone(self.cardPrefab, self.leftPlayerArea.getScript('qc.engine.PlayerUI').cardContainer);
c.visible =
c.interactive =
//右边电脑玩家发牌
card = self.getOneCard(cards);
G.rightPlayer.cardList.push(card);
c = self.game.add.clone(self.cardPrefab, self.rightPlayerArea.getScript('qc.engine.PlayerUI').cardContainer);
c.visible =
c.interactive =
//左边电脑玩家发牌
//玩家的牌
card = self.getOneCard(cards);
G.ownPlayer.cardList.push(card);
self.insertOneCard(card);
if ( --total & 0) {
self.dealTimer = self.game.timer.add(200, deal);
G.leftPlayer.cardList.sort(G.gameRule.cardSort);
G.rightPlayer.cardList.sort(G.gameRule.cardSort);
G.ownPlayer.cardList.sort(G.gameRule.cardSort);
for (i = 0; i & G.currentCards. i++) {
G.currentCards[i].getScript('qc.engine.CardUI').isSelected =
//进入抢地主阶段
self.robLandlord();
&二、抢地主流程
  1、流程介绍
  抢地主,就是玩家轮换叫分的过程,代码的流程如下:
2、AI手牌评分
  这里实现的AI抢地主,先根据手牌对AI玩家进行手牌评分,如果评分大于上家的叫分,就叫分,否则不叫。整体思路是看了以下这篇文章来写的,包括后面的AI出牌之类都是从这边看的,文章链接:斗地主ai设计。
  & &叫牌原则分析& & & &因为在斗地主中,火箭、炸弹、王和2可以认为是大牌,所以叫牌需要按照这些牌的多少来判断。下面是一个简单的原则,来自于上面这篇文章:&& & & &假定火箭为8分,炸~弹为6分,大王4分,小王3分,一个2为2分,则当分数&& & & &大于等于7分时叫3分;&& & & &大于等于5分时叫2分;&& & & &大于等于3分时叫1分;&& & & &小于三分不叫
  我在Scripts/logci/AILogic.js下创建了AILogic类,在创建对象时需要传入一个玩家对象,该类会对玩家手牌进行分析归类,这些在AI出牌中再详细阐述,这里我们先看看AI手牌评分的代码吧。如下:
* 手牌评分,用于AI根据自己手牌来叫分
* @method function
* @return {[nmber]} 所评得分
6 AILogic.prototype.judgeScore = function() {
var self = this,
score = 0;
score += self._bomb.length * 6;//有炸弹加六分
if(self._kingBomb.length & 0 ){//王炸8分
score += 8;
if(self.cards[0].val === 17){
score += 4;
} else if(self.cards[0].val === 16){
score += 3;
for (var i = 0; i & self.cards. i++) {
if(self.cards[i].val === 15){
score += 2;
(self.player.name + "手牌评分:" + score);
if(score &= 7){
} else if(score &= 5){
} else if(score &= 3){
} else {//4相当于不叫
  3、轮换抢地主
  继发牌完成之后,就进入到了抢地主阶段,发完牌后随机选取一个玩家开始叫分。由于进入单机模式便给每一个玩家添加了一个nextPlayer指向自己下一家,形成一个循环的引用,所以很容易找到自己下一家。如果是玩家则给玩家显示叫分按钮,AI则给出分数,主要代码如下:
&View Code
&  这里的playerProvideScore方法是玩家叫分,玩家有四个叫分按钮:1分、2分、3分、不叫,每个按钮事件都是调用这个方法,只是传入不同的分数。详细完整代码可以在github上查看,去玩玩这个游戏结合代码应该更好理解。
三、确定地主
  完成抢地主后,确定地主的环节也是有不少事情要做,主要是以下几点:
将底牌给地主,这里AI玩家只要修改牌数量,玩家的则需要将3张底牌插入对应位置,保证顺序
显示出底牌
界面上标明各个玩家身份
保存本局的分数,也就是地主叫的分数
让地主开始出牌
  代码如下:
1 //设置地主
2 PlayUI.prototype.setLandlord = function(player){
var self =
self.scorePanel.text = self.currentScore + '';
self.scoreThree.visible =
self.scoreTwo.visible =
self.scoreOne.visible =
self.scoreZero.visible =
//显示底牌
var oldHiddenCard = self.hiddenContainer.
for (var i = 0; i & self.hiddenContainer.children. i++) {
self.hiddenContainer.children[i].frame = G.hiddenCards[i].
//self.startBtn.visible =
//设置地主及农民信息
G.ownPlayer.isLandlord =
G.leftPlayer.isLandlord =
G.rightPlayer.isLandlord =
player.isLandlord =
self.setAIStation(self.leftPlayerArea, G.leftPlayer.isLandlord);
self.setAIStation(self.rightPlayerArea, G.rightPlayer.isLandlord);
self.ownPlayerArea.getScript('qc.engine.PlayerUI').headPic.frame = G.ownPlayer.isLandlord ? 'landlord.png' : 'peasant.png';
self.ownPlayerArea.getScript('qc.engine.PlayerUI').headPic.visible =
//把底牌给地主
player.cardList = player.cardList.concat(G.hiddenCards);
player.cardList.sort(G.gameRule.cardSort);
self.reDraw();
if(!player.isAI){//不是AI需要重新渲染牌组
for (i = 0; i & G.hiddenCards. i++) {
self.insertOneCard(G.hiddenCards[i]);
for (i = 0; i & G.currentCards. i++) {
G.currentCards[i].getScript('qc.engine.CardUI').isSelected =
('本轮地主是' + player.name);
//由地主开始出牌
window.landlordUI.cleanAllPlayArea();
window.landlordUI.playCard(player);
四、手牌布局问题
  完成上面的步骤后,游戏也进入可以愉快打牌的阶段了,这里分享下我在用青瓷引擎做手牌布局显示的时候遇到的些问题。如上图,每个区域的手牌,左右两边玩家显示倒是问题不大,因为其只是显示相应数量的牌,都以背面显示,并不需要真正显示牌。主要还是在玩家手牌的问题,如果每张牌都我们去控制布局,会很繁琐,我一开始就走了一个错误的路线,用这样的方法:每张牌都放在手牌区域底下,每张牌设置不同的AnchoredX属性值,来达到每张牌错开的效果,但是会导致一些问题:
每当玩家出牌后,需要对所有牌重新布局
每当玩家出牌后,剩下牌难以居中显示
要加入底牌时,由于要找在对应位置,难以实现
  后面才发现青瓷引擎为我们提供了一个很好的布局组件:表格布局组件(点击我看文档),很好帮我实现了这个功能。真是一开始没看全文档,浪费了不少时间。实现的话,在牌的容器节点加入TableLayout组件,属性设置如下图,然后就只要往如图cardList加子节点(卡牌图片),删除子节点(卡牌图片),所有牌整体居中显示,而且每张牌固定错开30像素,不用做其他任何事情,就达到了我想要的布局效果。当然,左右两边玩家的手牌我也用了同样的方式,只是用的是竖直的排列方式。
  确定完了地主,就可以进入玩牌了,我会在下一篇文章分享单机模式斗地主剩下的流程。
阅读(...) 评论()微信游戏欢乐斗地主,一安装就是竞技版本,我想要回旧版本,该怎么办?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
微信游戏欢乐斗地主,一安装就是竞技版本,我想要回旧版本,该怎么办?
我有更好的答案
你好,已经自动升级了没法回到老版本了呢,祝你游戏愉快哦。有空不妨来玩个pc上的新游戏,叫王牌对决的。这款游戏的模式很多,其中街机模式的规则采用了经典的拳皇规则,这款游戏可以让你尽情的感受出拳皇的味道。并且这款游戏里面还有其他的模式也很好玩,像是休闲的足球模式,可以在如草如茵的战场上,使用自己的技能将足球射入球门哦
采纳率:84%
没办法回,只能玩这个,它是自动升级的,要不就不能玩了
为您推荐:
其他类似问题
欢乐斗地主的相关知识
换一换
回答问题,赢新手礼包

我要回帖

更多关于 斗地主分数器 的文章

 

随机推荐