📄 class1.cs
字号:
using System;
namespace EightDignialGame
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
private static int noPosition=0;
[STAThread]
static void Main(string[] args)
{
int[,] s={{2,8,3},{1,6 ,4},{7,0,5}};
int m=Check( ref s);
Console.WriteLine(m.ToString());
EightNumGame(ref s);
Console.Read();
}
public static int Check(ref int[,] s)
{
noPosition=0;
int[,] t={{1,2,3},{8,0 ,4},{7,6,5}};
for(int i=0;i<s.GetLength(0);i++)
for(int j=0;j<s.GetLength(1);j++)
if(s[i,j]!=t[i,j]&&!(i==1&&j==1))
{
noPosition++;
}
return noPosition;
}
public static void DisPlayArray(ref int[,] s)
{
for(int i=0;i<s.GetLength(0);i++)
{
for(int j=0;j<s.GetLength(1);j++)
Console.Write(s[i,j].ToString()+",");
Console.WriteLine();
}
}
public static void EightNumGame(ref int[,] s)
{
int[,] myarray={{0,0,0},{0,0,0},{0,0,0}};
for(int i=0;i<myarray.GetLength(0);i++)
for(int j=0;j<myarray.GetLength(1);j++)
{ myarray[i,j]=s[i,j];}
int row=-1,col=-1;
int fs=Check(ref s);
for(int i=0;i<myarray.GetLength(0);i++)
for(int j=0;j<myarray.GetLength(1);j++)
if(s[i,j]==0)
{row=i;col=j;}
// 向上移动
if(row-1>=0)
{
Console.WriteLine("the orgin");
DisPlayArray(ref myarray);
Console.WriteLine("move up");
myarray[row,col]=myarray[row-1,col];myarray[row-1,col]=0;DisPlayArray(ref myarray);int m=Check(ref myarray);
Console.WriteLine(m.ToString());
if(m==0)
{ Console.WriteLine("sucessful");Console.Read();}
if (m<=fs)
EightNumGame(ref myarray);
for(int i=0;i<myarray.GetLength(0);i++)
for(int j=0;j<myarray.GetLength(1);j++)
{myarray[i,j]=s[i,j];}
}
//向左移动
if(col-1>=0)
{
Console.WriteLine("the orgin");
DisPlayArray(ref myarray);
Console.WriteLine("move left");
myarray[row,col]=myarray[row,col-1];myarray[row,col-1]=0;DisPlayArray(ref myarray);int m=Check(ref myarray);
Console.WriteLine(m.ToString());
if(m==0)
{Console.WriteLine("sucessful"); Console.Read();}
if (m<=fs)
EightNumGame(ref myarray);
for(int i=0;i<myarray.GetLength(0);i++)
for(int j=0;j<myarray.GetLength(1);j++)
{myarray[i,j]=s[i,j];}
}
//向下移动
if(row+1<s.GetLength(0))
{
Console.WriteLine("the orgin");
DisPlayArray(ref myarray);
Console.WriteLine("move down");myarray[row,col]=myarray[row+1,col];myarray[row+1,col]=0;DisPlayArray(ref myarray);int m=Check(ref myarray);
Console.WriteLine(m.ToString());
if(m==0)
{
Console.WriteLine("sucessful");
Console.Read();}
if (m<=fs)
EightNumGame(ref myarray);
for(int i=0;i<myarray.GetLength(0);i++)
for(int j=0;j<myarray.GetLength(1);j++)
{myarray[i,j]=s[i,j];}
}
//向右移动
if(col+1<s.GetLength(1))
{
Console.WriteLine("the orgin");
DisPlayArray(ref myarray);
Console.WriteLine("move right");
;
myarray[row,col]=s[row,col+1];myarray[row,col+1]=0;DisPlayArray(ref myarray);int m=Check(ref myarray);
Console.WriteLine(m.ToString());
if(m==0)
{ Console.WriteLine("sucessful");Console.Read();}
if(m<fs)
{
EightNumGame(ref myarray);
for(int i=0;i<myarray.GetLength(0);i++)
for(int j=0;j<myarray.GetLength(1);j++)
{myarray[i,j]=s[i,j];}
}
}
if(Check(ref s)!=0)
Console.WriteLine("failure");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -