예제 #1
0
        private static bool ValidarColorBanda(TipoBanda tipoBanda, TipoColor tipoColor)
        {
            Dictionary <TipoColor, FilaCodigoColores> codigoColores = CodigoColores.ObtenerInstancia().TablaCodigoColores;

            if (tipoBanda == TipoBanda.DIGITO)
            {
                if (codigoColores[tipoColor].Digito != string.Empty)
                {
                    return(true);
                }
            }
            if (tipoBanda == TipoBanda.MULTIPLICADOR)
            {
                if (codigoColores[tipoColor].Multiplicador != string.Empty)
                {
                    return(true);
                }
            }
            if (tipoBanda == TipoBanda.TOLERANCIA)
            {
                if (codigoColores[tipoColor].Tolerancia != string.Empty)
                {
                    return(true);
                }
            }
            if (tipoBanda == TipoBanda.COEFICIENTE_TEMPERATURA)
            {
                if (codigoColores[tipoColor].CoeficienteTemperatura != string.Empty)
                {
                    return(true);
                }
            }

            return(false);
        }
예제 #2
0
 private void rojoToolStripMenuItem_Click(object sender, EventArgs e)
 {
     this.rojoToolStripMenuItem.Checked  = true;
     this.azulToolStripMenuItem.Checked  = false;
     this.negroToolStripMenuItem.Checked = false;
     color_actual = TipoColor.Red;
 }
예제 #3
0
 private void btnInvertir_Click(object sender, RoutedEventArgs e)
 {
     //Incrementa la cuenta de clicks:
     this.IncrementarClicks();
     this.TipoColores = TipoColor.INVERTIDO;
     this.CrearMatrizColores();
     this.CrearTablero();
 }
예제 #4
0
 private Color ObtenerColorTexto(TipoColor tipoColor)
 {
     if (tipoColor == TipoColor.NEGRO || tipoColor == TipoColor.CAFE || tipoColor == TipoColor.ROJO || tipoColor == TipoColor.AZUL || tipoColor == TipoColor.VIOLETA)
     {
         return(CodigoColores.ObtenerInstancia().TablaCodigoColores[TipoColor.BLANCO].Color);
     }
     else
     {
         return(CodigoColores.ObtenerInstancia().TablaCodigoColores[TipoColor.NEGRO].Color);
     }
 }
예제 #5
0
    private void CambiarColor()
    {
        cpntAudioSource.Play();
        numeroColorActual++;

        if (numeroColorActual > 14)
        {
            numeroColorActual = 2;
        }
        if (numeroColorActual < 2)
        {
            numeroColorActual = 14;
        }

        tipoColorActual          = (TipoColor)numeroColorActual;
        cpntSpriteRenderer.color = CodigoColores.ObtenerInstancia().TablaCodigoColores[tipoColorActual].Color;

        try
        {
            cpntSpriteRendererTexto.sprite = sprtsCodigoColores[banda.TipoBanda][ObtenerTexto(banda.TipoBanda, tipoColorActual)];
            cpntSpriteRendererTexto.color  = ObtenerColorTexto(tipoColorActual);
            if (cpntSpriteRendererConstante != null)
            {
                cpntSpriteRendererConstante.enabled = true;
                cpntSpriteRendererConstante.color   = ObtenerColorTexto(tipoColorActual);
            }
        }
        catch
        {
            cpntSpriteRendererTexto.sprite = null;
            if (cpntSpriteRendererConstante != null)
            {
                cpntSpriteRendererConstante.enabled = false;
            }
        }

        if (tipoColorActual == banda.TipoColor)
        {
            esCorrectoColor = true;
        }
        else
        {
            esCorrectoColor = false;
        }
        ctrlResistor.VerificarColores();
    }
예제 #6
0
 private string ObtenerTexto(TipoBanda tipoBanda, TipoColor tipoColor)
 {
     if (tipoBanda == TipoBanda.DIGITO)
     {
         return(CodigoColores.ObtenerInstancia().TablaCodigoColores[tipoColor].Digito);
     }
     if (tipoBanda == TipoBanda.MULTIPLICADOR)
     {
         return(CodigoColores.ObtenerInstancia().TablaCodigoColores[tipoColor].Multiplicador);
     }
     if (tipoBanda == TipoBanda.TOLERANCIA)
     {
         return(CodigoColores.ObtenerInstancia().TablaCodigoColores[tipoColor].Tolerancia);
     }
     if (tipoBanda == TipoBanda.COEFICIENTE_TEMPERATURA)
     {
         return(CodigoColores.ObtenerInstancia().TablaCodigoColores[tipoColor].CoeficienteTemperatura);
     }
     return(string.Empty);
 }
예제 #7
0
 private void btnResetearColor_Click(object sender, RoutedEventArgs e)
 {
     this.TipoColores = TipoColor.NORMAL;
     this.CrearMatrizColores();
     this.CrearTablero();
 }
예제 #8
0
 private void button1_Click(object sender, RoutedEventArgs e)
 {
     this.TipoColores = TipoColor.ARBITRARIO;
     this.CrearMatrizColores();
     this.CrearTablero();
 }
예제 #9
0
 private void btnResetearColor_Click(object sender, RoutedEventArgs e)
 {
     this.TipoColores = TipoColor.NORMAL;
     this.CrearMatrizColores();
     this.CrearTablero();
 }
예제 #10
0
 private void button1_Click(object sender, RoutedEventArgs e)
 {
     this.TipoColores = TipoColor.ARBITRARIO;
     this.CrearMatrizColores();
     this.CrearTablero();
 }
예제 #11
0
 private void btnInvertir_Click(object sender, RoutedEventArgs e)
 {
     //Incrementa la cuenta de clicks:
     this.IncrementarClicks();
     this.TipoColores = TipoColor.INVERTIDO;
     this.CrearMatrizColores();
     this.CrearTablero();
 }
예제 #12
0
        public static Resistencia Generar(int numeroBandas)
        {
            if (numeroBandas < 3)
            {
                numeroBandas = 3;
            }

            if (numeroBandas > 6)
            {
                numeroBandas = 6;
            }

            Resistencia resistencia = new Resistencia();

            resistencia.bandas = new Dictionary <int, Banda>();
            Banda banda;


            Dictionary <TipoColor, FilaCodigoColores> codigoColores = CodigoColores.ObtenerInstancia().TablaCodigoColores;
            int       bandaActual   = 1;
            bool      bandaAceptada = false;
            TipoBanda tipoBanda     = TipoBanda.NO_ASIGNADO;
            TipoColor tipoColor     = TipoColor.NINGUNO;

            while (bandaActual <= numeroBandas)
            {
                while (!bandaAceptada)
                {
                    tipoColor = (TipoColor)UnityEngine.Random.Range(2, 15); // Se omite el EnumColor.NINGUNO
                    tipoBanda = TipoBanda.NO_ASIGNADO;

                    if (bandaActual == 1)
                    {
                        if (tipoColor != TipoColor.NEGRO)
                        {
                            tipoBanda = TipoBanda.DIGITO;
                        }
                    }

                    if (bandaActual == 2)
                    {
                        tipoBanda = TipoBanda.DIGITO;
                    }

                    if (bandaActual == 3 && numeroBandas < 5)
                    {
                        tipoBanda = TipoBanda.MULTIPLICADOR;
                    }

                    if (bandaActual == 4 && numeroBandas == 4)
                    {
                        tipoBanda = TipoBanda.TOLERANCIA;
                    }

                    if (bandaActual == 3 && numeroBandas > 4)
                    {
                        tipoBanda = TipoBanda.DIGITO;
                    }

                    if (bandaActual == 4 && numeroBandas > 4)
                    {
                        tipoBanda = TipoBanda.MULTIPLICADOR;
                    }

                    if (bandaActual == 5)
                    {
                        tipoBanda = TipoBanda.TOLERANCIA;
                    }

                    if (bandaActual == 6)
                    {
                        tipoBanda = TipoBanda.COEFICIENTE_TEMPERATURA;
                    }

                    bandaAceptada = ValidarColorBanda(tipoBanda, tipoColor);
                }

                banda           = new Banda();
                banda.TipoBanda = tipoBanda;
                banda.TipoColor = tipoColor;
                banda.Valor     = ObtenerValorBanda(banda.TipoBanda, banda.TipoColor);
                resistencia.bandas.Add(bandaActual, banda);
                bandaActual++;
                bandaAceptada = false;
            }

            // Los resistores de 3 bandas son resistores de 4 bandas con la última banda sin color.
            if (numeroBandas == 3)
            {
                banda           = new Banda();
                banda.TipoBanda = TipoBanda.TOLERANCIA;
                banda.TipoColor = TipoColor.NINGUNO;
                banda.Valor     = ObtenerValorBanda(banda.TipoBanda, banda.TipoColor);
                resistencia.bandas.Add(4, banda);
            }

            return(resistencia);
        }
예제 #13
0
    public void Establecer(Banda parametroBanda, bool parametroModificable)
    {
        if (sprtsCodigoColores == null)
        {
            sprtsCodigoColores = ObtenerSprites();
        }

        banda              = parametroBanda;
        modificable        = parametroModificable;
        cpntSpriteRenderer = GetComponent <SpriteRenderer>();

        if (banda == null)
        {
            esCorrectoColor          = true;
            cpntSpriteRenderer.color = Color.clear;

            cpntSpriteRendererConstante    = null;
            cpntSpriteRendererTexto        = transform.GetChild(0).gameObject.GetComponent <SpriteRenderer>();
            cpntSpriteRendererTexto.sprite = null;

            //cpntSpriteRendererConstanteObjetivo = null;
            cpntSpriteRendererTextoObjetivo        = transform.GetChild(1).gameObject.GetComponent <SpriteRenderer>();
            cpntSpriteRendererTextoObjetivo.sprite = null;
        }
        else
        {
            if (banda.TipoBanda != TipoBanda.MULTIPLICADOR)
            {
                cpntSpriteRendererConstante = null;
                cpntSpriteRendererTexto     = transform.GetChild(0).gameObject.GetComponent <SpriteRenderer>();

                //cpntSpriteRendererConstanteObjetivo = null;
                cpntSpriteRendererTextoObjetivo = transform.GetChild(1).gameObject.GetComponent <SpriteRenderer>();
            }
            else
            {
                cpntSpriteRendererConstante = transform.GetChild(0).gameObject.GetComponent <SpriteRenderer>();
                cpntSpriteRendererTexto     = transform.GetChild(0).GetChild(0).gameObject.GetComponent <SpriteRenderer>();

                //cpntSpriteRendererConstanteObjetivo = transform.GetChild(1).gameObject.GetComponent<SpriteRenderer>();
                cpntSpriteRendererTextoObjetivo = transform.GetChild(1).GetChild(0).gameObject.GetComponent <SpriteRenderer>();
            }

            if (modificable == true)
            {
                esCorrectoColor = false;

                do
                {
                    tipoColorActual = (TipoColor)Random.Range(2, 15);
                } while (tipoColorActual == banda.TipoColor);
                numeroColorActual        = (int)tipoColorActual;
                cpntSpriteRenderer.color = CodigoColores.ObtenerInstancia().TablaCodigoColores[tipoColorActual].Color;

                try
                {
                    cpntSpriteRendererTexto.sprite = sprtsCodigoColores[banda.TipoBanda][ObtenerTexto(banda.TipoBanda, tipoColorActual)];
                    cpntSpriteRendererTexto.color  = ObtenerColorTexto(tipoColorActual);
                    if (cpntSpriteRendererConstante != null)
                    {
                        cpntSpriteRendererConstante.enabled = true;
                        cpntSpriteRendererConstante.color   = ObtenerColorTexto(tipoColorActual);
                    }
                }
                catch
                {
                    cpntSpriteRendererTexto.sprite = null;
                    if (cpntSpriteRendererConstante != null)
                    {
                        cpntSpriteRendererConstante.enabled = false;
                    }
                }

                cpntSpriteRendererTextoObjetivo.sprite = sprtsCodigoColores[banda.TipoBanda][banda.Valor];
            }
            else
            {
                esCorrectoColor = true;

                cpntSpriteRenderer.color = Color.clear;

                cpntSpriteRendererTexto.sprite = sprtsCodigoColores[banda.TipoBanda][banda.Valor];
                cpntSpriteRendererTexto.color  = Color.black;

                cpntSpriteRendererTextoObjetivo.sprite = sprtsCodigoColores[banda.TipoBanda][banda.Valor];
            }
        }
    }