Articles of 卡牌游戏

我应该如何从MVC方法的控制器访问框架button?

我正在开发一个使用mvc模式的意大利纸牌游戏。 我有包含视图的类GameFrame。 用户的卡片是button(JButton对象)。 我有3个控制器: GameController:通常控制游戏。 包含游戏循环。 HumanPlayerController:控制用户input ComputerPlayerController:包含计算机的AI PlayerController:是与makeTurn()方法的接口。 它由HumanP.C执行。 和ComputerP.C。 HumanPlayerController也实现了ActionListener。 但是,访问GameFramebutton的正确方法是什么? 我需要它来了解哪张牌被选中。 GameFrame和HumanPlayerController在不同的包中。 我应该让JButtons公开吗?

我应该如何储存交易卡?

我正在Unity的魔术师TCG工作。 目前,卡片本身都是预制品:我有一个Satyr Archer预制件,一个Candle Wisp预制件,等等,现在工作得很好,因为我只有几张卡片,但是当我达到几百张时,我觉得这可能变得笨拙。 prefabs是一个很好的方式来存储大量的名片? 我应该使用XML文档和脚本来制作这些预制件吗?

如何生成Spot It卡?

现货这是一个纸牌游戏55卡。 每张卡片上只有8个符号(尽管55张卡片中使用的不同符号总数是57)。 对于甲板上的任何两张牌,它们只有一个符号。 例如: 建立这个套牌的algorithm是什么? 直觉上我认为有一个公式可以创建一个N卡片组,每个卡片有I符号并且使用J总符号。 对于我的生活,我无法弄清楚。 可以这样做吗?

Unity中的卡片移位

在YouTube上的教程, https://www.youtube.com/watch?v=P66SSOzCqFU ,我试图做一个卡片游戏,使用拖动卡。 当我拖动一张卡片时,它应该保持与鼠标的中心位置,但是当我开始拖动时,它会出现在屏幕的边缘。 我该如何做到这一点卡,而不是我的鼠标拖动? 目前我正在使用两个脚本,一个用于拖放区域,另一个用于“可拖动”。 当我试图debugging可拖动的部分时,它一直把我引回到我的拖放区域脚本中只有'{'的一行。 我正在Unity 5.6.0f3和Visual Studio 2017中工作。我的拖放区域代码如下所示: public class DropZone : MonoBehaviour, IDropHandler, IPointerEnterHandler, IPointerExitHandler { public void OnPointerEnter(PointerEventData eventData) { //Debug.Log("OnPointerEnter"); if (eventData.pointerDrag == null) return; Draggable d = eventData.pointerDrag.GetComponent<Draggable>(); if (d != null) { d.placeholderParent = this.transform; } } public void OnPointerExit(PointerEventData eventData) { //Debug.Log("OnPointerExit"); if (eventData.pointerDrag == null) […]

学习写一个单人纸牌游戏

很多年前,我在TurboPascal(在DOS上)做了一些编程,但是从那以后就没有编程。 自退休以来,我已经“发明”了一些纸牌游戏,这些游戏是我出售单人纸牌的。 最近我发明了一种与现有纸牌不同的游戏,它不适合这些collections包。 在TP中编写一个简单的程序来完成这项工作是毫无困难的,但这不再是一个select。 我购买了BlitzPlus,但想要一些帮助入门。 我讨厌重新发明轮子的想法; 即从头开始学习如何洗牌,如何将graphics文件分配给程序中的卡片等等,所以,理想情况下,我想从一个非常基本的(即不需要任何花哨的)纸牌程序中获得一些基本的源代码,但是,如果必要的,只是从一些可能需要的程序教程开始。 正如我所说,我已经购买了BlitzPlus,但愿意使用其他语言,如果这样做会更好,或提供更多的指导帮助。 任何帮助不胜感激。

扑克游戏机器人战斗锦标赛排名 – 如何尝试新的机器人对现有的排名?

比方说,我们运行了10场比赛,在纸牌游戏中玩1-1战斗,具有显着的随机性影响。 为了测量机器人技能水平,我们每轮运行10k比赛进行循环赛。 排名显示,机器人#3,#4和#5有非常相似的结果。 一段时间后,第11个机器人开发。 诚实排名的最佳策略是什么? 重新运行整个比赛? 具有相似结果的机器人可以出现在不同的位置。 运行所有排名的机器人对新的? 同样,如果考虑到这些结果,可以重新排列以前的职位。 有些不同? CPU时间不限,锦标赛离线运行。

这个function或价值导向游戏机制的名字是什么?

我想确定一个特定的游戏机制的名称。 这是相当常见的,但可能最好的说明卡游戏: 用一副牌玩的游戏通常具有以下列方式排列的牌值: A > K > Q > J > 10 > 9 > 8 > 7 > 6 > 5 > 4 > 3 > 2 有时排名最低的牌(在这种情况下为2 )被特别排除,以击败最高排名的牌(在这种情况下为A )。 这种机制有没有一个合适的名称?

AI对手是否值得在线多人纸牌游戏中的断线玩家值得

我有一个类似黑桃/桥牌的在线多人纸牌游戏,我想实现一个当客户端断开连接时自动播放的系统。 现在,有一个客户端和服务器。 在新系统中,客户端和实际游戏服务器之间将会有一个自动播放服务器。 客户端连接到自动播放服务器,然后连接到游戏服务器。 如果客户端在比赛期间断开连接,则自动播放服务器被激活。 两台服务器将驻留在同一台机器上,所以通信成本应该是最小的。 处理成本应该是最小的,而自动播放将被编程为有限的技能,只是为了保持比赛持续到最后。 一旦玩家断线,这个想法并不是打破游戏的stream程。 但是,在Zynga扑克等stream行的商业游戏中,我没有看到自动播放系统(可能在这种情况下,因为断开连接可以很容易地被视为“检查”或“折叠”)。那么是否真的值得有一个额外的层自动播放? 编辑:有一个额外的层自动播放的其他缺点?

使用Phaser从spritesheet显示特定的精灵

我正在尝试使用Phaser(HTML5 JS框架)制作一个纸牌游戏。 因为我是一个可怕的艺术家,无法devise自己的作品,所以我使用了一张免费的在线玩的纸牌图片。 问题是,我似乎无法弄清楚如何使用Phaser显示个人卡片。 在我以前的框架中,我能够从我使用的较大的精灵表中创建单个较小的精灵。 但是,如果可能的话,我不知道如何在Phaser中做到这一点。 所以我研究了加载图像作为一个spritesheet,但似乎spritesheets只用于animation,你不能真正显示spritesheet的特定“框架”(请纠正我,如果我错了)。 我想我需要做的是加载图像作为瓷砖地图,但是,我使用的特定图像没有与指定布局的json文件(我也不能find一个)。 新的JavaScript我不能阅读Phaser的源代码,看看如何格式化JSON文件。 因此,总之,鉴于我没有指定地图数据的json文件,在Phaser中显示纸牌Spritesheet的个人卡的最佳方式是什么?