none
Proyecto con pictureBox y RadioButton RRS feed

  • Pregunta

  • como puedo hacer un proyecto con un pictureBox y 5 opciones de radioButton que al aparecer una imagen en el pictureBox contestar que es con las opciones del radioButton y me aparezca un mensaje diciéndome si esta correcto o incorrecto al precionar el un botón y llevar una puntuación y con otro botón cambiar las imágenes en modo random, esto en Visual Studio 2019.

    gracias por su ayuda...

    miércoles, 31 de julio de 2019 1:53

Todas las respuestas

  • Hola Yiyo, la idea del foro es ayudar, si colocas tu avance del proyecto sin duda te podremos orientar

    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    miércoles, 31 de julio de 2019 2:02
  •  int nuevo;

            private void RdbObeja_CheckedChanged(object sender, EventArgs e)
            {

            }

            private void BtnNuevo_Click(object sender, EventArgs e)
            {
                Random random = new Random();
                nuevo = random.Next(1, 5);


                switch (nuevo)
                {
                    case 1:
                        pic1.ImageLocation = "C:\\Users\\Eligio Morales Nuñez\\Pictures\\imagenes animales proyecto\\abeja.jpg";
                        break;

                    case 2:
                        pic1.ImageLocation = "C:\\Users\\Eligio Morales Nuñez\\Pictures\\imagenes animales proyecto\\elefante.jpg";
                        break;

                    case 3:
                        pic1.ImageLocation = "C:\\Users\\Eligio Morales Nuñez\\Pictures\\imagenes animales proyecto\\hipopotamo.jpg";
                        break;

                    case 4:
                        pic1.ImageLocation = "C:\\Users\\Eligio Morales Nuñez\\Pictures\\imagenes animales proyecto\\leon.jpg";
                        break;





                }

    hice el random de las imagenes pero no encuentro la salucion para crear el boton de respuesta para comprobar si lo que seleccione en el radioButton esta correcto, soy nuevo en esto y se me complica.

    gracias por contestar...

                                          
    miércoles, 31 de julio de 2019 2:31
  • Hola Yiyo! Te tiro una idea de como lo haría yo..Declararía variables a nivel de clase, y en los PictureBox le asignaría su nombre..Lo mismo para los RadioButton..Y haría un boton que compare las variables del PictureBox con la variable de del RadioButton..

    Ejemplo:

    //Nivel de clase
    string VariablePicture="";
    string VariableButton="";
    int Puntaje=0;
    
    //Picturs
    private void Picture_1(object sender, EventsArgs e)
    {
    VariablePicture="Pajaro";
    }
    
    private void Picture_2(object sender, EventsArgs e)
    {
    VariablePicture="Avion";
    }
    
    private void Picture_3(object sender, EventsArgs e)
    {
    VariablePicture="Auto";
    }
    
    //Buttons
    private void Button1(object sender, EventsArgs e)
    {
    VariableButton="Pajaro";
    }
    
    private void Button2(object sender, EventsArgs e)
    {
    VariableButton="Avion";
    }
    
    private void Button3(object sender, EventsArgs e)
    {
    VariableButton="Auto";
    }
    
    
    //Boton aceptar, cargar
    private void Button3(object sender, EventsArgs e)
    {
    
    if(Button1.Checked==false && Button2.Checked==false && Button3.Checked==false)
    {
       MessageBox.Show("Por favor escoja alguna de las 
       opciones")
    }
    else if(Button1.Checked !=false || Button2.Checked !=false || Button3.Checked !=false)
    {
       if(VariablePicture.Equals(VariableButton))
       {
         MessageBox.Show("Usted acerto !")
         Puntaje= Puntaje + 10;
       }
    
       else if(VariablePicture != VariableButton)
       {
         MessageBox.Show("Incorrecto")
         Puntaje= Puntaje - 5;
       }
    }
    
    }
    
    
    
    

    Ojala te sirva, saludos !!


    cervera

    miércoles, 31 de julio de 2019 4:07
  • Hola intenta con esto

    para iniciar

    public partial class Game : Form
    {
        public Game()
        {
            InitializeComponent();
        }
    
        private string path = "";
        private List<string> _archivos = new List<string>();
        private List<string> _opciones = new List<string>();
        private string _answer = "";
        private bool _isAnswered = false;
    
        private void Game_Load(object sender, EventArgs e)
        {
            _archivos = Estaticas.LoadImages(ref path);        
        }
    
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            if (!_isAnswered)
                return;
            string Nombre = ((RadioButton)sender).Text;
            label2.Text =(Nombre == _answer)? "Correcto":"Fallaste";
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            Star();
        }
    
        public void Star()
        {
            _opciones = _archivos.Opciones(5);
            _answer = _opciones.Opciones(1).FirstOrDefault();
            _isAnswered = false;
            pictureBox1.Image = Image.FromFile($@"{path}\{_answer}");
            radioButton1.Text = _opciones[0];
            radioButton2.Text = _opciones[1];
            radioButton3.Text = _opciones[2];
            radioButton4.Text = _opciones[3];
            radioButton5.Text = _opciones[4];
            radioButton1.Checked = false;
            radioButton2.Checked = false;
            radioButton3.Checked = false;
            radioButton4.Checked = false;
            radioButton5.Checked = false;
            _isAnswered = true;
        }
    }
    
    public static class Estaticas
    {
        public static List<string> LoadImages(ref string path)
        {
            path = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
            DirectoryInfo di = new DirectoryInfo(path);
            List<string> archivos = new List<string>();
            foreach (FileInfo f in di.GetFiles())
            {
                if (f.Extension == ".png" || f.Extension == ".jpg" || f.Extension == ".jpeg")
                    archivos.Add(f.Name);
            }
            return archivos;
        }
    
        public static List<string> Opciones(this List<string> archivos, int max)
        {
            Random r = new Random();
            List<string> opciones = new List<string>();
            for (int i = 0; i < 5; i++)
            {
                string nuevo = archivos[r.Next(archivos.Count)];
                if (opciones.Any(x => x == nuevo))
                    i--;
                else
                    opciones.Add(nuevo);
            }
            return opciones;
        }
    }
    

    jueves, 1 de agosto de 2019 2:09