private void MoveToNextStep() { if (this.totalSteps <= 0 || usedSteps <= 0) { return; } byte[] nums = this.puzzleGrid.GetNumberList(); PuzzleMxNLib.PGGetNextMovePath(PuzzleSetting.Instance.Cols, PuzzleSetting.Instance.Rows, usedSteps--, ref nums); for (int i = 0; i < nums.Length; i++) { this.puzzleGrid.MoveTo(nums[i], i + 1); } }
private void getAnswerBtn_Click(object sender, RoutedEventArgs e) { // IntPtr gcPtr = new IntPtr(); // PuzzleMxNLib.PGInit(gcPtr); byte[] nums = this.puzzleGrid.GetNumberList(); byte[] retNums = new byte[nums.Length]; for (int i = 0; i < retNums.Length; i++) { retNums[i] = (byte)i; } int ret = PuzzleMxNLib.PGGetAnswer(nums, ref retNums, PuzzleSetting.Instance.Cols, PuzzleSetting.Instance.Rows); if (ret > 0) { this.nextStepBtn.IsEnabled = true; } else { this.nextStepBtn.IsEnabled = false; } this.totalSteps = ret; this.usedSteps = ret; if (this.totalSteps > 0) { this.totalSteps--; } this.answerLabel.Visibility = System.Windows.Visibility.Visible; this.answerLabel.Text = string.Format(SoonLearning.BlockPuzzle.Properties.Resources.StepsOfTotal, 0, this.totalSteps); for (int i = 0; i < retNums.Length; i++) { retNums[i]++; } MoveToNextStep(); }