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

时间:2014-09-08 02:00:01

标签: java

简介

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

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表示使用过的数据是一种好方法吗?它是真实世界应用中的常规方法吗?

2 个答案:

答案 0 :(得分:2)

更加面向对象的方法是创建一个BallSlot类,其中包含球号的单独成员以及它是否有效。

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

答案 1 :(得分:1)

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

如果您只是使用int来表示球,是的,通常的做法是做“-1表示空”。但是,请不要变得“聪明”并开始使用“-2”和“-3”表示其他类型的东西。 =)