示例#1
0
    private string getNewFurnitureId(FurnituresForPaletteColor fpc, Palette p)
    {
        string        color   = p.getColors().ElementAt(RandomHelper.nextInt(p.getColors().Count));
        List <string> furlist = fpc.GetPossibleFurnituresFor(p, color);

        return(furlist.ElementAt(RandomHelper.nextInt(furlist.Count)));
    }
示例#2
0
    public string ConcretizeRoom(string xmlRoom)
    {
        Palette p = palettePicker.Pick();

        string[] separators = new string[] { "<Furniture " };
        string[] splits     = xmlRoom.Split(separators, StringSplitOptions.RemoveEmptyEntries);
        string   result     = splits[0];

        for (int i = 1; i < splits.Length; ++i)
        {
            result += separators[0];
            string color = p.getColors().ElementAt(RandomHelper.nextInt(p.getColors().Count));

            if (splits[i].Contains(SOFA1))
            {
                List <string> furlist = sofa1pc.GetPossibleFurnituresFor(p, color);
                string        furId   = furlist.ElementAt(RandomHelper.nextInt(furlist.Count));
                Regex         rgx     = new Regex(SOFA1_ABSTRACT + "|" + SOFA1_CONCRETE);
                result += rgx.Replace(splits[i], furId);
            }
            else if (splits[i].Contains(SOFA2))
            {
                List <string> furlist = sofa2pc.GetPossibleFurnituresFor(p, color);
                string        furId   = furlist.ElementAt(RandomHelper.nextInt(furlist.Count));
                Regex         rgx     = new Regex(SOFA2_ABSTRACT + "|" + SOFA2_CONCRETE);
                result += rgx.Replace(splits[i], furId);
            }
            else
            {
                result += splits[i];
            }
        }
        return(result);
    }