- namespace DraaiPuzzel
- {
- public partial class Form1 : Form
- {
- SpeelVeld veld;
- Verandering veranderingen;
- public Form1()
- {
- InitializeComponent();
- veld = SpeelVeld.GetInstance();
- veranderingen = new Verandering();
- veld.MaakSpeelVeld();
- veranderingen.UpdateForm += new EventHandler(veranderingen_UpdateForm);
- buttonEvent();
- panelEvent();
- }
- void veranderingen_UpdateForm(object sender, EventArgs e)
- {
- veranderingen.VakjesUpdaten();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- for (int i = 0; i < veld.Sv.GetLength(0); i++)
- {
- for (int j = 0; j < veld.Sv.GetLength(1); j++)
- {
- this.Controls.Add(veld.Sv[i, j]);
- }
- }
- this.Controls.Add(veld.WisselVak);
- }
- private void buttonEvent()
- {
- foreach (Button b in Controls)
- {
- if (b.Text == "<")
- b.MouseClick += new MouseEventHandler(b_MouseClick_Links);
- else if (b.Text == ">")
- b.MouseClick += new MouseEventHandler(b_MouseClick_Rechts);
- }
- }
- private void panelEvent()
- {
- foreach (Vakje v in veld.Sv)
- {
- v.MouseClick += new MouseEventHandler(v_MouseClick);
- }
- }
- void v_MouseClick(object sender, MouseEventArgs e)
- {
- //MessageBox.Show("Test" + (sender as Vakje).Location.X.ToString());
- veranderingen.VerticaalWissel((sender as Vakje).Location.Y / 55, (sender as Vakje).Location.X / 55);
- }
- void b_MouseClick_Rechts(object sender, MouseEventArgs e)
- {
- veranderingen.Wissel("rechts", (sender as Button).Name);
- }
- void b_MouseClick_Links(object sender, MouseEventArgs e)
- {
- veranderingen.Wissel("links", (sender as Button).Name);
- }
- private void btnVerstop_Click(object sender, EventArgs e)
- {
- veranderingen.Verstoppen();
- }
- }
- public class SpeelVeld
- {
- #region fields
- private Vakje[,] sv;
- private Vakje[,] beginStaat;
- private Vakje wisselVak;
- private int kleurIndex = 35;
- private Color[] Kleuren = { Color.Red, Color.Blue, Color.Yellow, Color.Purple };
- private static SpeelVeld speelveld;
- #endregion
- #region constructors
- public SpeelVeld()
- {
- }
- public SpeelVeld(Vakje[,] sVeld)
- {
- sVeld = this.sv;
- }
- #endregion
- #region methods
- public void MaakSpeelVeld()
- {
- sv = new Vakje[5, 3];
- int ID = 1;
- for (int i = 0; i < sv.GetLength(0); i++)
- {
- for (int j = 0; j < sv.GetLength(1); j++)
- {
- sv[i, j] = new Vakje(ID);
- sv[i, j].Location = new Point(50 + j * 55, 50 + i * 55);
- sv[i, j].BackColor = Color.FromArgb(kleurIndex, Kleuren[j]);
- ID++;
- }
- kleurIndex += 35;
- }
- wisselVak = new Vakje(0);
- wisselVak.Location = new Point(105, 325);
- wisselVak.BackColor = Color.White;
- beginStaat = (Vakje[,])sv.Clone();
- }
- public static SpeelVeld GetInstance()
- {
- if (speelveld == null)
- speelveld = new SpeelVeld();
- return speelveld;
- }
- #endregion
- #region properties
- public Vakje[,] Sv
- {
- get { return sv; }
- set { sv = value; }
- }
- public Vakje WisselVak
- {
- get { return wisselVak; }
- set { wisselVak = value; }
- }
- #endregion
- }
- public class Verandering
- {
- private int rij;
- public event EventHandler UpdateForm;
- private SpeelVeld speelveld;
- public Verandering()
- {
- speelveld = SpeelVeld.GetInstance();
- }
- public void Wissel(string kant, string naam)
- {
- if (naam.Contains("1"))
- rij = 1;
- else if (naam.Contains("2"))
- rij = 2;
- else if (naam.Contains("3"))
- rij = 3;
- else if (naam.Contains("4"))
- rij = 4;
- else if (naam.Contains("5"))
- rij = 5;
- switch (kant)
- {
- case "links":
- LinksSchuiven(rij);
- break;
- case "rechts":
- RechtsSchuiven(rij);
- break;
- }
- }
- private void RechtsSchuiven(int rij)
- {
- rij -= 1;
- Vakje bewaarvakje = speelveld.Sv[rij, 2];
- speelveld.Sv[rij, 2] = speelveld.Sv[rij, 1];
- speelveld.Sv[rij, 1] = speelveld.Sv[rij, 0];
- speelveld.Sv[rij, 0] = bewaarvakje;
- if ( UpdateForm != null)
- UpdateForm(this, new EventArgs());
- }
- private void LinksSchuiven(int rij)
- {
- rij -= 1;
- Vakje bewaarvakje = speelveld.Sv[rij, 0];
- speelveld.Sv[rij, 0] = speelveld.Sv[rij, 1];
- speelveld.Sv[rij, 1] = speelveld.Sv[rij, 2];
- speelveld.Sv[rij, 2] = bewaarvakje;
- if (UpdateForm != null)
- UpdateForm(this, new EventArgs());
- }
- public void Verstoppen()
- {
- if (speelveld.WisselVak.BackColor == Color.White || speelveld.Sv[4, 1].BackColor == Color.White)
- {
- Vakje buffer = speelveld.WisselVak;
- speelveld.WisselVak = speelveld.Sv[4, 1];
- speelveld.Sv[4, 1] = buffer;
- if (UpdateForm != null)
- UpdateForm(this, new EventArgs());
- }
- }
- public void VakjesUpdaten()
- {
- for (int i = 0; i < speelveld.Sv.GetLength(0); i++)
- {
- for (int j = 0; j < speelveld.Sv.GetLength(1); j++)
- {
- speelveld.Sv[i, j].Location = new Point(50 + j * 55, 50 + i * 55);
- }
- }
- speelveld.WisselVak.Location = new Point(105, 325);
- }
- public int Rij
- {
- get { return rij; }
- }
- public void VerticaalWissel(int i, int j)
- {
- if (speelveld.Sv[speelveld.Sv.GetLength(0), j].BackColor != Color.White)
- {
- //if (speelveld.Sv[i, j] == speelveld.Sv[speelveld.Sv.GetLength(0) - 1, j] && speelveld.Sv[i - 1, j].BackColor == Color.White)
- //{
- // Vakje buffer = speelveld.Sv[i, j];
- // speelveld.Sv[i, j] = speelveld.Sv[i - 1, j];
- // speelveld.Sv[i - 1, j] = buffer;
- //}
- if (speelveld.Sv[i + 1, j].BackColor == Color.White && speelveld.Sv[i, j] != speelveld.Sv[4, j])
- {
- Vakje buffer = speelveld.Sv[i, j];
- speelveld.Sv[i, j] = speelveld.Sv[i + 1, j];
- speelveld.Sv[i + 1, j] = buffer;
- }
- else if (speelveld.Sv[i - 1, j].BackColor == Color.White)
- {
- Vakje buffer = speelveld.Sv[i, j];
- speelveld.Sv[i, j] = speelveld.Sv[i - 1, j];
- speelveld.Sv[i - 1, j] = buffer;
- }
- else
- {
- }
- }
- if(UpdateForm != null)
- UpdateForm(this, new EventArgs());
- }
- }
voor Twan
By: Timo | Date: Oct 25 2010 16:36 | Format: None | Expires: never | Size: 8.08 KB | Hits: 892
Latest pastes
1 hours ago
11 hours ago
1 days ago
2 days ago
2 days ago