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)
{
{
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[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)
{
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;
}
}
}