繁体   English   中英

这是用-1表示已使用/无效数据的好方法吗?

[英]Is it a good way to represent used / invaild data by -1?

介绍

我对实时改组球和在一定时间间隔内捡球进行了非常简单的模拟

https://github.com/gaplo917/Mark6-java/blob/master/src/Mark6.java

我要模拟的是:

一台机器中总共有49个球,机器将不断洗牌。 一段时间后,机器将打开门将球捡出来。 这是视频:http: //youtu.be/5QHsYA2lcI0?t=2m2s


我写的 (非常简单的版本):有49个球,我进49 + 1球。

如果将球打入多余的空间,则每次洗球。

一段时间后,我将检查多余的空间,以查看将球替换成球并将其取出。

然后用-1标记空格以表示空格不再有效。

相反,我应该随机选择一个球,但不要使用多余的空间。 只是忽略这种情况...

完成这项工作后,我将尝试使用Android Game引擎模拟重力和碰撞以达到学习目的。

回到我的问题:

这是用-1表示使用过的数据的好方法吗? 在实际应用中这是正常方法吗?

解决此问题的一种更面向对象的方法是创建一个BallSlot类,该类具有单独的成员以表示球号以及球号是否有效。

通常,使用0或-1这样的前哨值不是一个好主意。 它将多个语义含义重载为单个数据值,这使解析该值变得复杂。 实际上,这意味着所有使用该值的代码都充满了if()语句。

将球建模为对象更像Java,即使目前它们只有一个字段“ id”。 您可能非常想添加其他属性(位置,动量等,如果您将其扩展为按照您的指示进行物理模拟),那么您将需要它们成为对象!

如果您只是使用int表示球,是的,通常的做法是执行“ -1表示空”之类的操作。 但是,请不要成为“聪明人”,而要开始使用“ -2”和“ -3”来表示其他种类的东西。 =)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM