public MovimentosEnum NextPositionValidation() { var positions = TotalValidacoes.Where(x => x.Value < Configuration.GAME_VALIDATIONS)?.Select(entry => entry.Key).ToList(); if (positions == null || positions.Count == 0x0) { return(MovimentosEnum.DISABLE); } if (m_lastPositon == MovimentosEnum.UNKNOWN) { var randomPosition = positions.Shuffle().First(); CurrentIndex = Validacoes.IndexOf(Validacoes.FirstOrDefault(x => x.Movimento == randomPosition)); m_lastPositon = randomPosition; } else if (positions.Count == 1 && positions.First() == m_lastPositon) { CurrentIndex = Validacoes.IndexOf(Validacoes.FirstOrDefault(x => x.Movimento == m_lastPositon)); } else { var randomPosition = positions.Shuffle().FirstOrDefault(entry => entry != m_lastPositon); CurrentIndex = Validacoes.IndexOf(Validacoes.FirstOrDefault(x => x.Movimento == randomPosition)); m_lastPositon = randomPosition; } TotalValidacoes[m_lastPositon]++; return(m_lastPositon); }
/// <summary> /// Adiciona uma nova tentativa no total de tentativas, e em acertos caso for um movimento válido /// </summary> /// <param name="validationType"></param> public void AdicionarTotal(ValidacaoEnum validationType, MovimentosEnum currentMovement) { Total[currentMovement]++; if (validationType == ValidacaoEnum.VALIDO) { TotalAcertos[currentMovement]++; } }
/// <summary> /// Ação chamada após a finalização da validação de determinado movimento /// </summary> public void OnValidationFinish(object sender, ValidacaoEnum validationType) { Resultado.AdicionarTotal(validationType, m_currentMovement); FeedbackImage = validationType == ValidacaoEnum.VALIDO ? "/Images/Sequencia/Feedback/Acerto.png" : "/Images/Sequencia/Feedback/Falha.png"; if (!NextImage.Equals("")) { m_currentMovement = ActivityManager.Instance.GetMovement(NextImage); } }
/// <summary> /// /// </summary> public void ResetGame() { Finalizado = false; m_currentMovement = Resultado.Total.Keys.First(); CurrentImage = ActivityManager.Instance.GetPositionPictogram(m_currentMovement); CurrentImage = ""; Resultado.Reset(); }
/// <summary> /// /// </summary> private void StartValidation() { MovimentosEnum result = (Control as ControlarPrincipal).IniciarValidacao(); Model.UpdateImage(result); if (result == MovimentosEnum.DISABLE) { RunDialog(); } }
public MovimentosEnum IniciarValidacao(TreinamentoEnum trainingType, Action <int> buttonAction) { TreinamentoGame.TipoTreinamento = trainingType; MovimentosEnum movimento = TreinamentoGame.GetPosition(); if (!CanPlay || movimento != MovimentosEnum.DISABLE) { Animation?.Start(buttonAction); } return(movimento); }
/// <summary> /// Reseta o treinamento para iniciar um novo jogo /// </summary> public void ResetTraining() { RemakeButtonEnabled = false; // if (Resultado.PrimeiraValidacao) //Refazer o treinamento porém nem começou ? x) // return; Finalizado = false; m_currentMovement = Resultado.Total.Keys.First(); NextImage = ActivityManager.Instance.GetPositionPictogram(m_currentMovement); CurrentImage = ""; ButtonText = "Iniciar"; Resultado.Reset(); }
/// <summary> /// /// </summary> /// <returns></returns> public MovimentosEnum IniciarValidacao() { MovimentosEnum movimento = GameClass.NextPositionValidation(); if (movimento != MovimentosEnum.DISABLE) { Animation?.Start(); if (GameState == Enums.Gameplay.GameStateEnum.Paused) { Animation?.Pause(); } } return(movimento); }
/// <summary> /// Altera a imagem do pictograma baseado no movimento atual /// </summary> /// <param name="nextPosition"></param> public void UpdateImage(MovimentosEnum nextPosition) { if (Finalizado) { return; } if (nextPosition == MovimentosEnum.DISABLE) { Finalizado = true; return; } m_currentMovement = nextPosition; CurrentImage = ActivityManager.Instance.GetPositionPictogram(nextPosition); }
/// <summary> /// Altera a imagem do pictograma baseado no movimento atual /// </summary> /// <param name="nextPosition"></param> public void UpdateImage(MovimentosEnum nextPosition) { if (Finalizado) { return; } if (ButtonText.Equals("Iniciar")) { ButtonText = "Próxima"; } if (nextPosition == MovimentosEnum.UNKNOWN) { FinalizarTreinamento(); return; } CurrentImage = NextImage; NextImage = ActivityManager.Instance.GetPositionPictogram(nextPosition); }
public PositionTemplate GetPosition(MovimentosEnum positionId) { return(m_templates.Values.FirstOrDefault(x => x.MovementId == positionId)); }
public string GetPositionPictogram(MovimentosEnum positionId) { return(m_templates.Values.FirstOrDefault(x => x.MovementId == positionId).PictogramDirectory); }
public MovementValidationArgs(MovimentosEnum movimentoValidado) { MovimentoValidado = movimentoValidado; }
/// <summary> /// Retorna a média (TotalAcertos/Total) de um determinado movimento /// </summary> /// <param name="position"></param> /// <returns></returns> public double CalcularMedia(MovimentosEnum position) { return(Math.Round((double)(((double)TotalAcertos[position]) / ((double)Total[position])), 2) * 100); }
private bool CanCheck(MovimentosEnum movimentoValidado) { return(TotalValidacoes[movimentoValidado] >= Configuration.GAME_VALIDATIONS); }