Makey Makey: inte pekar du på den vita (3 / 5 steg)
Steg 3: Skriva koden
HÄR KOMMER KODEN FÖR SPELET. Det görs i C#.
med hjälp av systemet.
använder System.Collections.Generic;
använder System.ComponentModel;
med hjälp av System.Data; med hjälp av System.Drawing;
använder System.Linq;
använder System.Text;
använder System.Threading.Tasks;
använder System.Windows.Forms;
använder System.Media;
namnområdet WindowsFormsApplication1 {offentliga partiell klass Form1: Form {Random rnd = nya Random();
int [] brickor = nya int [4] {2, 1,0,3};
Panel [] rad = ny Panel [4].
Panel [] [] rader = ny Panel [4] [];
SoundPlayer en = nya SoundPlayer(WindowsFormsApplication1.Properties.Resources._1);
SoundPlayer b = nya SoundPlayer(WindowsFormsApplication1.Properties.Resources._2);
SoundPlayer c = nya SoundPlayer(WindowsFormsApplication1.Properties.Resources._3);
SoundPlayer d = nya SoundPlayer(WindowsFormsApplication1.Properties.Resources._4);
SoundPlayer f = nya SoundPlayer(WindowsFormsApplication1.Properties.Resources._5);
Random r = nya Random();
Lista tilesP = ny lista ();
offentliga Form1()
{
InitializeComponent();
}
privata void Form1_Load (objekt avsändare, EventArgs e)
{
Detta. Shuffle(Tiles);
Detta. Översta = sant;
Detta. FormBorderStyle = FormBorderStyle.None;
Detta. WindowState = FormWindowState.Maximized;
int FormHeight = detta. Size.Height;
int FormWidth = detta. Size.Width;
för (int jag = 0; jag < 4; i ++) {
Panel [] p = ny Panel [4].
för (int j = 0; j < 4; j ++)
{
rad [j] = nya Panel();
rad [j]. Storlek = ny storlek (FormWidth/4, FormHeight/4);
rad [j]. Läge = ny punkt ((i * FormWidth / 4), (j * FormHeight / 4));
rad [j]. BackColor = Color.White;
om (j == tiles[i]) rad [j]. BackColor = Color.Black;
rad [j]. BorderStyle = BorderStyle.FixedSingle;
Detta. Controls.Add(row[j]);
p [j] = row [j];
}
rader [i] = p;
}
Rita brickor
}
skyddade omställning bool ProcessCmdKey (ref meddelande msg, nycklar nyckeldata) {
int FormHeight = detta. Size.Height;
int FormWidth = detta. Size.Width;
Switch (nyckeldata)
{
fall Keys.A:
{
om (plattor [3] == 0)
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
a.Play();
Random r = nya Random();
int inr = r.Next (0, 4);
int [] s = nya int [4].
Array.Copy (plattor, s, 4);
för (int jag = 3; jag > 0; i--)
{
plattor [i] = s [i - 1];
}
plattor [0] = inr;
för (int jag = 0; jag < 4; i ++)
{
för (int j = 0; j < 4; j ++) {
Kontrollera p = detta. GetChildAtPoint (ny punkt ((i * FormWidth / 4), (j * FormHeight / 4))); rader [i] [j] = (Panel) p;
}}
för (int jag = 0; jag < 4; i ++)
{
för (int j = 0; j < 4; j ++)
{
raderna [i] [j]. Läge = ny punkt ((i * FormWidth / 4), ((j + 1) * FormHeight / 4));
}}
för (int jag = 0; jag < 4; i ++)
{
rader [i] [0] = nya Panel();
raderna [i] [0]. Storlek = ny storlek (FormWidth/4, FormHeight/4);
raderna [i] [0]. Läge = ny punkt ((i * FormWidth / 4), (0 * FormHeight / 4));
raderna [i] [0]. BackColor = Color.White;
om (jag == inr) rader [i] [0]. BackColor = Color.Black;
raderna [i] [0]. BorderStyle = BorderStyle.FixedSingle;
Detta. Controls.Add(rows[i][0]);
}}
annat
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
f.Play();
}
return true;
}
fall Keys.S: {
om (plattor [3] == 1)
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
b.Play();
int inr = r.Next (0, 4);
int [] s = nya int [4].
Array.Copy (plattor, s, 4);
för (int jag = 3; jag > 0; i--)
{
plattor [i] = s [i - 1];
} plattor [0] = inr;
för (int jag = 0; jag < 4; i ++)
{
för (int j = 0; j < 4; j ++)
{
Kontrollera p = detta. GetChildAtPoint (ny punkt ((i * FormWidth / 4), (j * FormHeight / 4))); rader [i] [j] = (Panel) p;
}
}
för (int jag = 0; jag < 4; i ++)
{
för (int j = 0; j < 4; j ++)
{
raderna [i] [j]. Läge = ny punkt ((i * FormWidth / 4), ((j + 1) * FormHeight / 4));
}
}
för (int jag = 0; jag < 4; i ++)
{
rader [i] [0] = nya Panel();
raderna [i] [0]. Storlek = ny storlek (FormWidth/4, FormHeight/4);
raderna [i] [0]. Läge = ny punkt ((i * FormWidth / 4), (0 * FormHeight / 4));
raderna [i] [0]. BackColor = Color.White;
om (jag == inr) rader [i] [0]. BackColor = Color.Black;
raderna [i] [0]. BorderStyle = BorderStyle.FixedSingle;
Detta. Controls.Add(rows[i][0]);
}}
annat {
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
f.Play();
}
return true;
}
fall Keys.D:
{
om (plattor [3] == 2)
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
c.Play();
Random r = nya Random();
int inr = r.Next (0, 4);
int [] s = nya int [4].
Array.Copy (plattor, s, 4);
för (int jag = 3; jag > 0; i--)
{
plattor [i] = s [i - 1];
}
plattor [0] = inr;
för (int jag = 0; jag < 4; i ++)
{
för (int j = 0; j < 4; j ++)
{
Kontrollera p = detta. GetChildAtPoint (ny punkt ((i * FormWidth / 4), (j * FormHeight / 4))); rader [i] [j] = (Panel) p;
}}
för (int jag = 0; jag < 4; i ++)
{
för (int j = 0; j < 4; j ++)
{
raderna [i] [j]. Läge = ny punkt ((i * FormWidth / 4), ((j + 1) * FormHeight / 4));
}}
för (int jag = 0; jag < 4; i ++)
{
rader [i] [0] = nya Panel();
raderna [i] [0]. Storlek = ny storlek (FormWidth/4, FormHeight/4);
raderna [i] [0]. Läge = ny punkt ((i * FormWidth / 4), (0 * FormHeight / 4));
raderna [i] [0]. BackColor = Color.White;
om (jag == inr) rader [i] [0]. BackColor = Color.Black;
raderna [i] [0]. BorderStyle = BorderStyle.FixedSingle;
Detta. Controls.Add(rows[i][0]);
} }
annat
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
f.Play();
}
return true;
} / / pil tryckte upp
fall Keys.F: {
om (plattor [3] == 3)
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
d.Play();
Random r = nya Random();
int inr = r.Next (0, 4);
int [] s = nya int [4].
Array.Copy (plattor, s, 4);
för (int jag = 3; jag > 0; i--)
{
plattor [i] = s [i - 1];
}
plattor [0] = inr;
för (int jag = 0; jag < 4; i ++)
{
för (int j = 0; j < 4; j ++)
{
Kontrollera p = detta. GetChildAtPoint (ny punkt ((i * FormWidth / 4), (j * FormHeight / 4)));
rader [i] [j] = (Panel) p;
}}
för (int jag = 0; jag < 4; i ++)
{
för (int j = 0; j < 4; j ++)
{
raderna [i] [j]. Läge = ny punkt ((i * FormWidth / 4), ((j + 1) * FormHeight / 4));
}}
för (int jag = 0; jag < 4; i ++)
{
rader [i] [0] = nya Panel();
raderna [i] [0]. Storlek = ny storlek (FormWidth/4, FormHeight/4);
raderna [i] [0]. Läge = ny punkt ((i * FormWidth / 4), (0 * FormHeight / 4));
raderna [i] [0]. BackColor = Color.White;
om (jag == inr) rader [i] [0]. BackColor = Color.Black;
raderna [i] [0]. BorderStyle = BorderStyle.FixedSingle;
Detta. Controls.Add(rows[i][0]);
} }
annat
{
a.Stop();
b.Stop();
c.Stop();
d.Stop();
f.Stop();
f.Play();
}
return true;
} }
returnera bas. ProcessCmdKey (ref msg, databladet);
}
void Shuffle (T [] array)
{
int n = array. Längd; för (int jag = 0; jag < n; i ++)
{
NextDouble returnerar ett slumptal mellan 0 och 1.
// ... Det är likvärdigt med Math.random() i Java.
int r = i + (int) (rnd. NextDouble() * (n - jag));
T t = array [r];
Array [r] = array [i];
Array [i] = t;
} } } }