예제 #1
0
        //加载根树
        private void LoadRoot()
        {
            _RootTreeNode          = new TreeNodeModel("全部类型");
            _RootTreeNode.Expanded = true;

            //获取所有大树
            List <Module> mds = _UserService.QueryModulesParent();

            FirstGeneration.Clear();
            if (mds != null)
            {
                foreach (var m in mds)
                {
                    //根目录中添加大树
                    TreeNodeModel node = _RootTreeNode.createChild(m.Id, m.Name);
                    node.Expanded = true;
                    //根据大树id去查找小树,然后添加到对应的树里面
                    List <Module> subs = _UserService.QueryModulesByParentId(node.Id);
                    foreach (var s in subs)
                    {
                        node.createChild(s.Id, s.Name).Expanded = true;
                    }
                }
            }
            FirstGeneration.Add(_RootTreeNode);
            LoadBaseData();
        }
예제 #2
0
        private void FirstGeneration_Tick(object sender, EventArgs e)
        {
            label10.Text = "Generation num: " + Convert.ToString(generationNum);
            if (firstGenerationIteration == mobScore.Length)
            {
                Crossbreeding(BestMob(mobScore), BestMob(mobScore), BestMob(mobScore), BestMob(mobScore));
                Mutation();
                firstGenerationIteration++;
                FirstGeneration.Stop();
                OneGeneration.Start();
                return;
            }

            FillW(W01);
            FillW(W12);
            FillW(W23);

            //WeightsReader(W01, W12, W23, firstGenerationIteration);

            WeightsWriter(W01, W12, W23, firstGenerationIteration);

            mobUpIteration = 0;
            OneMobLifeCycle.Start();
            FirstGeneration.Stop();
        }
예제 #3
0
        /// <summary>
        /// 加载根树 _DishBean
        /// </summary>
        private void InitTreeByDishData()
        {
            _RootTreeNode          = new TreeNodeModel("全部类型");
            _RootTreeNode.Expanded = true;
            FirstGeneration.Add(_RootTreeNode);

            //List<DischesWayRef>dwrs= _DataService.QueryAll();
            LoadTreeData();
        }
예제 #4
0
        public async void LoadData(object obj)
        {
            IsBusy = true;
            await Task.Run(() =>
            {
                // Get raw family tree data from a database.
                RefreshRootGroup(new ZenfolioTreeViewModel(Database.GetRootGroup()));
                IsBusy = false;
            });

            FirstGeneration.First().IsExpanded = true;
        }
예제 #5
0
 public MainAlgorithm(double crossoverProbability, double mutationProbability, int populationSize,
                      int generationCount, FirstGeneration firstGeneration, FitnessValue fitnessValue, Crossover crossover,
                      Mutation mutation)
 {
     CrossoverProbability = crossoverProbability;
     MutationProbability  = mutationProbability;
     PopulationSize       = populationSize;
     GenerationCount      = generationCount;
     _firstGeneration     = firstGeneration;
     _fitnessValue        = fitnessValue;
     _crossover           = crossover;
     _mutation            = mutation;
 }
예제 #6
0
        private void InitTreeByDishesWayData()
        {
            FirstGeneration.Clear();
            _RootTreeNode          = new TreeNodeModel("全部类型");
            _RootTreeNode.Expanded = true;
            FirstGeneration.Add(RootTreeNode);
            List <DischesWayName> dwns = _DataService.FindAllDishesWayName();

            DishesWayTableItems.Clear();
            if (dwns != null)
            {
                foreach (var dwn in dwns)
                {
                    _RootTreeNode.createChild(dwn.DischesWayNameId.ToString(), dwn.Name);
                    LoadBaseData(dwn, 0);
                }
            }
        }
예제 #7
0
        private void _folderChange(string path)
        {
            Debug.WriteLine("_folderChange:" + path);

            if (System.IO.Directory.Exists(path))
            {
                if (FirstGeneration != null)
                {
                    FirstGeneration.Clear();
                }

                Messenger.Default.Send(new CustomMessage(
                                           CustomMessage.MessageType.TREEVIEW_DESTROYED));

                // FirstGeneration
                var firsts = new ObservableCollection <ExplorerNode>();
                var node   = new ExplorerNode(path);
                firsts.Add(node);
                FirstGeneration = firsts;
                node.IsExpanded = true;
                node.IsSelected = true;

                Messenger.Default.Send(new CustomMessage(
                                           CustomMessage.MessageType.FOLDER_CHANGED, path, null, null));

                // Save in Setting
                if (_userPrefs != null)
                {
                    _userPrefs.WorkingFolder = path;
                }
            }
            else
            {
                MessageBoxShow(Properties.Resources.msg_no_folder_exsits);
                return;
            }
        }
예제 #8
0
        private void OnFileExplorerRefresh()
        {
            OnFileSave();

            /*
             * ExplorerNode node = ExplorerNode.SelectedNode;
             * if (node.ExplorerType != ExplorerType.Folder)
             *  node = node.Parent;
             *
             * if (node != null)
             * {
             *  node.IsExpanded = false;
             *  node.IsExpanded = true;
             * }
             */

            List <ExplorerNode> _first = FirstGeneration.ToList <ExplorerNode>();

            if (_first.Count > 0)
            {
                string root = _first[0].Path;
                _folderChange(root);
            }
        }
 private DirectoryViewModel LookupRoot(DirectoryInfo path)
 {
     return(FirstGeneration.FirstOrDefault(x => x.DirectoryInfo.Name == path.Root.Name));
 }
예제 #10
0
        private void OneMobLifeCycle_Tick(object sender, EventArgs e)
        {
            label11.Text = "Mob Up Iter: " + mobUpIteration;
            Intersect();
            //raysDistanceFact.CopyTo(L0, 0);
            L0[0] = raysDistanceFact[0];
            L0[1] = raysDistanceFact[1];
            L0[2] = raysDistanceFact[2];
            L0[3] = raysDistanceFact[3];
            L0[4] = raysDistanceFact[4];
            L0[5] = raysDistanceFact[5];
            L0[6] = raysDistanceFact[6];
            L0[7] = raysDistanceFact[7];

            Forward(L0, W01, L1);
            Forward(L1, W12, L2);
            Forward(L2, W23, L3);
            double maxRotateVal = Math.Max(L3[1], L3[2]);

            if (L3[0] > 0.5)
            {
                UpMoveDef();
            }

            if (maxRotateVal > 0.5 && Array.IndexOf(L3, maxRotateVal) != 0)
            {
                switch (Array.IndexOf(L3, maxRotateVal))
                {
                case 1:
                    LeftRotateDef();
                    break;

                case 2:
                    RightRotateDef();
                    break;

                default:
                    break;
                }
            }
            mobUpIteration++;

            if (mobUpIteration == 500) //время жизни одного моба
            {
                if (firstGenerationIteration != mobScore.Length + 1)
                {
                    mobScore[firstGenerationIteration] = score;
                    firstGenerationIteration++;
                    FirstGeneration.Start();
                }
                else if (oneGenerationIteration != mobScore.Length + 1)
                {
                    mobScore[oneGenerationIteration] = score;
                    oneGenerationIteration++;
                    OneGeneration.Start();
                }
                else
                {
                    GlobalCycle.Start();
                }

                MobRestart();
                OneMobLifeCycle.Stop();
            }
        }