gracias...
saludos......
aqui les dejo el codigo completo de lo que tengo hasta ahora... haber si me podeis ayudar porfavor....
Código
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" }; 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) { { 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) { { 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; } } 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[i] != null)//si tengo cartas en la array de mis cartas { if (a.Name == miscartas[i].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) { 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; } } }