介绍
我对实时改组球和在一定时间间隔内捡球进行了非常简单的模拟
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()语句。