Ejemplo n.º 1
0
        private void btnIniciarExperimento_Click(object sender, EventArgs e)
        {
            var participante    = CriaParticipantePelosCampos();
            var experimentador  = CriaExperimentadorPelosCampos();
            var experimentoUm   = CriaExperimentoUmPelosCampos();
            var experimentoDois = CriarExperimentoDoisPelosCampos();

            var experimentoUmRealizado = new ExperimentoUmRealizado()
            {
                ExperimentoUm = experimentoUm
            };

            var experimentoDoisRealizado = new ExperimentoDoisRealizado()
            {
                ExperimentoDois = experimentoDois
            };

            var experimentoRealizado = new ExperimentoRealizado {
                Participante             = participante,
                Experimentador           = experimentador,
                ExperimentoUmRealizado   = experimentoUmRealizado,
                ExperimentoDoisRealizado = experimentoDoisRealizado,
                DateTimeInicio           = DateTime.Now
            };

            var telaBackgroud = new TelaMensagem("")
            {
                BackColor = Color.Black
            };

            telaBackgroud.Show();

            new TelaMensagem(experimentoUm.InstrucaoInicial, true).ShowDialog();
            new ExperimentoView(experimentoRealizado).ShowDialog();

            var grauFinal = experimentoDoisRealizado.GrauAtual();

            new TelaMensagem($"Fim do Experimento! O seu grau final foi {grauFinal}!\nPor favor, chamar o experimentador.").ShowDialog();
            telaBackgroud.Close();
        }
Ejemplo n.º 2
0
        private async void IniciarNovoNumero()
        {
            string novoNumero;

            if (experimentoAtual == 1)
            {
                novoNumero = experimentoUmRealizado.GeraNumero();

                // Iniciamos o experimento 2
                if (novoNumero == null)
                {
                    experimentoAtual++;

                    experimentoDoisRealizado.SetTamanhoSequencia(experimentoUmRealizado.tamanhoMaximoLinhaDeBase);
                    experimentoDoisRealizado.SetTamanhoBlocoTentativas(experimentoUm.TamanhoBlocoTentativas);
                    experimentoDoisRealizado.DateTimeInicio = DateTime.Now;
                    ExperimentoDoisRealizadoService.Salvar(experimentoDoisRealizado);

                    Opacity = 0;
                    RegistrarEvento($"Tela preta para instrução do experimento dois. Opacidade: {Opacity}", true);
                    new TelaMensagem(experimentoDois.InstrucaoInicial, true).ShowDialog();

                    IniciarNovaFase();
                    return;
                }
            }
            else
            {
                novoNumero = experimentoDoisRealizado.GerarNumero();

                // Acabou o experimento
                if (novoNumero == null)
                {
                    ExperimentoRealizadoService.Salvar(experimentoRealizado);

                    var geradorRelatorio = new GeradorRelatorios(experimentoRealizado);
                    geradorRelatorio.GerarRelatorio();

                    Close();
                    return;
                }

                if (experimentoDoisRealizado.faseAtual > 0)
                {
                    MostrarMensagem(experimentoDoisRealizado.GrauAtual());
                }
            }

            lblNumero.Font = new Font(lblNumero.Font.Name, tamanhoFonteOriginal, lblNumero.Font.Style);
            lblNumero.Text = novoNumero;

            while (TextRenderer.MeasureText(lblNumero.Text, lblNumero.Font).Width >= pnNumero.Size.Width)
            {
                var novaFonte = new Font(lblNumero.Font.Name, lblNumero.Font.Size - 1, lblNumero.Font.Style);
                lblNumero.Font = novaFonte;
                tbInput.Font   = novaFonte;
            }

            lblNumero.Location = new Point {
                Y = (pnNumero.Size.Height - lblNumero.Size.Height) / 2,
                X = (pnNumero.Size.Width - lblNumero.Size.Width) / 2
            };

            RegistrarEvento($"Inciando apresentação de um novo número: {novoNumero}");

            pnNumero.Visible = true;

            await FadeIn(this, 1);

            await Task.Delay(experimentoUm.TempoApresentacaoEstimulo * 1000);

            pnNumero.Visible = false;

            if (experimentoAtual == 1 && experimentoUmRealizado.faseAtual == 0)
            {
                PreparaParaReceberInput();
            }
            else
            {
                SortearPosicaoBotoes();
                btnCerteza.Visible = true;
                btnTalvez.Visible  = true;
                btnCerteza.Enabled = true;
                btnTalvez.Enabled  = true;
                btnInvisivel.Focus();
            }
        }