Sudoku: Difference between revisions

→‎Recursive Backtrack Solution: Aded more fluent code in main()
(→‎Recursive Backtrack Solution: More fluent syntax)
(→‎Recursive Backtrack Solution: Aded more fluent code in main())
Line 1,829:
<!-- By Martin Freedman, 20/11/2021 -->
<lang csharp>using System.Linq;
using System.Linq;
using static System.Linq.Enumerable;
using static System.Console;
using System.Collections.Generic;
using System;
 
namespace Sudoku {
Line 1,852 ⟶ 1,854:
while (r < 9 && grid[r][c] != 0) {
c = ++c % 9;
r += c == 0 ? r + 1 : r0;
}
return (r, c);
Line 1,872 ⟶ 1,874:
else
return (true, g);
}
grid[r][c] = 0; //backtrack
return (false, grid);
}
 
private static U Fwd<T, U>(this T t, Func<T, U> func) => func(t);
static void Main(string[] args) {
var challenge = new string[]{ "970 340 060",
Line 1,893 ⟶ 1,895:
.ToArray();
 
var (success, result)report = input.Solve(0, 0); switch {
WriteLine("Notrue, Solution"var result); =>
 
if Range(success0, 9)
for (var .Select(r => Range(0; r <, 9;).Select(c => result[r++][c]).Fwd(string.Concat)) {
for .Fwd(var cs => 0;string.Join('\n', c < 9; c++s) {),
(_, _) Write($"{result[r][c]}");=>
}"No Solution\n"
Write("\n")};
}Write(report);
else
WriteLine("No Solution");
ReadLine();
}