Anonymous user
Sudoku: Difference between revisions
m
→Functional Recursive Backtrack Solution: Used standard sudoku string format
m (→“Manual” Solution: Better solution name) |
m (→Functional Recursive Backtrack Solution: Used standard sudoku string format) |
||
Line 1,834:
using System.Collections.Generic;
using System;
using System.IO;
namespace Sudoku {
Line 1,851 ⟶ 1,852:
GetBox(grid, row, col).IsUnequal();
private static
? NextEmptyCell(grid, c == 8 ? r + 1 : r, ++c % 9)▼
: (r, c);▼
if (r == 9) //finished▼
return true;
foreach (var i in Range(1,9)) {
grid[r][c] = i;
if (grid.Constraints(r, c) && grid.Solve(r, c))
return true;
return false;
}
private static
.Select((c, i) => (index:
▲ .Select(r => r.Where(c => c != ' ').Select(c => (int)c - '0').ToArray())
static void Main(string[] args) {
//https://staffhome.ecm.uwa.edu.au/~00013890/sudoku17 format
var puzzle = "000028000800010000000000700000600403200004000100700000030400500000000010060000000";
var grid = Parse(puzzle);
Write(grid.Solve(0, 0)
? string.Join('\n', grid.Select(row=>string.Concat(row)))
Line 1,892 ⟶ 1,888:
</lang>
Output
<pre>
617328945
894517236
325946781
978651423
256834179
143792658
731489562
489265317
562173894</pre>
===“Automatic” Solution===
|