/// <summary> /// Generates a key (Key) to use for the algorithm. /// </summary> public void GenerateKey(UInt32 Seed) { if (BufKey != null) { Kernel.free(BufKey); } BufKey = (Byte *)Kernel.malloc(COFAC_KEY); MSRandom Rand = new MSRandom(Seed); for (Int32 i = 0; i < COFAC_KEY; i++) { BufKey[i] = (Byte)(Rand.Next() % 0x100); } }
/// <summary> /// Generates a key (Key) to use for the algorithm. /// </summary> public void GenerateKey(uint seed) { if (_bufKey != null) { Kernel.free(_bufKey); } _bufKey = (byte *)Kernel.malloc(COFAC_KEY); var rand = new MSRandom(seed); for (var i = 0; i < COFAC_KEY; i++) { _bufKey[i] = (byte)(rand.Next() % 0x100); } }
public static IPAddress GenerateIPAddress(int seed) { byte[] result = new byte[4]; MSRandom rand = new MSRandom(seed); bool validAddressFound = false; IPAddress r = IPAddress.None; while (!validAddressFound) { rand.NextBytes(result); r = new IPAddress(result); validAddressFound = !IPRange.IsReservedIP(r); } return(r); }
public Vector3 getNextT() { Vector3 returnV; if (randomList.Count >= 1) { returnV = randomList[0]; randomList.RemoveAt(0); // MSDebug.Log("returnV______________" + returnV.ToString()); return(returnV); } ConfigData data; int m = 0; do { data = config[configIndex]; data.angle += Random.Range(data.angle_Random_min, data.angle_Random_min + data.angle_Random_size + data.v_long_distance_sparse); m_transform.localPosition = data.radius + new Vector3(Random.Range(0, data.distance_excursion.x), Random.Range(0, data.distance_excursion.y), Random.Range(0, data.distance_excursion.z)); m_transform.RotateAround(Vector3.zero, Vector3.up, data.angle); randomList.Add(m_transform.localPosition); if (m++ > 1000) { break; } } while (data.angle < 360); //切换下一圈 data.radius_curve_value += data.radius_curve; float rx = data.radius_curve_value + data.radius_Random_min.x + Random.Range(0, data.radius_Random_size.x); float ry = data.radius_Random_min.y + Random.Range(0, data.radius_Random_size.y); data.radius = new Vector3(data.radius.x + rx, data.radius.y + ry, 0); data.v_long_distance_sparse += Random.Range(0, data.long_distance_sparse); data.angle -= 360; float size = 99999f; for (int i = 0; i < config.Length; i++) { ConfigData datat = config[i]; if (datat.number <= 0) { continue; } float msize = Vector2.Distance(Vector2.zero, new Vector2(datat.radius.x, datat.radius.y)); if (msize < size) { size = msize; configIndex = i; } } data = config[configIndex]; data.number--; //随机分布当前圈 MSRandom.SetRandomList <Vector3>(randomList); //返回最后一圈内容 returnV = randomList[0]; randomList.RemoveAt(0); // MSDebug.Log("returnV______________" + returnV.ToString()); //MSDebug.Log("+++++++++ box:" + gameObject.transform.parent.name); return(returnV); }