Ejemplo n.º 1
0
        protected override void Initialize()
        {
            int answers;
            int correct_answer;

            if (predicates == null)
            {
                LoadPredicates();
            }

            question = random.Next(predicates.Length);

            correct_answer = predicates [question].answer_index;
            answers        = predicates [question].options.Length;
            random_indices = new ArrayListIndicesRandom(answers - 1);
            random_indices.Initialize();
            random_indices.Add(answers - 1);

            for (int i = 0; i < answers; i++)
            {
                if (random_indices[i] == correct_answer)
                {
                    Answer.Correct = Answer.GetMultiOption(i);
                    break;
                }
            }

            Container container = new Container(DrawAreaX, DrawAreaY + 0.15, 0.8, 0.6);

            AddWidget(container);

            for (int i = 0; i < predicates[question].options.Length; i++)
            {
                DrawableArea drawable_area = new DrawableArea(0.8, 0.12);
                drawable_area.X = DrawAreaX;
                drawable_area.Y = DrawAreaY + 0.15 + i * 0.18;
                container.AddChild(drawable_area);
                drawable_area.Data   = i;
                drawable_area.DataEx = Answer.GetMultiOption(i);

                drawable_area.DrawEventHandler += delegate(object sender, DrawEventArgs e)
                {
                    int data   = (int)e.Data;
                    int option = random_indices [data];

                    e.Context.SetPangoNormalFontSize();
                    e.Context.DrawStringWithWrapping(0.05, 0.02, String.Format(Translations.GetString("{0}) {1}"), Answer.GetMultiOption(data),
                                                                               predicates[question].options[option].ToString()), 0.8 - DrawAreaX);
                    e.Context.Stroke();
                };
            }
        }
Ejemplo n.º 2
0
        protected override void Initialize()
        {
            int answers;
            int correct_answer;

            if (predicates == null)
                LoadPredicates ();

            question = random.Next (predicates.Length);

            correct_answer = predicates [question].answer_index;
            answers = predicates [question].options.Length;
            random_indices = new ArrayListIndicesRandom (answers - 1);
            random_indices.Initialize ();
            random_indices.Add (answers - 1);

            for (int i = 0; i < answers; i++)
            {
                if (random_indices[i] ==  correct_answer) {
                    Answer.Correct = Answer.GetMultiOption (i);
                    break;
                }
            }

            Container container = new Container (DrawAreaX, DrawAreaY + 0.15, 0.8, 0.6);
            AddWidget (container);

            for (int i = 0; i <  predicates[question].options.Length; i++)
            {
                DrawableArea drawable_area = new DrawableArea (0.8, 0.12);
                drawable_area.X = DrawAreaX;
                drawable_area.Y = DrawAreaY + 0.15 + i * 0.18;
                container.AddChild (drawable_area);
                drawable_area.Data = i;
                drawable_area.DataEx = Answer.GetMultiOption (i);

                drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
                {
                    int data = (int) e.Data;
                    int option = random_indices [data];

                    e.Context.SetPangoNormalFontSize ();
                    e.Context.DrawStringWithWrapping (0.05, 0.02, String.Format (Translations.GetString ("{0}) {1}"), Answer.GetMultiOption (data),
                        predicates[question].options[option].ToString ()), 0.8 - DrawAreaX);
                    e.Context.Stroke ();
                };
            }
        }
Ejemplo n.º 3
0
        private ArrayListIndicesRandom RandomizeFromArray(ArrayList ar)
        {
            int index;

            object [] array = (object [])ar.ToArray(typeof(object));
            ArrayListIndicesRandom elements = new ArrayListIndicesRandom(ar.Count);
            int left = ar.Count;

            elements.Clear();

            // Generate a random number that can be as big as the maximum -1
            // Add the random element picked up element in the list
            // The element just randomized gets out of pending list and replaced by the maximum -1 element
            for (int i = 0; i < ar.Count; i++, left--)
            {
                index = random.Next(left);
                elements.Add((int)array[index]);
                array[index] = array[left - 1];
            }
            return(elements);
        }
Ejemplo n.º 4
0
        private ArrayListIndicesRandom RandomizeFromArray(ArrayList ar)
        {
            int index;
            object []array = (object []) ar.ToArray (typeof (object));
            ArrayListIndicesRandom elements = new ArrayListIndicesRandom (ar.Count);
            int left = ar.Count;
            elements.Clear ();

            // Generate a random number that can be as big as the maximum -1
            // Add the random element picked up element in the list
            // The element just randomized gets out of pending list and replaced by the maximum -1 element
            for (int i = 0; i < ar.Count; i++, left--) {
                index = random.Next (left);
                elements.Add ((int) array[index]);
                array[index] = array[left - 1];
            }
            return elements;
        }