Stap 3: Schrijven van de code
HIER KOMT DE CODE VOOR HET SPEL. Het is gedaan in C#.
met behulp van systeem;
met behulp van System.Collections.Generic;
met behulp van System.ComponentModel;
using System.Data; met behulp van System.Drawing;
met behulp van System.Linq;
met behulp van System.Text;
met behulp van System.Threading.Tasks;
met behulp van System.Windows.Forms;
met behulp van System.Media;
naamruimte WindowsFormsApplication1 {openbare gedeeltelijke klasse Form1: formulier {Random rnd = nieuwe Random();
int [] tegels = nieuwe int [4] {2, 1,0,3};
Deelvenster [] rij = nieuwe Panel [4];
[] [] Rijen paneel = nieuwe Panel [4] [];
SoundPlayer een nieuwe SoundPlayer(WindowsFormsApplication1.Properties.Resources._1); =
SoundPlayer b = nieuwe SoundPlayer(WindowsFormsApplication1.Properties.Resources._2);
SoundPlayer c = nieuwe SoundPlayer(WindowsFormsApplication1.Properties.Resources._3);
SoundPlayer d = nieuwe SoundPlayer(WindowsFormsApplication1.Properties.Resources._4);
SoundPlayer f = nieuwe SoundPlayer(WindowsFormsApplication1.Properties.Resources._5);
Willekeurige r = nieuwe Random();
Lijst van tilesP = nieuwe lijst ();
openbare Form1()
{
InitializeComponent();
}
private void Form1_Load (object afzender, EventArgs e)
{
dit. Shuffle(tiles);
dit. Bovenste = true;
dit. FormBorderStyle = FormBorderStyle.None;
dit. WindowState = FormWindowState.Maximized;
int FormHeight = deze. Size.Height;
int FormWidth = deze. Size.Width;
for (int i = 0; ik < 4; i ++) {}
Panel [] p = nieuwe Panel [4];
for (int j = 0; j < 4; j ++)
{
rij [j] = nieuwe Panel();
rij [j]. Grootte = nieuwe grootte (FormWidth/4, FormHeight/4);
rij [j]. Locatie nieuwe punt ((i * FormWidth / 4), = (j * FormHeight / 4));
rij [j]. BackColor (achtergrondkleur) = Color.White;
Als (j == tiles[i]) rij [j]. BackColor (achtergrondkleur) = Color.Black;
rij [j]. Randstijl (BorderStyle) = BorderStyle.FixedSingle;
dit. Controls.Add(row[j]);
p [j] = rij [j];
}
rijen [i] = p;
}
tekenen van de tegels
}
beschermde override bool ProcessCmdKey (ref bericht msg, sleutels keyData) {}
int FormHeight = deze. Size.Height;
int FormWidth = deze. Size.Width;
schakelaar (keyData)
{
Case Keys.A:
{
Als (tegels [3] == 0)
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
a.Play();
Willekeurige r = nieuwe Random();
int inr = r.Next (0, 4);
int [] s = nieuwe int [4];
Array.Copy (tegels, s, 4);
for (int i = 3; ik > 0; ik--)
{
tegels [i] = s [i - 1];
}
tegels [0] = inr;
for (int i = 0; ik < 4; i ++)
{
for (int j = 0; j < 4; j ++) {}
Controle van p = deze. GetChildAtPoint (nieuwe punt ((i * FormWidth / 4), (j * FormHeight / 4))); rijen [i] [j] = p (Panel);
}}
for (int i = 0; ik < 4; i ++)
{
for (int j = 0; j < 4; j ++)
{
rijen [i] [j]. Locatie nieuwe punt ((i * FormWidth / 4), = ((j + 1) * FormHeight / 4));
}}
for (int i = 0; ik < 4; i ++)
{
rijen [i] [0] = nieuwe Panel();
rijen [i] [0]. Grootte = nieuwe grootte (FormWidth/4, FormHeight/4);
rijen [i] [0]. Locatie = nieuwe punt ((i * FormWidth / 4), (0 * FormHeight / 4));
rijen [i] [0]. BackColor (achtergrondkleur) = Color.White;
Als (ik == inr) rijen [i] [0]. BackColor (achtergrondkleur) = Color.Black;
rijen [i] [0]. Randstijl (BorderStyle) = BorderStyle.FixedSingle;
dit. Controls.Add(rows[i][0]);
}}
anders
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
f.Play();
}
return true;
}
kast Keys.S: {}
Als (tegels [3] == 1)
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
b.Play();
int inr = r.Next (0, 4);
int [] s = nieuwe int [4];
Array.Copy (tegels, s, 4);
for (int i = 3; ik > 0; ik--)
{
tegels [i] = s [i - 1];
} tegels [0] = inr;
for (int i = 0; ik < 4; i ++)
{
for (int j = 0; j < 4; j ++)
{
Controle van p = deze. GetChildAtPoint (nieuwe punt ((i * FormWidth / 4), (j * FormHeight / 4))); rijen [i] [j] = p (Panel);
}
}
for (int i = 0; ik < 4; i ++)
{
for (int j = 0; j < 4; j ++)
{
rijen [i] [j]. Locatie nieuwe punt ((i * FormWidth / 4), = ((j + 1) * FormHeight / 4));
}
}
for (int i = 0; ik < 4; i ++)
{
rijen [i] [0] = nieuwe Panel();
rijen [i] [0]. Grootte = nieuwe grootte (FormWidth/4, FormHeight/4);
rijen [i] [0]. Locatie = nieuwe punt ((i * FormWidth / 4), (0 * FormHeight / 4));
rijen [i] [0]. BackColor (achtergrondkleur) = Color.White;
Als (ik == inr) rijen [i] [0]. BackColor (achtergrondkleur) = Color.Black;
rijen [i] [0]. Randstijl (BorderStyle) = BorderStyle.FixedSingle;
dit. Controls.Add(rows[i][0]);
}}
else {}
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
f.Play();
}
return true;
}
Case Keys.D:
{
Als (tegels [3] == 2)
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
c.Play();
Willekeurige r = nieuwe Random();
int inr = r.Next (0, 4);
int [] s = nieuwe int [4];
Array.Copy (tegels, s, 4);
for (int i = 3; ik > 0; ik--)
{
tegels [i] = s [i - 1];
}
tegels [0] = inr;
for (int i = 0; ik < 4; i ++)
{
for (int j = 0; j < 4; j ++)
{
Controle van p = deze. GetChildAtPoint (nieuwe punt ((i * FormWidth / 4), (j * FormHeight / 4))); rijen [i] [j] = p (Panel);
}}
for (int i = 0; ik < 4; i ++)
{
for (int j = 0; j < 4; j ++)
{
rijen [i] [j]. Locatie nieuwe punt ((i * FormWidth / 4), = ((j + 1) * FormHeight / 4));
}}
for (int i = 0; ik < 4; i ++)
{
rijen [i] [0] = nieuwe Panel();
rijen [i] [0]. Grootte = nieuwe grootte (FormWidth/4, FormHeight/4);
rijen [i] [0]. Locatie = nieuwe punt ((i * FormWidth / 4), (0 * FormHeight / 4));
rijen [i] [0]. BackColor (achtergrondkleur) = Color.White;
Als (ik == inr) rijen [i] [0]. BackColor (achtergrondkleur) = Color.Black;
rijen [i] [0]. Randstijl (BorderStyle) = BorderStyle.FixedSingle;
dit. Controls.Add(rows[i][0]);
} }
anders
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
f.Play();
}
return true;
} / / omhoog pijltoets ingedrukt
kast Keys.F: {}
Als (tegels [3] == 3)
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
d.Play();
Willekeurige r = nieuwe Random();
int inr = r.Next (0, 4);
int [] s = nieuwe int [4];
Array.Copy (tegels, s, 4);
for (int i = 3; ik > 0; ik--)
{
tegels [i] = s [i - 1];
}
tegels [0] = inr;
for (int i = 0; ik < 4; i ++)
{
for (int j = 0; j < 4; j ++)
{
Controle van p = deze. GetChildAtPoint (nieuwe punt ((i * FormWidth / 4), (j * FormHeight / 4)));
rijen [i] [j] = p (Panel);
}}
for (int i = 0; ik < 4; i ++)
{
for (int j = 0; j < 4; j ++)
{
rijen [i] [j]. Locatie nieuwe punt ((i * FormWidth / 4), = ((j + 1) * FormHeight / 4));
}}
for (int i = 0; ik < 4; i ++)
{
rijen [i] [0] = nieuwe Panel();
rijen [i] [0]. Grootte = nieuwe grootte (FormWidth/4, FormHeight/4);
rijen [i] [0]. Locatie = nieuwe punt ((i * FormWidth / 4), (0 * FormHeight / 4));
rijen [i] [0]. BackColor (achtergrondkleur) = Color.White;
Als (ik == inr) rijen [i] [0]. BackColor (achtergrondkleur) = Color.Black;
rijen [i] [0]. Randstijl (BorderStyle) = BorderStyle.FixedSingle;
dit. Controls.Add(rows[i][0]);
} }
anders
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
f.Play();
}
return true;
} }
basis retourneren ProcessCmdKey (ref msg, keyData);
}
VOID Shuffle (T [] array)
{
int n = array. Lengte; for (int i = 0; ik < n; i ++)
{
NextDouble geeft als resultaat een willekeurig getal tussen 0 en 1.
// ... Het is gelijk aan Math.random() in Java.
int r = i + (int) (rnd. NextDouble() * (n - ik));
T t = array [r];
matrix [r] = array [i];
matrix [i] = t;
} } } }