escogeremos el tipo de tamaño de las minas, el maño
namespace BuscaMinas
{
public partial class Form1 : Form
{
MapaMinas mapa;
bool perder = false;
bool ganado = false;
int MINAS = 25;
int TAMAÑOX = 25;
int TAMAÑOY = 25;
public Form1(int tamañoX, int tamañoY, int minas, string titulo)
{
TAMAÑOX = tamañoX;
TAMAÑOY = tamañoY;
MINAS = minas;
Text = titulo;
InitializeComponent();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
mapa.DibujarCuadricula(e.Graphics);
}
private void panel1_MouseClick(object sender, MouseEventArgs e)
{
int celdaX, celdaY;
if (e.Button == MouseButtons.Right)
{
celdaX = (e.X - (int)mapa.Posicion.X) / mapa.AnchoCelda;
celdaY = (e.Y - (int)mapa.Posicion.Y) / mapa.AltoCelda;
Console.WriteLine("Eje X= " + celdaX);
Console.WriteLine("Eje Y= " + celdaY);
}
else {
try
{
celdaX = (e.X - (int)mapa.Posicion.X) / mapa.AnchoCelda;
celdaY = (e.Y - (int)mapa.Posicion.Y) / mapa.AltoCelda;
MapaMinas om = new MapaMinas();
List<object> fig = om.imgMap();
int[] ex = (int[])fig[1];
int[] ey = (int[])fig[0];
int reg = 0;
int auxy = 0, auxx = 0;
for (int id = 0; id < ex.Length; id++)
{
auxy = ey[id];
auxx = ex[id];
if (auxy == celdaY && auxx == celdaX)
{
reg++;
}
}
if (reg == 0)
{
if (!mapa.Casillas[celdaY, celdaX].Visible)
{
perder = mapa.DestaparCelda(celdaX, celdaY);
}
panel1.Invalidate();
if (perder)
{
mapa.HacerTodoVisible();
Invalidate();
DialogResult result = MessageBox.Show("¡Vuelve a intentarlo, Has Pisado una mina! ", "Buscaminas", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
OnLoad(new EventArgs());
}
else if (result == DialogResult.No)
{
this.Close();
}
}
if (TAMAÑOX * TAMAÑOY - (MINAS+162) <= mapa.CasillasVistas)
{
Invalidate();
DialogResult result = MessageBox.Show("¡Ganaste! Felicitaciones ", "Buscaminas", MessageBoxButtons.YesNo);
if(result == DialogResult.Yes)
{
OnLoad(new EventArgs());
}
else if(result == DialogResult.No)
{
this.Close();
}
}
}}
catch {
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
mapa = new MapaMinas(TAMAÑOX, TAMAÑOY, MINAS, new PointF(40, 40));
panel1.Invalidate();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
}
}
No hay comentarios.:
Publicar un comentario
Gracias por participar en esta página