Tag: NBA

在Swift中打造一个完整的篮球运动员

我们回来了另一篇文章! 我们仍在打造令人惊叹的篮球比赛的道路上。 如果您已经阅读了我以前的文章,欢迎您回来,如果您是第一次阅读,也谢谢您。 1月中旬,我撰写了第一篇有关创建篮球模拟iOS应用程序的文章,从而踏上了这一旅程。 如果您想了解更多有关该项目的动机和开始设计的信息,请查看! 对于本篇文章,我想重新了解我们的篮球运动员的初始模板,并看看我们是否可以建立一个更加充实的表示形式。 当前的球员阶级,以及为什么我们应该提高它 这是我们当前播放器类的第一个版本。 我们只有两个不同的变量来总结玩家的全部技能。 我确定您会想到此实现可能存在的问题。 我在下面概述了一些我想到的优点和缺点: 优点 易于跟踪玩家的技能,并在计算中使用 对于其他开发人员来说很容易理解,特别是如果他们不熟悉篮球的话 没有歧义或主观解释的余地 缺点 不太详细或有趣 玩家不是那么独特。 除名字外,与众不同或脱颖而出的有限方法 同样,这是BORING 现在,考虑到这些事实,很明显,我们需要改进此设计。 试想一下:是什么使篮球运动员如此特别? 有些人真的是伟大的三分射手,例如史蒂芬·库里,还有一些是伟大的传球手,例如克里斯·保罗。 像鲁迪·戈伯特(Rudy Gobert)这样的人确实很擅长防守底线。 在我们当前的Player类中,这些技能都没有唯一体现,并且如果没有像上面这样的专门技能,任何体面的篮球模拟都将变得乏味。 新篮球运动员班 这是一个新类,其中包含更多的变量列表。 如前几篇文章所述,我已经为该应用程序创建了一个Xcode项目,并创建了一个PlayerFunctions.swift来保存我的Player类。 与以前的版本没有太大不同。 我们只是将进攻扩展为给定球员的防守,以扩大防守范围。 此外,如果您曾经打过NBA 2K或其他流行的篮球比赛,我们还会提供一些您可能熟悉的统计数据。 使用播放器类型初始化播放器 接下来,我们需要编写init函数来创建Player的实例。 为此,我们需要将所有评级变量都设置为默认值。 我们可以将其留给函数的调用者来设置所有这些值。 或者,我们可以有不同的玩家原型! 这意味着我们可以根据特定的预设类型设置所有球员技能: 在这里,我们有三种不同类型的玩家:神枪手,大幅削减得分手和后卫。 神枪手的三分球和罚球命中率很高,但在其他类别中却遭受损失。 出色的得分手拥有出色的内线得分能力,但很难与其他位置投篮。 防守者没有良好的进攻技巧,但在球的另一侧占优势。 现在,我们可以创建一个具有以下功能的播放器,该函数从我们的一种类型中随机选择以初始化播放器: 这样,我们的球员就会更加专业。 尽管我们仍然可以添加功能以允许自定义每个分级,但是我们可以暂时简化它,并在需要时进行扩展。 但是,我们在玩家中还有另一个重要的概念要表达:玩家倾向。 什么是玩家倾向? 不同的玩家不仅拥有不同的技能,而且在不同的时间做不同的事情。 让我们以NBA为例。 看看金州勇士队的史蒂芬·库里和克莱·汤普森。 尽管他们都是出色的三分射手,但是库里作为控球后卫意味着他更有可能更多地传球。 同时,当汤普森从外部成为如此出色的射手时,他不太可能在内部射门。 玩家的倾向是他们在特定时间可能执行的动作的列表,按执行每个动作的机会来组织。 现在,我不知道像NBA […]