Bu kod golf. Bu meydan okuma için, bir yöntemi kabul edeceğim (tam bir programa ihtiyacınız yok), ancak yöntem imzası bayt sayısına doğru sayıyor ve tam imzayı (lamdba değil) görmek istiyorum. Yöntemin girdisi, 81 öğeli bir tamsayı dizisidir. Yöntemin çıktı / dönüş değeri diziyi bir ascii sudoku panosu olarak temsil eden bir dizedir.
Ezoterik bir dil ya da kesinlikle yöntemleri olmayan bir şey kullanıyorsanız, adapte olabilirsiniz, ancak dil bunu destekliyorsa, bir şeyin "gerçek" ungolfed programa bağlı olabileceğini görmek istiyorum. yöntem vücudun kendisi ile çalışmak için bir acıdır. Bu gereksinim Jelly veya 05AB1E gibi dilleri engellemek değil, Java gibi dillerin bu platform için anlamlı bir şey oluşturmasını kolaylaştırmak içindir.
Giriş için 1-9 tamsayı değerleri bariz anlamlara sahip olmalıdır. 0 değeri her zaman boş bir hücre olarak yorumlanmalıdır. 1-9 aralığının dışındaki herhangi bir şeyi boş hücre olarak da yorumlayabilirsiniz, ancak bu gerekli değildir. Diziden buluta konumlandırma sol üstte başlar ve bir sonraki satıra geçmeden önce her satırı soldan sağa doldurur.
Kutular için, dışarıda ve her 3x3 bölge arasında çift çizgiler ve diğer hücreler arasında tek çizgiler istiyorum. Bunlar çizgi çizme karakterleriyle çizilmelidir (G / Ç biçiminiz dizeleri bir karakter dizisi yerine bayt dizisi olarak temsil ediyorsa, bunları UTF-8 veya kod sayfası 347 gibi iyi bilinen bir kodlamada temsil etmelisiniz).
Bu meydan okuma için, ben am DEĞİL sudoku bulmaca oluşturmak isteyen. Bu işlevin girdisidir. Ben am DEĞİL bulmacayı çözmek isteyen. Sizden sadece size verileni "çizmek" için bir dize üretmenizi istiyorum (mümkün olduğunca az bayt).
Örnek Giriş:
Dizi için değerler:
{ 8, 5, 0, 0, 0, 2, 4, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 2, 3, 0, 5, 0, 0, 0, 9, 0, 0 ,0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 7, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 4, 0}
Değerler, diliniz için doğal olan herhangi bir mekanizmayı kullanabilir: int [], ArrayList, sıra, tuple, basamak dizisi, her hücre için girişte bir değere sahip olduğunuz sürece (yalnızca doldurulmuş hücreler için konumlarla eşleme yok) ). Girişin sağlandığını unutmayın ... bayt sayımınızın bir parçası değildir. Ancak girdi herhangi bir sudoku bulmacasını temsil edebilir ve bulmacanın geçerli bir çözümü bile olmayabilir . O bulmaca varsaymak alabilirim olduğunu yazdırılabilir. Örneğin 82 elementle bir şey elde edemezsiniz.
Ayrıca makul bir sabit genişlikli yazı tipi kabul edersiniz.
İlgili Çıktı:
╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ║ 8 │ 5 │ ║ │ │ 2 ║ 4 │ │ ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ 7 │ 2 │ ║ │ │ ║ │ │ 9 ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ │ 4 ║ │ │ ║ │ │ ║ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ │ │ │ ║ 1 │ │ 7 ║ │ │ 2 ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ 3 │ │ 5 ║ │ │ ║ 9 │ │ ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ 4 │ ║ │ │ ║ │ │ ║ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ │ │ │ ║ │ 8 │ ║ │ 7 │ ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ 1 │ 7 ║ │ │ ║ │ │ ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ │ │ │ ║ │ 3 │ 6 ║ │ 4 │ ║ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝