elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Temas
Páginas: [1]
1  Programación / Java / marcar e identificar un objeto como seleccionado???? en: 21 Junio 2011, 23:28 pm
hola...estoy programando un juego....de puzle y me gustaria hacer un codigo para identificar la pieza seleccionada.....como empiezo????'
2  Programación / .NET (C#, VB.NET, ASP) / DEVOLVER VALORES ALEATORIOS DE UNA ARRAY EN C#?????' en: 19 Junio 2011, 20:22 pm
hola estoy haciendo el juego de la escoba como proyecto de la uni y necesito ayuda....el juego esta en codigo c#

necesito hacer que la array ``cartas´´ que tengo me carge una combinacion aleatorioa de las cartas que estas....puse un for para recorrer la array y despues poner una variable random para que cada vez que se ejecute me de un arden aleatorio de las cartas en la array pero ni me da error ni me funciona...haber si me podeis ayudar porfavor

aqui os dejo mi codigo de lo que tengo hecho hasta ahora...haber si me sabeis decir como es para hacer devolver valores aleatoriois de la array cartas?????


//////////////////////


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace cartas
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int puntos = 0;
        string[] cartas = { "2 bastos", "2 copas", "2 espadas", "2 oros", "3 bastos", "3 copas", "3 espadas", "3 oros", "4 bastos", "4 copas", "4 espadas", "4 oros", "5 bastos", "5 copas", "5 espadas", "5 oros", "6 bastos", "6 copas", "6 espadas", "6 oros", "7 bastos", "7 copas", "7 espadas", "7 oros", "1 asbastos", "1 ascopas", "1 asespadas", "1 asoros", "9 caballobastos", "9 caballocopas", "9 caballoespadas", "9 caballooros", "10 reybastos", "10 reycopas", "10 reyespadas", "10 reyoros", "8 sotasbastos", "8 sotascopas", "8 sotasespadas", "8 sotasoros" };
        PictureBox[] miscartas = new PictureBox[4];
        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }
       
       
        int posi2 = 0;
        int posi = 1;
        private void button1_Click(object sender, EventArgs e)
        {
           
            foreach (Control C in Controls)
            {
                if (C is GroupBox)
                {
                    foreach (PictureBox E in C.Controls)
                    {

                        E.Image = imageList1.Images[posi];
                        E.Tag = posi;
                       
                            posi += 1;
                       
                    }
                }
            }
               
           
        }

        private void button2_Click(object sender, EventArgs e)
        {
         
            foreach (Control C in Controls)
            {
                if ((C is GroupBox)&&(C !=groupBox5))
                {
                    foreach (PictureBox E in C.Controls)
                    {

                        E.Image = imageList1.Images[posi];
                        E.Tag = posi;
                       

                        posi += 1;
                        if (posi == 40)
                        {
                            posi = 1;
                        }
                    }
                }
            }
        }
        int turno = 1;
        private void cambiodeturno()
        {
            if (carta != null)
            {
                carta.Image = null;

                mover = false;
                turno += 1;
                switch (turno)
                {
                    case 1:

                        groupBox1.Visible = true;
                        groupBox4.Visible = false;

                        break;

                    case 2:

                        groupBox2.Visible = true;
                        groupBox1.Visible = false;


                        break;

                    case 3:

                        groupBox3.Visible = true;
                        groupBox2.Visible = false;


                        break;

                    case 4:

                        groupBox4.Visible = true;
                        groupBox3.Visible = false;
                        turno = 0;

                        break;
               
               }
                carta.Location = new System.Drawing.Point(carta.Location.X, carta.Location.Y + 3);
               
                }
                else
                {
                    MessageBox.Show("no hay carta seleccionada", "Atención", MessageBoxButtons.OK);
                }
           
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (puntos == 15)//si la suma de los puntos de la cartas es 15.....pasa el resto de la cadena
            {
                //foreach lo que hace esd recorrer....POR CADA....
                foreach (PictureBox a in groupBox1.Controls)//te recorre todas las cartas que tengo en el grupbox
                {// a es el nombre de cada piturebox
                    for (int i = 0; i <= 4; i++)//recorre las cartas clicadas
                    {
                        if (miscartas != null)//si tengo cartas en la array de mis cartas
                        {
                            if (a.Name == miscartas.Name)//....las miro si son iguales
                            {
                                a.Image = null;//te quita las cartas seleccionadas
                            }
                        }
                    }
                }
                MessageBox.Show("correcto");
             
            }
            else
            {
                MessageBox.Show("no es correcto");
                puntos = 0;
            }
           
            cambiodeturno();
        }

        private void button4_Click(object sender, EventArgs e)
        {
           
            PictureBox micarta = new PictureBox();
            micarta.Location = new System.Drawing.Point(pictureBox16.Location.X + 80, pictureBox16.Location.Y);
            micarta.Size = new System.Drawing.Size(41, 71);
            micarta.Image = carta.Image;
            groupBox5.Controls.Add(micarta);
            cambiodeturno();
        }



        private bool isDragging = false;


        private void carta_MouseDown(object sender, MouseEventArgs e)
        {
            isDragging = true;
        } 
        private void carta_MouseUp(object sender, MouseEventArgs e)
        {
            isDragging = false;
           
        }


        private void carta_MouseMove(object sender, MouseEventArgs e)
        {
            Control ctrl = sender as Control; if (isDragging)
            {
                Point p1 = ctrl.PointToScreen(e.Location);
                Point p2 = ctrl.Parent.PointToClient(p1);
                ctrl.Location = p2;
            }
        }



/*
esto es para recorrer las cartas y colocar una si hay un sitio vacio
        foreach(Control c in Controls){
        if(c is PictureBox)
              {
           if(((PictureBox)c).Image==null)
                {
               ((PictureBox)c).Image=PictureBox//AQUI EN NUMERO DEL PITUREBOX DE DONDE SALDRA LA CARTA.image;
                }
              }
       }
*/



       
        Boolean mover = false;
        PictureBox carta;
       
        private void pictureBox11_Click(object sender, EventArgs e)
        {
           
            if (mover == false)
            {
               
                string cadena = (cartas[Convert.ToInt16(((PictureBox)sender).Tag)]);
                char[] sep = { ' ' };
                Array a = cadena.Split(sep);//te coje el numero especifico de la carta
                puntos += Convert.ToInt16(a.GetValue(0));//te coge la posicion de cada del nombre de la carta
                //en este caso por ejemplo 0 es el numero(2) y 1 es el nombre de la carta
                MessageBox.Show(Convert.ToString(puntos));
                posi2 = 0;
                miscartas[posi2] = ((PictureBox)sender);
                posi2++;

               
                ((PictureBox)sender).Location = new System.Drawing.Point(((PictureBox)sender).Location.X, ((PictureBox)sender).Location.Y - 14);
               
                carta = ((PictureBox)sender);
                 
            }
            mover = true;
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {
          if (mover == false)
            {

                posi2 = 0;
                string cadena = (cartas[Convert.ToInt16(((PictureBox)sender).Tag)]);
                char[] sep = { ' ' };
                Array a = cadena.Split(sep);//te coje el numero especifico de la carta
                puntos += Convert.ToInt16(a.GetValue(0));//te coge la posicion de cada del nombre de la carta
                //en este caso por ejemplo 0 es el numero(2) y 1 es el nombre de la carta
                MessageBox.Show(Convert.ToString(puntos));

                miscartas[posi2] = ((PictureBox)sender);
                posi2++;

                ((PictureBox)sender).Location = new System.Drawing.Point(((PictureBox)sender).Location.X + 14, ((PictureBox)sender).Location.Y);
                carta = ((PictureBox)sender);
           }
            mover = true;
        }

        private void pictureBox8_Click(object sender, EventArgs e)
        {
            if (mover == false)
            {
                posi2 = 0;
                string cadena = (cartas[Convert.ToInt16(((PictureBox)sender).Tag)]);
                char[] sep = { ' ' };
                Array a = cadena.Split(sep);//te coje el numero especifico de la carta
                puntos += Convert.ToInt16(a.GetValue(0));//te coge la posicion de cada del nombre de la carta
                //en este caso por ejemplo 0 es el numero(2) y 1 es el nombre de la carta
                MessageBox.Show(Convert.ToString(puntos));

                miscartas[posi2] = ((PictureBox)sender);
                posi2++;

                ((PictureBox)sender).Location = new System.Drawing.Point(((PictureBox)sender).Location.X, ((PictureBox)sender).Location.Y + 14);
                carta = ((PictureBox)sender);
            }
            mover = true;
        }

        private void pictureBox5_Click(object sender, EventArgs e)
        {
            if (mover == false)
            {
                posi2 = 0;
                string cadena = (cartas[Convert.ToInt16(((PictureBox)sender).Tag)]);
                char[] sep = { ' ' };
                Array a = cadena.Split(sep);//te coje el numero especifico de la carta
                puntos += Convert.ToInt16(a.GetValue(0));//te coge la posicion de cada del nombre de la carta
                //en este caso por ejemplo 0 es el numero(2) y 1 es el nombre de la carta
                MessageBox.Show(Convert.ToString(puntos));

                miscartas[posi2] = ((PictureBox)sender);
                posi2++;

                ((PictureBox)sender).Location = new System.Drawing.Point(((PictureBox)sender).Location.X - 14, ((PictureBox)sender).Location.Y);
                carta = ((PictureBox)sender);
            }
            mover = true;
        }

        private void pictureBox14_Click(object sender, EventArgs e)
        {
            if (mover == false)
            {
                posi2 = 0;
                string cadena = (cartas[Convert.ToInt16(((PictureBox)sender).Tag)]);
                char[] sep = { ' ' };
                Array a = cadena.Split(sep);//te coje el numero especifico de la carta
                puntos += Convert.ToInt16(a.GetValue(0));//te coge la posicion de cada del nombre de la carta
                //en este caso por ejemplo 0 es el numero(2) y 1 es el nombre de la carta
                MessageBox.Show(Convert.ToString(puntos));

                miscartas[posi2] = ((PictureBox)sender);
                posi2++;

                ((PictureBox)sender).Location = new System.Drawing.Point(((PictureBox)sender).Location.X, ((PictureBox)sender).Location.Y - 14);
                carta = ((PictureBox)sender);
            }
            mover = true;
        }
    }
}
3  Foros Generales / Dudas Generales / valores de array aleatorios en C#...URGENTE PORFAVOR en: 19 Junio 2011, 20:09 pm
hola...tengo una array con valores y quiero cargar esos valores de forma aleatorios cada vez que lo ejecute...en c#....estoy haciendo el juego de la escoba como proyecto de la uni y he conseguido cargar las cartas pero siempre me sale el mismo orden...he puesto una funcion que recorre la array y me los de aleatorias las cartas pero ni me da error ni me funciona lo que yo quiero...haber si me podeis ayudar porfavor...es urgente
gracias...

saludos......

aqui les dejo el codigo completo de lo que tengo hasta ahora... haber si me podeis ayudar porfavor....

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9.  
  10. namespace cartas
  11. {
  12.    public partial class Form1 : Form
  13.    {
  14.        public Form1()
  15.        {
  16.            InitializeComponent();
  17.        }
  18.        int puntos = 0;
  19.        string[] cartas = { "2 bastos", "2 copas", "2 espadas", "2 oros", "3 bastos", "3 copas", "3 espadas", "3 oros", "4 bastos", "4 copas", "4 espadas", "4 oros", "5 bastos", "5 copas", "5 espadas", "5 oros", "6 bastos", "6 copas", "6 espadas", "6 oros", "7 bastos", "7 copas", "7 espadas", "7 oros", "1 asbastos", "1 ascopas", "1 asespadas", "1 asoros", "9 caballobastos", "9 caballocopas", "9 caballoespadas", "9 caballooros", "10 reybastos", "10 reycopas", "10 reyespadas", "10 reyoros", "8 sotasbastos", "8 sotascopas", "8 sotasespadas", "8 sotasoros" };
  20.        PictureBox[] miscartas = new PictureBox[4];
  21.        private void groupBox1_Enter(object sender, EventArgs e)
  22.        {
  23.  
  24.        }
  25.  
  26.  
  27.        int posi2 = 0;
  28.        int posi = 1;
  29.        private void button1_Click(object sender, EventArgs e)
  30.        {
  31.  
  32.            foreach (Control C in Controls)
  33.            {
  34.                if (C is GroupBox)
  35.                {
  36.                    foreach (PictureBox E in C.Controls)
  37.                    {
  38.  
  39.                        E.Image = imageList1.Images[posi];
  40.                        E.Tag = posi;
  41.  
  42.                            posi += 1;
  43.  
  44.                    }
  45.                }
  46.            }
  47.  
  48.  
  49.        }
  50.  
  51.        private void button2_Click(object sender, EventArgs e)
  52.        {
  53.  
  54.            foreach (Control C in Controls)
  55.            {
  56.                if ((C is GroupBox)&&(C !=groupBox5))
  57.                {
  58.                    foreach (PictureBox E in C.Controls)
  59.                    {
  60.  
  61.                        E.Image = imageList1.Images[posi];
  62.                        E.Tag = posi;
  63.  
  64.  
  65.                        posi += 1;
  66.                        if (posi == 40)
  67.                        {
  68.                            posi = 1;
  69.                        }
  70.                    }
  71.                }
  72.            }
  73.        }
  74.        int turno = 1;
  75.        private void cambiodeturno()
  76.        {
  77.            if (carta != null)
  78.            {
  79.                carta.Image = null;
  80.  
  81.                mover = false;
  82.                turno += 1;
  83.                switch (turno)
  84.                {
  85.                    case 1:
  86.  
  87.                        groupBox1.Visible = true;
  88.                        groupBox4.Visible = false;
  89.  
  90.                        break;
  91.  
  92.                    case 2:
  93.  
  94.                        groupBox2.Visible = true;
  95.                        groupBox1.Visible = false;
  96.  
  97.  
  98.                        break;
  99.  
  100.                    case 3:
  101.  
  102.                        groupBox3.Visible = true;
  103.                        groupBox2.Visible = false;
  104.  
  105.  
  106.                        break;
  107.  
  108.                    case 4:
  109.  
  110.                        groupBox4.Visible = true;
  111.                        groupBox3.Visible = false;
  112.                        turno = 0;
  113.  
  114.                        break;
  115.  
  116.               }
  117.                carta.Location = new System.Drawing.Point(carta.Location.X, carta.Location.Y + 3);
  118.  
  119.                }
  120.                else
  121.                {
  122.                    MessageBox.Show("no hay carta seleccionada", "Atención", MessageBoxButtons.OK);
  123.                }
  124.  
  125.        }
  126.  
  127.        private void button3_Click(object sender, EventArgs e)
  128.        {
  129.            if (puntos == 15)//si la suma de los puntos de la cartas es 15.....pasa el resto de la cadena
  130.            {
  131.                //foreach lo que hace esd recorrer....POR CADA....
  132.                foreach (PictureBox a in groupBox1.Controls)//te recorre todas las cartas que tengo en el grupbox
  133.                {// a es el nombre de cada piturebox
  134.                    for (int i = 0; i <= 4; i++)//recorre las cartas clicadas
  135.                    {
  136.                        if (miscartas[i] != null)//si tengo cartas en la array de mis cartas
  137.                        {
  138.                            if (a.Name == miscartas[i].Name)//....las miro si son iguales
  139.                            {
  140.                                a.Image = null;//te quita las cartas seleccionadas
  141.                            }
  142.                        }
  143.                    }
  144.                }
  145.                MessageBox.Show("correcto");
  146.  
  147.            }
  148.            else
  149.            {
  150.                MessageBox.Show("no es correcto");
  151.                puntos = 0;
  152.            }
  153.  
  154.            cambiodeturno();
  155.        }
  156.  
  157.        private void button4_Click(object sender, EventArgs e)
  158.        {
  159.  
  160.            PictureBox micarta = new PictureBox();
  161.            micarta.Location = new System.Drawing.Point(pictureBox16.Location.X + 80, pictureBox16.Location.Y);
  162.            micarta.Size = new System.Drawing.Size(41, 71);
  163.            micarta.Image = carta.Image;
  164.            groupBox5.Controls.Add(micarta);
  165.            cambiodeturno();
  166.        }
  167.  
  168.  
  169.  
  170.        private bool isDragging = false;
  171.  
  172.  
  173.        private void carta_MouseDown(object sender, MouseEventArgs e)
  174.        {
  175.            isDragging = true;
  176.        }  
  177.        private void carta_MouseUp(object sender, MouseEventArgs e)
  178.        {
  179.            isDragging = false;
  180.  
  181.        }
  182.  
  183.  
  184.        private void carta_MouseMove(object sender, MouseEventArgs e)
  185.        {
  186.            Control ctrl = sender as Control; if (isDragging)
  187.            {
  188.                Point p1 = ctrl.PointToScreen(e.Location);
  189.                Point p2 = ctrl.Parent.PointToClient(p1);
  190.                ctrl.Location = p2;
  191.            }
  192.        }
  193.  
  194.  
  195.  
  196. /*
  197. esto es para recorrer las cartas y colocar una si hay un sitio vacio
  198.         foreach(Control c in Controls){
  199.         if(c is PictureBox)
  200.               {
  201.            if(((PictureBox)c).Image==null)
  202.                 {
  203.                ((PictureBox)c).Image=PictureBox//AQUI EN NUMERO DEL PITUREBOX DE DONDE SALDRA LA CARTA.image;
  204.                 }
  205.               }
  206.        }
  207. */
  208.  
  209.  
  210.  
  211.  
  212.        Boolean mover = false;
  213.        PictureBox carta;
  214.  
  215.        private void pictureBox11_Click(object sender, EventArgs e)
  216.        {
  217.  
  218.            if (mover == false)
  219.            {
  220.  
  221.                string cadena = (cartas[Convert.ToInt16(((PictureBox)sender).Tag)]);
  222.                char[] sep = { ' ' };
  223.                Array a = cadena.Split(sep);//te coje el numero especifico de la carta
  224.                puntos += Convert.ToInt16(a.GetValue(0));//te coge la posicion de cada del nombre de la carta
  225.                //en este caso por ejemplo 0 es el numero(2) y 1 es el nombre de la carta
  226.                MessageBox.Show(Convert.ToString(puntos));
  227.                posi2 = 0;
  228.                miscartas[posi2] = ((PictureBox)sender);
  229.                posi2++;
  230.  
  231.  
  232.                ((PictureBox)sender).Location = new System.Drawing.Point(((PictureBox)sender).Location.X, ((PictureBox)sender).Location.Y - 14);
  233.  
  234.                carta = ((PictureBox)sender);
  235.  
  236.            }
  237.            mover = true;
  238.        }
  239.  
  240.        private void pictureBox1_Click(object sender, EventArgs e)
  241.        {
  242.          if (mover == false)
  243.            {
  244.  
  245.                posi2 = 0;
  246.                string cadena = (cartas[Convert.ToInt16(((PictureBox)sender).Tag)]);
  247.                char[] sep = { ' ' };
  248.                Array a = cadena.Split(sep);//te coje el numero especifico de la carta
  249.                puntos += Convert.ToInt16(a.GetValue(0));//te coge la posicion de cada del nombre de la carta
  250.                //en este caso por ejemplo 0 es el numero(2) y 1 es el nombre de la carta
  251.                MessageBox.Show(Convert.ToString(puntos));
  252.  
  253.                miscartas[posi2] = ((PictureBox)sender);
  254.                posi2++;
  255.  
  256.                ((PictureBox)sender).Location = new System.Drawing.Point(((PictureBox)sender).Location.X + 14, ((PictureBox)sender).Location.Y);
  257.                carta = ((PictureBox)sender);
  258.           }
  259.            mover = true;
  260.        }
  261.  
  262.        private void pictureBox8_Click(object sender, EventArgs e)
  263.        {
  264.            if (mover == false)
  265.            {
  266.                posi2 = 0;
  267.                string cadena = (cartas[Convert.ToInt16(((PictureBox)sender).Tag)]);
  268.                char[] sep = { ' ' };
  269.                Array a = cadena.Split(sep);//te coje el numero especifico de la carta
  270.                puntos += Convert.ToInt16(a.GetValue(0));//te coge la posicion de cada del nombre de la carta
  271.                //en este caso por ejemplo 0 es el numero(2) y 1 es el nombre de la carta
  272.                MessageBox.Show(Convert.ToString(puntos));
  273.  
  274.                miscartas[posi2] = ((PictureBox)sender);
  275.                posi2++;
  276.  
  277.                ((PictureBox)sender).Location = new System.Drawing.Point(((PictureBox)sender).Location.X, ((PictureBox)sender).Location.Y + 14);
  278.                carta = ((PictureBox)sender);
  279.            }
  280.            mover = true;
  281.        }
  282.  
  283.        private void pictureBox5_Click(object sender, EventArgs e)
  284.        {
  285.            if (mover == false)
  286.            {
  287.                posi2 = 0;
  288.                string cadena = (cartas[Convert.ToInt16(((PictureBox)sender).Tag)]);
  289.                char[] sep = { ' ' };
  290.                Array a = cadena.Split(sep);//te coje el numero especifico de la carta
  291.                puntos += Convert.ToInt16(a.GetValue(0));//te coge la posicion de cada del nombre de la carta
  292.                //en este caso por ejemplo 0 es el numero(2) y 1 es el nombre de la carta
  293.                MessageBox.Show(Convert.ToString(puntos));
  294.  
  295.                miscartas[posi2] = ((PictureBox)sender);
  296.                posi2++;
  297.  
  298.                ((PictureBox)sender).Location = new System.Drawing.Point(((PictureBox)sender).Location.X - 14, ((PictureBox)sender).Location.Y);
  299.                carta = ((PictureBox)sender);
  300.            }
  301.            mover = true;
  302.        }
  303.  
  304.        private void pictureBox14_Click(object sender, EventArgs e)
  305.        {
  306.            if (mover == false)
  307.            {
  308.                posi2 = 0;
  309.                string cadena = (cartas[Convert.ToInt16(((PictureBox)sender).Tag)]);
  310.                char[] sep = { ' ' };
  311.                Array a = cadena.Split(sep);//te coje el numero especifico de la carta
  312.                puntos += Convert.ToInt16(a.GetValue(0));//te coge la posicion de cada del nombre de la carta
  313.                //en este caso por ejemplo 0 es el numero(2) y 1 es el nombre de la carta
  314.                MessageBox.Show(Convert.ToString(puntos));
  315.  
  316.                miscartas[posi2] = ((PictureBox)sender);
  317.                posi2++;
  318.  
  319.                ((PictureBox)sender).Location = new System.Drawing.Point(((PictureBox)sender).Location.X, ((PictureBox)sender).Location.Y - 14);
  320.                carta = ((PictureBox)sender);
  321.            }
  322.            mover = true;
  323.        }
  324.    }
  325. }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines