DDD五子棋建模实战
2022-11-16 16:54:10 0 举报
DDD建模
作者其他创作
大纲/内容
《event》棋手已落子棋局Id落子位置userId
《command》认输棋局IduserId
《event》棋局已结束棋局IdwinUserId
模拟一个在线的五子棋对战平台。开始棋局:已经确定了参加棋局的两个棋手是谁,确定了谁是黑谁是白。系统要为他们开始一局新的五子棋。系统要确保不给一个用户开启两个在进行中的棋局。轮流下棋:黑白双方轮流下棋。系统确保下棋符合规则。五子棋规则简化,不检查禁手。如果有一方达到五子连珠,则棋局结束。悔棋:下棋结束前,棋手可以选择悔棋,每个棋手最多悔棋1次。认输:棋手可以在系统判结束前主动认输。超时判负:轮到某方下棋时,如果超过1分钟不下,则判该方为负。查看棋局:系统显示棋盘状况,最近10步,棋手悔棋剩余次数。棋局列表:系统列出棋局,要能按照时间排序,按照棋手,是否进行中进行排序。---------------------------------------------------------非积分棋局:开始棋局的时候,可选择是否参加积分,选择不参加积分时,该局比赛结束后不计算积分。积分:每局结束后,如果该局参加积分,胜者加1分,负者减1分积分榜:按照积分从大到小,列出前10名棋手及其积分。自动匹配棋手:棋手可申请加入系统分配的棋局,并指定是否期望积分。系统从所有期望自动分配的棋手中,选择积分相近者优先匹配,自动创建棋局。期望积分者和不期望积分者分开来匹配。
轮流下棋
《rule》还未落过子也不能悔棋
悔棋
《rule》不能重复落子
《rule》确保不给一个用户开启两个在进行中的棋局
《event》棋手已认输棋局IDuserId
认输
《rule》对方下棋时不能悔棋
《rule》棋盘结束不能落子
《rule》棋局结束不需要判定超时
《rule》五子连珠棋局结束
棋局工厂
结束棋局
《command》棋手下棋棋局Id落子位置userId
棋局聚合棋局IDuserId1userId2
《command》开始棋局userId1userId2
《event》棋手已结束下棋棋局IDuserId
开始棋局
《rule》棋盘结束不能认输
《rule》落子有没有超过一分钟
《rule》棋盘结束不能悔棋
《event》棋手开始下棋userId棋局ID
《command》检查是否超时棋局Id
《event》棋局已开始棋局IDuserId1userId2
《rule》棋盘有没有落子位置
《event》棋手已悔棋棋局IDuserId
《command》悔棋棋局IDuserId
棋手聚合userId+有没有进行中的棋局()
《rule》每个棋手最多悔棋一次
《rule》认输判负
0 条评论
下一页