百度前端技术学院是一个为大学生创办的免费的前端技术实践、分享、交流平台。由百度校园招聘组、百度校园品牌部、百度前端技术部以及多个百度的前端团队联合创办。学院组织了一批百度在职工程师,精心编写了数十个实践编码任务,将技术知识点系统有机地串联在各个充满趣味与挑战的任务中,同学们通过实际地编码练习来掌握知识,再辅以互相评价、学习笔记等方式,加深对于学习内容的理解。在过去的三年中,百度前端技术学院累积吸引了上万名同学参加,并且有数十名同学在学习后,顺利加入了百度,成为了百度的前端工程师。

综合实战:在线德州扑克(一)

困难

人数150人在学习该课程,有14人已经完成该课程

时间平均用时4.5

关键词Vuekoasocket.iomongodb

课程概述

作业提交截止时间:04-24

说明

本任务不属于基础课程需要建议练习的任务,只提供给有余力的同学实践,大家根据兴趣选择即可。

此系列课程,导师邵帅会手把手教你实现在线德州扑克的思路和关键环节,对您以后开发复杂应用会有很大帮助。

任务目的

综合运用各种前端技术,实现一款复杂的大型应用:在线德州扑克,成为“全栈”工程师。

应用简介

任务中的“在线德州扑克”类似于“微扑克”或“德扑圈”,是朋友间组织牌局的工具应用。

任务(一)

这一部分,我们通过使用JavaScript编写基础算法的方式,了解德州扑克的基本规则。规则介绍

任务内容

使用JavaScript实现和封装 牌型判定牌面大小比较

任务教学

实现在线德州扑克会遇到两大逻辑难点和一个工程难点。在任务一中,我们先了解其中逻辑难点一。
德州扑克一共使用52张牌,一共4种花色,每种花色13张牌。首先我们需要一套合理的数据结构,描述这52张牌。牌型判定和比较大小,涉及很多数据计算,数据结构的设计直接影响以后程序执行效率。
教学中,我提供一种思路:使用[0-51]数值来描述52张牌,花色和牌,可以由对4 or 13取模运算和余数(0-12)来指定。
所以我们封装的类库中必不可少会有两个方法:数值到牌面的转换 和 牌面到数值的转款。例如 0 -> ♠A, ♠A -> 0

牌型判定的思路:德州扑克中,5-7张牌均能判定牌型。牌型判定中,我们可能会构建一套逻辑分支,例如:四条和顺子,一定是在两个分支上,因为不可能有7张牌既能组成四条又同时组成顺子。另外我们还要编写算法实现同花色和连续牌的检测。

比较大小的思路:通常我们在实现棋牌类应用中,常会用到值计算,AlphaGo中就构建了一个复杂的值网络。德州扑克的大小只有几种,我们可以使用分值来计算,也可以通过化简出关键部分来比较。例如:对牌型从大到小设置level,先判定牌型取得level,不同level则直接比出结果;相同level,继续比较细节,例如“葫芦”,我们先比较三张相同的那个牌,在比较两张相同的那个牌。

以上就是对第一部分任务的抛砖引玉,希望你们能设计出更出色的算法和逻辑!

如有疑问可以通过234047485@qq.com联系导师

学员提交的作业 (-)
学员名称提交时间提交的代码预览效果评价数平均得分操作
课程优秀学习笔记

暂无优秀学习笔记~