//build the tree to search
        public static void buildTree()
        {
            List <Exercise>         exercises = TreeStructure.getExercises();
            List <Node <Exercise> > nextNodes = new List <Node <Exercise> >();

            TreeStructure.calcGN();

            //Full body
            tree = new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.FullBody]);
            tree.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.UpperBody]));
            tree.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.LowerBody]));
            nextNodes = tree.getNext();

            //Upper body
            Node <Exercise> upperBody = nextNodes[0];

            upperBody.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.Push]));
            upperBody.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.Pull]));

            //Lower body
            Node <Exercise> lowerBody = nextNodes[1];

            lowerBody.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.UpperLeg]));
            lowerBody.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.LowerLeg]));

            ////Equipment and Exercises
            //Node<Exercise> barbell;/* = new Node<Exercise>();*/
            //Node<Exercise> dumbbell = new Node<Exercise>();
            //Node<Exercise> cable = new Node<Exercise>();
            //Node<Exercise> body = new Node<Exercise>();
            //Node<Exercise> machine = new Node<Exercise>();

            //List<List<Exercise>> equipBarbellExercises = TreeStructure.getBarbell();
            //List<List<Exercise>> equipDumbbellExercises = TreeStructure.getDumbbell();
            //List<List<Exercise>> equipCableExercises = TreeStructure.getCable();
            //List<List<Exercise>> equipBodyExercises = TreeStructure.getBody();
            //List<List<Exercise>> equipMachineExercises = TreeStructure.getMachine();

            //Node<Exercise> tempNode = new Node<Exercise>();

            List <Exercise> tempExercises = new List <Exercise>();

            //Push
            nextNodes     = upperBody.getNext();
            push          = nextNodes[0];
            tempExercises = TreeStructure.getPush();
            foreach (Exercise i in tempExercises)
            {
                i.setGN(i.getGN() + push.getElement().getGN());
                push.addNext(new Node <Exercise>(new List <Node <Exercise> >(), i));
            }

            //Pull
            pull          = nextNodes[1];
            tempExercises = TreeStructure.getPull();
            foreach (Exercise i in tempExercises)
            {
                i.setGN(i.getGN() + pull.getElement().getGN());
                pull.addNext(new Node <Exercise>(new List <Node <Exercise> >(), i));
            }

            //Legs
            nextNodes = lowerBody.getNext();
            upperLegs = nextNodes[0];
            lowerLegs = nextNodes[1];

            tempExercises = TreeStructure.getUpperLegs();
            foreach (Exercise i in tempExercises)
            {
                i.setGN(i.getGN() + upperLegs.getElement().getGN());
                upperLegs.addNext(new Node <Exercise>(new List <Node <Exercise> >(), i));
            }

            tempExercises = TreeStructure.getLowerLegs();
            foreach (Exercise i in tempExercises)
            {
                //Lower Legs
                i.setGN(i.getGN() + lowerLegs.getElement().getGN());
                lowerLegs.addNext(new Node <Exercise>(new List <Node <Exercise> >(), i));
            }

            ////Barbell
            //tempExercises = equipBarbellExercises[(int)EnumEquipLocation.Push];
            //barbell = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.PushBarbell]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    barbell.addNext(new Node<Exercise>(new List<Node<Exercise>>(), i));
            //}
            ////Dumbbell
            //tempExercises = equipDumbbellExercises[(int)EnumEquipLocation.Push];
            //dumbbell = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.PushDumbbell]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    dumbbell.addNext(tempNode);
            //}
            ////Cable
            //tempExercises = equipCableExercises[(int)EnumEquipLocation.Push];
            //cable = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.PushCable]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    cable.addNext(tempNode);
            //}
            ////Body
            //tempExercises = equipBodyExercises[(int)EnumEquipLocation.Push];
            //body = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.PushBody]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    body.addNext(tempNode);
            //}
            ////Machine
            //tempExercises = equipMachineExercises[(int)EnumEquipLocation.Push];
            //machine = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.PushMachine]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    machine.addNext(tempNode);
            //}
            //push.addNext(barbell);
            //push.addNext(dumbbell);
            //push.addNext(cable);
            //push.addNext(body);
            //push.addNext(machine);

            ////Pull
            //Node<Exercise> pull = nextNodes[1];
            ////Barbell
            //tempExercises = equipBarbellExercises[(int)EnumEquipLocation.Pull];
            ////barbell = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.PullBarbell]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    barbell.addNext(tempNode);
            //}
            ////Dumbbell
            //tempExercises = equipDumbbellExercises[(int)EnumEquipLocation.Pull];
            ////dumbbell = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.PullDumbbell]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    dumbbell.addNext(tempNode);
            //}
            ////Cable
            //tempExercises = equipCableExercises[(int)EnumEquipLocation.Pull];
            ////cable = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.PullCable]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    cable.addNext(tempNode);
            //}
            ////Body
            //tempExercises = equipBodyExercises[(int)EnumEquipLocation.Pull];
            ////body = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.PullBody]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    body.addNext(tempNode);
            //}
            ////Machine
            //tempExercises = equipMachineExercises[(int)EnumEquipLocation.Pull];
            ////machine = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.PullMachine]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    machine.addNext(tempNode);
            //}
            //pull.addNext(barbell);
            //pull.addNext(dumbbell);
            //pull.addNext(cable);
            //pull.addNext(body);
            //pull.addNext(machine);

            ////Upper leg
            //nextNodes = lowerBody.getNext();
            //Node<Exercise> upperLeg = nextNodes[0];
            ////Barbell
            //tempExercises = equipBarbellExercises[(int)EnumEquipLocation.UpperLeg];
            ////barbell = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.UpperLegBarbell]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    barbell.addNext(tempNode);
            //}
            ////Dumbbell
            //tempExercises = equipDumbbellExercises[(int)EnumEquipLocation.UpperLeg];
            ////dumbbell = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.UpperLegDumbbell]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    dumbbell.addNext(tempNode);
            //}
            ////Cable
            //tempExercises = equipCableExercises[(int)EnumEquipLocation.UpperLeg];
            ////cable = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.UpperLegCable]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    cable.addNext(tempNode);
            //}
            ////Body
            //tempExercises = equipBodyExercises[(int)EnumEquipLocation.UpperLeg];
            ////body = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.UpperLegBody]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    body.addNext(tempNode);
            //}
            ////Machine
            //tempExercises = equipMachineExercises[(int)EnumEquipLocation.UpperLeg];
            ////machine = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.UpperLegMachine]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    machine.addNext(tempNode);
            //}
            //upperLeg.addNext(barbell);
            //upperLeg.addNext(dumbbell);
            //upperLeg.addNext(cable);
            //upperLeg.addNext(body);
            //upperLeg.addNext(machine);

            ////Lower leg
            //Node<Exercise> lowerLeg = nextNodes[1];
            ////Barbell
            //tempExercises = equipBarbellExercises[(int)EnumEquipLocation.LowerLeg];
            ////barbell = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.LowerLegBarbell]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    barbell.addNext(tempNode);
            //}
            ////Dumbbell
            //tempExercises = equipDumbbellExercises[(int)EnumEquipLocation.LowerLeg];
            ////dumbbell = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.LowerLegDumbbell]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    dumbbell.addNext(tempNode);
            //}
            ////Cable
            //tempExercises = equipCableExercises[(int)EnumEquipLocation.LowerLeg];
            ////cable = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.LowerLegCable]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    cable.addNext(tempNode);
            //}
            ////Body
            //tempExercises = equipBodyExercises[(int)EnumEquipLocation.LowerLeg];
            ////body = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.LowerLegBody]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    body.addNext(tempNode);
            //}
            ////Machine
            //tempExercises = equipMachineExercises[(int)EnumEquipLocation.LowerLeg];
            ////machine = new Node<Exercise>(new List<Node<Exercise>>(), exercises[(int)EnumGroupLocation.LowerLegMachine]);
            //foreach (Exercise i in tempExercises)
            //{
            //    tempNode = new Node<Exercise>(new List<Node<Exercise>>(), i);
            //    machine.addNext(tempNode);
            //}
            //lowerLeg.addNext(barbell);
            //lowerLeg.addNext(dumbbell);
            //lowerLeg.addNext(cable);
            //lowerLeg.addNext(body);
            //lowerLeg.addNext(machine);
        }
Exemple #2
0
        //build the tree to search
        public static void buildTree()
        {
            List <Exercise>         exercises = TreeStructure.getExercises();
            List <Node <Exercise> > nextNodes = new List <Node <Exercise> >();

            //Full body
            tree = new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.FullBody]);
            tree.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.UpperBody]));
            tree.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.LowerBody]));
            nextNodes = tree.getNext();

            //Upper body
            Node <Exercise> upperBody = nextNodes[0];

            upperBody.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.Push]));
            upperBody.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.Pull]));

            //Lower body
            Node <Exercise> lowerBody = nextNodes[1];

            lowerBody.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.UpperLeg]));
            lowerBody.addNext(new Node <Exercise>(new List <Node <Exercise> >(), exercises[(int)EnumGroupLocation.LowerLeg]));

            //Equipment and Exercises
            Node <Exercise> barbell  = new Node <Exercise>();
            Node <Exercise> dumbbell = new Node <Exercise>();
            Node <Exercise> body     = new Node <Exercise>();
            Node <Exercise> machine  = new Node <Exercise>();

            List <List <Exercise> > equipExercises = TreeStructure.getBarbell();
            Node <Exercise>         tempNode;
            List <Exercise>         tempExercises = new List <Exercise>();

            //Push
            nextNodes = upperBody.getNext();
            Node <Exercise> push = nextNodes[0];

            //Barbell
            tempExercises = equipExercises[0];
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                barbell.addNext(tempNode);
            }
            //Dumbbell
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                dumbbell.addNext(tempNode);
            }
            //Body
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                body.addNext(tempNode);
            }
            //Machine
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                machine.addNext(tempNode);
            }
            push.addNext(barbell);
            push.addNext(dumbbell);
            push.addNext(body);
            push.addNext(machine);

            //Pull
            Node <Exercise> pull = nextNodes[1];

            //Barbell
            tempExercises = equipExercises[1];
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                barbell.addNext(tempNode);
            }
            //Dumbbell
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                dumbbell.addNext(tempNode);
            }
            //Body
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                body.addNext(tempNode);
            }
            //Machine
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                machine.addNext(tempNode);
            }
            pull.addNext(barbell);
            pull.addNext(dumbbell);
            pull.addNext(body);
            pull.addNext(machine);

            //Upper leg
            nextNodes = lowerBody.getNext();
            Node <Exercise> upperLeg = nextNodes[0];

            //Barbell
            tempExercises = equipExercises[1];
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                barbell.addNext(tempNode);
            }
            //Dumbbell
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                dumbbell.addNext(tempNode);
            }
            //Body
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                body.addNext(tempNode);
            }
            //Machine
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                machine.addNext(tempNode);
            }
            upperLeg.addNext(barbell);
            upperLeg.addNext(dumbbell);
            upperLeg.addNext(body);
            upperLeg.addNext(machine);

            //Lower leg
            Node <Exercise> lowerLeg = nextNodes[1];

            //Barbell
            tempExercises = equipExercises[1];
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                barbell.addNext(tempNode);
            }
            //Dumbbell
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                dumbbell.addNext(tempNode);
            }
            //Body
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                body.addNext(tempNode);
            }
            //Machine
            foreach (Exercise i in tempExercises)
            {
                tempNode = new Node <Exercise>(new List <Node <Exercise> >(), i);
                machine.addNext(tempNode);
            }
            lowerLeg.addNext(barbell);
            lowerLeg.addNext(dumbbell);
            lowerLeg.addNext(body);
            lowerLeg.addNext(machine);
        }