示例#1
0
        private void AdvanceToImplicitRecognitionTask()
        {
            LogicEngine.InitializeImplicitRecognitionTask();

            ImpRecogControls
            .ForEach
            (
                control =>
            {
                control.RecognitionRound = LogicEngine.ImplicitRecognitionTask.Rounds[ImpRecogControls.IndexOf(control)];

                control.PictureBox.Image = control.RecognitionRound.Persona.Image;

                control.Radio1.Visible = false;
                control.Radio2.Text    = "Choose";
                control.Radio3.Text    = "Discard";

                control.Radio2.CheckedChanged +=
                    (sender, e) =>
                {
                    int countChecked =
                        ImpRecogControls.Count <RecognitionUserControl>(ruc => ruc.Radio2.Checked == true);
                    if (countChecked < 12)
                    {
                        ImpRecogSubmitButton.Enabled = false;
                    }
                    else
                    if (countChecked == 12)
                    {
                        ImpRecogSubmitButton.Enabled = true;
                    }
                    else
                    if (countChecked > 12)
                    {
                        ImpRecogSubmitButton.Enabled = false;

                        MessageBox.Show
                        (
                            string.Format("You have chosen {0} too many. ", countChecked - 12) +
                            "Please discard those you would NOT want to play again until you reach twelve chosen players.",
                            string.Format("Please Discard {0}", countChecked - 12),
                            MessageBoxButtons.OK
                        );
                    }
                };
            }
            );

            DemographicsTaskTab.RemoveFromAllowedTabs();
            ShowTab(ImpRecogTaskTab);
        }
示例#2
0
        private void AdvanceToImplicitRecognitionTask()
        {
            this.Tabs.Controls.Add(this.ImpRecogTaskTab);

            LogicEngine.InitializeImplicitRecognitionTask();

            ImpRecogControls
            .ForEach
            (
                control =>
            {
                control.RecognitionRound = LogicEngine.ImplicitRecognitionTask.Rounds[ImpRecogControls.IndexOf(control)];

                control.PictureBox.Image = control.RecognitionRound.Persona.Image;

                control.Radio1.Visible = false;
                control.Radio2.Text    = "Choose";
                control.Radio3.Text    = "Discard";

                control.Radio2.CheckedChanged +=
                    (sender, e) =>
                {
                    int countChecked =
                        ImpRecogControls.Count <RecognitionUserControl>(ruc => ruc.Radio2.Checked == true);
                    if (countChecked < 12)
                    {
                        ImpRecogSubmitButton.Enabled = false;
                    }
                    else
                    if (countChecked == 12)
                    {
                        ImpRecogSubmitButton.Enabled = true;
                    }
                    else
                    if (countChecked > 12)
                    {
                        ImpRecogSubmitButton.Enabled = false;

                        ShowMessageBoxForImplicitRecognitionTaskImproperSelectionsFeedback(countChecked);
                    }
                };
            }
            );

            DemographicsTaskTab.RemoveFromAllowedTabs();
            ShowTab(ImpRecogTaskTab);
        }
示例#3
0
        private static void RunTrustExchangeTask()
        {
            Console.WriteLine("TRUST EXCHANGE TASK:");
            Console.WriteLine();

            while (LogicEngine.TrustExchangeTask.CurrentRoundIndex < LogicEngine.TrustExchangeTask.Rounds.Count)
            {
                Console.WriteLine(string.Format("ROUND {0} / {1}:", LogicEngine.TrustExchangeTask.CurrentRoundIndex + 1, LogicEngine.TrustExchangeTask.Rounds.Count));
                Console.WriteLine(string.Format("PERSONA: {0}", LogicEngine.TrustExchangeTask.CurrentRound.Persona.FileName));

                Console.Write("Give how many points? (1/2) ");

                int points = -1;
                Int32.TryParse(Console.In.ReadLine(), out points);

                // TODO : wrap this in order to redirect invalid input
                LogicEngine.TrustExchangeTask.ProcessPlayerInput(points);

                Console.WriteLine(string.Format("PLAYER  GAVE: {0} POINTS.", LogicEngine.TrustExchangeTask.CurrentRound.RawPlayerPointsIn));
                Console.WriteLine(string.Format("PERSONA GAVE: {0} POINTS", LogicEngine.TrustExchangeTask.CurrentRound.MultipliedPersonaPointsOut));
                Console.WriteLine(string.Format("PERSONA CLASSIFICATION: {0}", LogicEngine.TrustExchangeTask.CurrentRound.Persona.Classification.Value));
                Console.WriteLine();

                if (LogicEngine.TrustExchangeTask.CurrentRoundIndex == LogicEngine.TrustExchangeTask.Rounds.Count - 1)
                {
                    break;
                }
                else
                {
                    LogicEngine.TrustExchangeTask.AdvanceToNextRound();
                }
            }

            Console.WriteLine("PERSONA SUMMARY:");
            LogicEngine.Personas.ForEach(persona => Console.WriteLine(persona.ToString()));
            Console.WriteLine();

            Console.WriteLine(string.Format("TOTAL COOPERATORS: {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Cooperator).Count));
            Console.WriteLine(string.Format("TOTAL DEFECTORS:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Defector).Count));
            Console.WriteLine(string.Format("TOTAL INDETERMINATE:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Indeterminate).Count));
            Console.WriteLine(string.Format("TOTAL NOVEL:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Novel).Count));
            Console.WriteLine(string.Format("TOTAL UNUSED:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Unused).Count));
            Console.WriteLine();
            Console.WriteLine();


            Console.WriteLine("==========================================================================================================================");
            Console.WriteLine();
            Console.WriteLine();

            Console.WriteLine("IMPLICIT RECOGNITION TASK:");
            Console.WriteLine();

            LogicEngine.InitializeImplicitRecognitionTask();
            int fauxImplicitRoundIndex = 0;

            while (fauxImplicitRoundIndex < LogicEngine.ImplicitRecognitionTask.Rounds.Count)
            {
                RecognitionRound currentImplicitRound = LogicEngine.ImplicitRecognitionTask.Rounds[fauxImplicitRoundIndex];

                Console.WriteLine(string.Format("ROUND {0} / {1}:", fauxImplicitRoundIndex + 1, LogicEngine.ImplicitRecognitionTask.Rounds.Count));
                Console.WriteLine(string.Format("{0}", currentImplicitRound.Persona));

                Console.Write("How do you classify this persona? (1=ImplicitChoose, 2=ImplicitDiscard) ");

                int implicitInput = -1;
                Int32.TryParse(Console.In.ReadLine(), out implicitInput);

                // TODO : wrap this in order to redirect invalid input
                LogicEngine
                .ImplicitRecognitionTask
                .ProcessPlayerInput
                (
                    currentImplicitRound,
                    implicitInput == 1 ?
                    PlayerInputClassifications.ImplicitlyChosePersona :
                    PlayerInputClassifications.ImplicitlyDiscardedPersona
                );

                Console.WriteLine(string.Format("PLAYER  INPUT : {0}", currentImplicitRound.PlayerInputClassification));
                Console.WriteLine(string.Format("PERSONA ACTUAL: {0}", currentImplicitRound.Persona.Classification));
                Console.WriteLine();

                if (fauxImplicitRoundIndex == LogicEngine.ImplicitRecognitionTask.Rounds.Count - 1)
                {
                    break;
                }
                else
                {
                    fauxImplicitRoundIndex++;
                }
            }

            Console.WriteLine("PERSONA SUMMARY:");
            LogicEngine.Personas.ForEach(persona => Console.WriteLine(persona.ToString()));
            Console.WriteLine();

            Console.WriteLine(string.Format("TOTAL COOPERATORS: {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Cooperator).Count));
            Console.WriteLine(string.Format("TOTAL DEFECTORS:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Defector).Count));
            Console.WriteLine(string.Format("TOTAL INDETERMINATE:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Indeterminate).Count));
            Console.WriteLine(string.Format("TOTAL NOVEL:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Novel).Count));
            Console.WriteLine(string.Format("TOTAL UNUSED:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Unused).Count));
            Console.WriteLine();
            Console.WriteLine();


            Console.WriteLine("==========================================================================================================================");
            Console.WriteLine();
            Console.WriteLine();

            Console.WriteLine("EXPLICIT RECOGNITION TASK:");
            Console.WriteLine();

            LogicEngine.InitializeExplicitRecognitionTask();
            int fauxExplicitRoundIndex = 0;

            while (fauxExplicitRoundIndex < LogicEngine.ExplicitRecognitionTask.Rounds.Count)
            {
                RecognitionRound currentExplicitRound = LogicEngine.ExplicitRecognitionTask.Rounds[fauxExplicitRoundIndex];

                Console.WriteLine(string.Format("ROUND {0} / {1}:", fauxExplicitRoundIndex + 1, LogicEngine.ExplicitRecognitionTask.Rounds.Count));
                Console.WriteLine(string.Format("{0}", currentExplicitRound.Persona));

                Console.Write("How do you classify this persona? (1=ExplicitChooseCooperator, 2=ExplicitChooseDefector, 3=ExplicitDiscard) ");

                int explicitInput = -1;
                Int32.TryParse(Console.In.ReadLine(), out explicitInput);

                // TODO : wrap this in order to redirect invalid input
                LogicEngine
                .ExplicitRecognitionTask
                .ProcessPlayerInput
                (
                    currentExplicitRound,
                    explicitInput == 1 ?
                    PlayerInputClassifications.ExplicitlyChoseCooperatorPersona :
                    explicitInput == 2 ?
                    PlayerInputClassifications.ExplicitlyChoseDefectorPersona :
                    PlayerInputClassifications.ExplicitlyDiscardedPersona
                );

                Console.WriteLine(string.Format("PLAYER  INPUT : {0}", currentExplicitRound.PlayerInputClassification));
                Console.WriteLine(string.Format("PERSONA ACTUAL: {0}", currentExplicitRound.Persona.Classification));
                Console.WriteLine();

                if (fauxExplicitRoundIndex == LogicEngine.ExplicitRecognitionTask.Rounds.Count - 1)
                {
                    break;
                }
                else
                {
                    fauxExplicitRoundIndex++;
                }
            }

            Console.WriteLine("PERSONA SUMMARY:");
            LogicEngine.Personas.ForEach(persona => Console.WriteLine(persona.ToString()));
            Console.WriteLine();

            Console.WriteLine(string.Format("TOTAL COOPERATORS: {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Cooperator).Count));
            Console.WriteLine(string.Format("TOTAL DEFECTORS:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Defector).Count));
            Console.WriteLine(string.Format("TOTAL INDETERMINATE:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Indeterminate).Count));
            Console.WriteLine(string.Format("TOTAL NOVEL:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Novel).Count));
            Console.WriteLine(string.Format("TOTAL UNUSED:   {0}", LogicEngine.GetPersonas <Round>(PersonaClassifications.Unused).Count));
            Console.WriteLine();
            Console.WriteLine();
        }