Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一款纸牌游戏的erlang设计_Erlang_Playing Cards - Fatal编程技术网

一款纸牌游戏的erlang设计

一款纸牌游戏的erlang设计,erlang,playing-cards,Erlang,Playing Cards,我想和您讨论一下在erlang中实现纸牌游戏的可能性。 我在网上找到的唯一完整的例子是 我想自己创建一个,下面是我考虑的实现: 代表一副牌的gen_服务器:启动时创建一副牌(洗牌)。并将其存储在其状态中。提供句柄调用(抽卡) 代表聊天室的gen_服务器。在其状态下存储播放器进程的注册名称(例如player1、player2、luke等)。导出handle_cast以加入聊天(默认情况下,当有人成功加入游戏时执行),导出handle_cast以通过调用代表玩家的gen_服务器上的handle_ca

我想和您讨论一下在erlang中实现纸牌游戏的可能性。 我在网上找到的唯一完整的例子是

我想自己创建一个,下面是我考虑的实现:

  • 代表一副牌的gen_服务器:启动时创建一副牌(洗牌)。并将其存储在其状态中。提供句柄调用(抽卡)

  • 代表聊天室的gen_服务器。在其状态下存储播放器进程的注册名称(例如player1、player2、luke等)。导出handle_cast以加入聊天(默认情况下,当有人成功加入游戏时执行),导出handle_cast以通过调用代表玩家的gen_服务器上的handle_cast向所有用户广播聊天消息

  • 代表游戏实例的gen_fsm。有两种状态(wait_join和turn)。导出join/1以加入游戏,玩\u card/2并发送\u msg/2。一个参数是播放器进程的pid

  • 代表玩家的gen_服务器。仅导出start_link/1,其中参数是用于注册进程的名称(在gen_fsm的init I call join方法中)。具有不同的句柄调用(例如获取、抽牌)和句柄类型(例如玩牌、发送消息和发送消息)

  • 代表主进程的gen_服务器。导出(加入游戏/1调用玩家:开始链接/1,发送消息/2调用玩家的发送消息,玩卡/3调用玩家的玩卡)

  • 你觉得这个架构怎么样


    提前感谢

    不幸的是,这个问题很难回答。首先,你需要对你试图解决的问题有一个概念。其次,您需要了解体系结构。第三,您需要了解这个东西的API最终将是什么。第四,正确的回答将是冗长的。第五,很多细节都被遗漏了,所以很难找到具体的细节。最后,最好先尝试实现它,然后询问架构是否有问题。不幸的是,这个问题很难回答。首先,你需要对你试图解决的问题有一个概念。其次,您需要了解体系结构。第三,您需要了解这个东西的API最终将是什么。第四,正确的回答将是冗长的。第五,很多细节都被遗漏了,所以很难找到具体的细节。最后,最好先尝试实现它,然后询问架构是否有问题。