?? form1.cs
字號:
private void PlaceRandom()
{
int r,c;
r=10;c=10;
int i=0;
ar=0;
ac=0;
Random rnd= new Random();
int val;
while(i<8)
{
val=(int)rnd.Next(9);
if(numNotExists(val)==true && val>0)
{
pos[ar,ac]=val;
switch(val)
{
case 1:
lbl1.Location=new Point(c,r);
break;
case 2:
lbl2.Location=new Point(c,r);
break;
case 3:
lbl3.Location=new Point(c,r);
break;
case 4:
lbl4.Location=new Point(c,r);
break;
case 5:
lbl5.Location=new Point(c,r);
break;
case 6:
lbl6.Location=new Point(c,r);
break;
case 7:
lbl7.Location=new Point(c,r);
break;
case 8:
lbl8.Location=new Point(c,r);
break;
default:
break;
}
c+=100;
ac++;
if(ac>2)
{
ac=0;
ar++;
}
if(c>300)
{
c=10;
r+=100;
}
i++;
}
else
continue;
}
lblBlank.Location=new Point(c,r);
pos[2,2]=9;
}
private Boolean numNotExists(int num)
{
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
if(pos[i,j]==num)
return false;
}
return true;
}
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
int temp;
switch((int)e.KeyCode)
{
case 38:
//"Up"
if(ar<2)
{
temp=pos[ar,ac];
pos[ar,ac]=pos[ar+1,ac];
pos[ar+1,ac]=temp;
Swap(pos[ar,ac],temp);
ar++;
Hits++;
}
break;
case 37:
//"Left"
if(ac<2)
{
temp=pos[ar,ac];
pos[ar,ac]=pos[ar,ac+1];
pos[ar,ac+1]=temp;
Swap(pos[ar,ac],temp);
ac++;
Hits++;
}
break;
case 39:
//"Right"
if(ac>0)
{
temp=pos[ar,ac];
pos[ar,ac]=pos[ar,ac-1];
pos[ar,ac-1]=temp;
Swap(pos[ar,ac],temp);
ac--;
Hits++;
}
break;
case 40:
//"Down"
if(ar>0)
{
temp=pos[ar,ac];
pos[ar,ac]=pos[ar-1,ac];
pos[ar-1,ac]=temp;
Swap(pos[ar,ac],temp);
ar--;
Hits++;
}
break;
}
lblHits.Text="移動次數 ---> " +Hits.ToString();
Boolean same=true;
String arrEle="";
for(int ctr=1,i=0;i<3;i++)
{
for(int j=0;j<3;j++,ctr++)
{
if(pos[i,j]!=ctr)
{
same=false;
break;
}
arrEle=arrEle+"\t"+pos[i,j];
}
arrEle=arrEle+"\n";
}
if(same)
{
MessageBox.Show("共移動" + Hits.ToString() + "次","游戲結束");
}
}
private void Swap(int vNum, int blank)
{
Point temp;
switch(vNum)
{
case 1:
temp=lbl1.Location;
lbl1.Location=lblBlank.Location;
lblBlank.Location=temp;
break;
case 2:
temp=lbl2.Location;
lbl2.Location=lblBlank.Location;
lblBlank.Location=temp;
break;
case 3:
temp=lbl3.Location;
lbl3.Location=lblBlank.Location;
lblBlank.Location=temp;
break;
case 4:
temp=lbl4.Location;
lbl4.Location=lblBlank.Location;
lblBlank.Location=temp;
break;
case 5:
temp=lbl5.Location;
lbl5.Location=lblBlank.Location;
lblBlank.Location=temp;
break;
case 6:
temp=lbl6.Location;
lbl6.Location=lblBlank.Location;
lblBlank.Location=temp;
break;
case 7:
temp=lbl7.Location;
lbl7.Location=lblBlank.Location;
lblBlank.Location=temp;
break;
case 8:
temp=lbl8.Location;
lbl8.Location=lblBlank.Location;
lblBlank.Location=temp;
break;
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -