public static void test( Puzzle initial, String proconFormat ) { String[] lines = proconFormat.Split( new string[]{Environment.NewLine}, StringSplitOptions.None); int choiceCount = int.Parse( lines[0] ); for( int i = 0; i < choiceCount; i++ ) { String pos = lines[1 + i * 3]; int moveCount = int.Parse(lines[2 + i * 3]); int blankColumn = int.Parse(pos[0].ToString(), System.Globalization.NumberStyles.AllowHexSpecifier) + 1; int blankRow = int.Parse(pos[1].ToString(), System.Globalization.NumberStyles.AllowHexSpecifier) + 1; int blank = initial[blankColumn,blankRow]; initial.Choice(blank); for( int j = 0; j < moveCount; j++ ) { Puzzle.Position move = initial.CharToPosition(lines[(i + 1) * 3][j]); if (!initial.DoMove(move)) throw new Exception(); } } Console.WriteLine(); for (int i = 1; i <= Problem.row; i++) { for (int j = 1; j <= Problem.column; j++) { Console.Write(initial.Data[initial.CoordToPosition(j, i)] + "\t"); } Console.WriteLine(); } }