我有一个问题,想知道如何从列表的最后一次更新中没有选择的对象中随机获取一个对象。当这个随机实例化的对象产生并达到某个y值时,它将自己设置为非活动状态。因此,当此对象不活动时,它将通过一个数组并随机选择另一个对象。但是,我不想包含上一个活动对象。
示例:蓝球首先是活跃的。在Y轴上移动。变得不活跃。下一个对象spawn应该没有机会成为一个蓝色的球。任何想法和帮助将不胜感激。
我的代码在
下面 val rows = sc.makeRDD(Seq(Row("Keanu", "Matrix")))
val schema = StructType(Seq(StructField("name", DataTypes.StringType), StructField("title", DataTypes.StringType)))
val df = new SQLContext(sc).createDataFrame(rows, schema)
Neo4jDataFrame.mergeEdgeList(sc, df, ("Person",Seq("name")),("ACTED_IN",Seq.empty),("Movie",Seq("title")))
val edges : RDD[Edge[Long]] = sc.makeRDD(Seq(Edge(0,1,42L)))
val graph = Graph.fromEdges(edges,-1)
assertEquals(2, graph.vertices.count)
assertEquals(1, graph.edges.count)
Neo4jGraph.saveGraph(sc,graph,null,"test")
val it: ResourceIterator[Long] = server.graph().execute("MATCH (:Person {name:'Keanu'})-[:ACTED_IN]->(:Movie {title:'Matrix'}) RETURN count(*) as c").columnAs("c")
assertEquals(1L, it.next())
it.close()
答案 0 :(得分:1)
尝试linq:
spplot(r,scales=list(x=list(x.scale,labels=c(seq(1,7,1))), y=list(y.scale,labels=c(seq(2001,2015,1))),col.regions =colfunc,at=seq(100, 170, len=100), xlab = "Elevation Zone", ylab = "year")
答案 1 :(得分:1)
每次生成随机数时,您需要将随机数存储到变量(lastRandomNum
)。现在,使用下面的函数可以生成exclusion
的随机数。
int RandomWithExclusion(int min, int max, int exclusion)
{
var result = UnityEngine.Random.Range(min, max - 1);
return (result < exclusion) ? result : result + 1;
}
您将0
传递给min
,然后theObjectballPools.Length
或changingBalls.Count
传递给max
,最后传递lastRandomNum
值到排除参数。
您还需要一个boolean
变量来确定这是否是第一次运行。如果这是第一次运行,请使用Unity的Random.Range
功能,然后将firstRun
设置为false
。如果不是firstRun
,请使用此答案中的RandomWithExclusion
函数并传入lastRandomNum
值以将其排除。另外,将生成的随机数存储到下一帧要使用的lastRandomNum
变量中。
以下是我上面所说的简化版。您必须将其合并到您的代码中。
GameObject[] yourItem = null;
bool firstRun = true;
int lastRandomNum = 0;
void Update()
{
if (firstRun)
{
firstRun = false;
//First run, use Random.Range
lastRandomNum = UnityEngine.Random.Range(0, yourItem.Length);
}
else
{
//Not First run, use RandomWithExclusion
lastRandomNum = RandomWithExclusion(0, yourItem.Length, lastRandomNum);
}
//Do something with the lastRandomNum value below
newBall = theObjectballPools[lastRandomNum].GetPooledObject();
}
int RandomWithExclusion(int min, int max, int exclusion)
{
var result = UnityEngine.Random.Range(min, max - 1);
return (result < exclusion) ? result : result + 1;
}