Ich schreibe ein Skript, um effizient ein Sudoku-Rätsel zu lösen, aber es gibt einen Teil meines Codes, den ich denke, ist extrem hässlich und möchte straffen.Python - Streamlining Sudoku-Solver-Code
def square(cell):
rows='ABCDEFGHI'
cols='123456789'
cell_row = cell[0][0]
cell_col = cell[0][1]
if cell_row in rows[0:3]:
x = 'A'
if cell_row in rows[3:6]:
x = 'B'
if cell_row in rows[6:9]:
x = 'C'
if cell_col in cols[0:3]:
y = 'a'
if cell_col in cols[3:6]:
y = 'b'
if cell_col in cols[6:9]:
y = 'c'
return (['Aa','Ab','Ac','Ba','Bb','Bc','Ca','Cb','Cc'].index(x+y))+1
Da ein sudoku Bord von 9 3x3 Quadrate der Zweck dieser Funktion auf der Platine, die Koordinaten einer Zelle zu übernehmen ist, besteht und die Anzahl der 3x3 Quadrat zurück zu der die Zelle (wo die angehört Quadrat oben links ist Nummer 1, und unten rechts ist Nummer 9). Die Eingabe 'Zelle' hat die Form ['A5', 6] wobei A die Zeile, 5 die Spalte und 6 den Wert der Zelle angibt.
Der Code, den ich habe funktioniert, aber es muss eine viel effizientere oder vorzeigbarer Weg, es zu tun. Ich wäre dankbar für irgendwelche Vorschläge.
Das ist großartig, vorzeigbar! – ggordon