void generateMonsters() { Random ran = new Random(); Mons = new Monster[Monster_Num]; for (int i = 0; i < Monster_Num;) { float x = (float)ran.NextDouble() * xLimit; float y = (float)ran.NextDouble() * yLimit; Monster tmp = new Monster(new Circle(new Point3D(x, y), Monster_radius)); bool flag = true; for (int j = 0; j < RecNum; ++j) { if (Circle.RCIntersect(Recs[j], tmp.cir)) { flag = false; } } if (!flag) { continue; } if (flag) { Mons[i++] = tmp; } } }
private void generateBeans(int bnum) { Random ran = new Random(); //BeanNum = bnum; for (int i = 0; BeanNum < bnum && i < n * m * 10; i++) { float x = (float)ran.NextDouble() * xLimit; float y = (float)ran.NextDouble() * yLimit; Circle tmp = new Circle(new Point3D(x, y), Bean_radius); bool flag = true; for (int j = 0; j < RecNum; ++j) { if (Circle.RCIntersect(Recs[j], tmp)) { flag = false; break; } } if (!flag) { continue; } for (int j = 0; j < BeanNum; ++j) { if (Circle.CircleIntersect(Beans[j], tmp)) { flag = false; break; } } if (flag) { Beans[BeanNum++] = tmp; } } }