棋牌平台制作教程之斗地主选牌算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了棋牌平台制作教程之斗地主选牌算法相关的知识,希望对你有一定的参考价值。

第一种:在牌的队列中只有自己被选中,会响应自己的可见区域,和前面一张牌的下部分可见区域。

这种是最简单的,自己被选中的时候,首先改变的正常的可见区域然后+选中之后的可见区域。

选中之后我们改变的就是牌的Y坐标:牌的Y坐标=牌的Y坐标-CheckHigh(选中之后的向上高度)

然后代入下面

NormalRect.setRect(牌的X坐标,牌的Y坐标,牌的X坐标+CardWidth,牌的Y坐标+CardHigh);//这个就是改变之后的正常可见区域。

下面是具体的4个点的坐标计算 (算法仅供参考!更多棋牌平台制作 www.yasewl.com

X1=牌的X坐标- CardSpacing(牌之间的间距)

Y1=牌的Y坐标

X2=牌的X坐标+CardWidth

Y2=Y1+CheckHigh(选中之后的向上高度)

选中之后的可见区域:TopOrDown.setRect(x1,y1,x2,y2);


然后改变前面一张牌下部分的可见区域。

X1=牌的X坐标+ CardSpacing(牌之间的间距)

Y1=牌的Y坐标+CheckHigh-CheckHigh(选中之后的向上高度)

X2=牌的X坐标+ CardSpacing(牌之间的间距)*2

Y2=牌的Y坐标+CheckHigh;

TopOrDown.setRect(x1,y1,x2,y2);

前面一张牌的正常可见区域不变。


第二种:在牌的队列中会影响其他牌的可见区域

这个可以分二种情况来讨论

1 前面三张牌有被选中的(选中之后前面牌的可见区域会被影响)

当前面3张牌中有选中状态的牌,它们的可见区域会被影响,正常的可见区域不会被影响。而影响的可见区域也只是X2被改变了,影响的可见区域我们可以用一个公式来表示

X2=((checkCardIndex(选中牌的索引) - forntCardindex(前面选中牌的索引))-1)*CardSpacing(牌之间的间距)。


2后面3张牌有被选中的(会影响自身得可见区域)

当我们选中牌的时候,后面三张牌有有被选中的时候。我们首先用第一种:在牌的队列中只有自己被选中的方法来计算出正常的可见区域和可见区域。而选中之后被后面影响的也只有X2,我们同样用一个公式来表示。

X2=( BackCardindex(后面选中牌的索引)-(checkCardIndex(选中牌的索引) )-1)*CardSpacing(牌之间的间距)。

这样当我们选中牌的时候既要改变自身得可见区域也要改变前面3张被选牌的可见区域。


这样在你点选牌的时候根据鼠标坐标,来判断和牌队列中的哪张牌的可见区域碰撞,然后确定牌的索引更改与之对应牌的可见区域就能实现选牌操作

以上是关于棋牌平台制作教程之斗地主选牌算法的主要内容,如果未能解决你的问题,请参考以下文章

棋牌平台开发教程之斗地主常用算法

棋牌平台制作教程之php中的炸金花大小比较算法

网狐棋牌源码搭建教程之棋牌平台服务器架构

棋牌源码搭建教程之棋牌游戏AI算法

棋牌平台搭建教程-德州扑克算法详解

源码架设教程之麻将AI算法与数据结构棋牌