private void LoadDataForFutoshiki() { string[] allLines = File.ReadAllLines(FILE_NAME); int problemSize = int.Parse(allLines[0]); int counter = 2; FutoshikiGraph futoshikiGraph = new FutoshikiGraph(problemSize); while (allLines[counter] != RELATIONS_FILE_SEPARATOR) { string[] oneMatrixLine = allLines[counter].Split(DATA_SEPARATOR); for (int i = 0; i < oneMatrixLine.Length; i++) { futoshikiGraph.AddNode(ParseNode(oneMatrixLine[i], counter - 2, i)); } counter++; } counter++; while (counter < allLines.Length) { ParseConstraintFromTextLine(allLines[counter], futoshikiGraph); counter++; } FutoshikiProblemSingleton.GetInstance().initialFutoshikiGraph = futoshikiGraph; }
private void ParseConstraintFromTextLine(string line, FutoshikiGraph futoshikiGraph) { char[] constraintLine = line.ToCharArray(); int xIndex1 = Convert.ToInt32(constraintLine[0]) - 65; int yIndex1 = int.Parse(constraintLine[1].ToString()) - 1; int xIndex2 = Convert.ToInt32(constraintLine[3]) - 65; int yIndex2 = int.Parse(constraintLine[4].ToString()) - 1; futoshikiGraph.AddEdgeFromSource(xIndex1, yIndex1, xIndex2, yIndex2, GraphEdge.EDGE_TYPE_ENUM.DESTINATION_GRATER); futoshikiGraph.AddEdgeFromSource(xIndex2, yIndex2, xIndex1, yIndex1, GraphEdge.EDGE_TYPE_ENUM.SOURCE_GREATER); }