ich möchte mit python eine randomisierte buchstaben matrix erstellen.
die matrix besteht aus 26 zeilen und 26 spalten. jedoch muss jede zeile und spalte genau einmal jeden buchstaben des alphabets enthält.
mein bisheriger code:
Code: Alles auswählen
import random
import string
# functions
def row_check(x, y, ch, row):
for i in range(x):
if ch == row[i]:
return False
return True
# hier sollte der fehler liegen
def column_check(x, y, ch, matrix):
for i in range(y):
if ch == matrix[i][x]:
return False
return True
def create_matrix(matrix, row):
for y in range(26):
for x in range(26):
while True:
ch = random.choice(string.ascii_uppercase)
check_r = row_check(x, y, ch, row)
if check_r == False:
continue
check_c = column_check(x, y, ch, matrix)
if check_c == False:
continue
else:
break
row = row + ch
matrix.append(row)
row = "" # reset
def print_matrix(matrix):
for y in range(26):
for x in range(26):
print matrix[y][x],
print
# main
matrix = []
row = ""
create_matrix(matrix, row)
print_matrix(matrix)
der code erzeugt leider eine endlosschleife. ich schätze, dass der fehler irgendwas mit der funktion column_check zu tun hat.
hat irgendwer einen tipp für mein problem?