import random import math import numpy as np difficulty = 7 specification = 10 def nonogram(): candidate = np.random.randint(2, size=(specification, specification)) candidate_t = candidate.transpose() sums = [] for i in range(0, specification): sums = sums + [np.sum(candidate[i][j:j + difficulty + 1]) for j in range(0, difficulty)] + [np.sum(candidate_t[i][j:j + difficulty + 1]) for j in range(0, difficulty)] if max(sums) == difficulty + 1 or min(sums) == 0: candidate = nonogram() return candidate nonogram = nonogram() print(nonogram) #Method 1:d def ones_counter(row): for i in range(0, specification-1): if row[i] > 0 and row[i + 1] > 0: row[i + 1] = row[i + 1] + row[i] row[i] = 0 relevant_numbers = row[np.where(row > 0)] return ' '.join(str(j) for j in relevant_numbers) print("Now rows:") output_row = [ones_counter(nonogram.copy()[h]) for h in range(0, specification)] row_string = "[" for i in range(0, len(output_row)): row_string = row_string + "\"" + output_row[i] + "\"," row_string = row_string[:-1] + "]" print(row_string) print("Now columns:") nonogram_t = nonogram.copy().transpose() output_col = [ones_counter(nonogram_t[h]) for h in range(0, specification)] col_string = "[" for i in range(0, len(output_col)): col_string = col_string + "\"" + output_col[i] + "\"," col_string = col_string[:-1] + "]" print(col_string) #Method 2: # print("Now rows:") # # row_list = [] # # for j in range(0, specification): # my_row_j = nonogram.copy()[j] # # for i in range(0, 9): # if my_row_j[i] > 0 and my_row_j[i + 1] > 0: # my_row_j[i + 1] = my_row_j[i + 1] + my_row_j[i] # my_row_j[i] = 0 # # new_list_j = np.array([my_row_j[np.where(my_row_j > 0)]]) # print(new_list_j[0]) # # col_list = row_list + [list(new_list_j)] # # # # # print("Now columns:") # col_list = [] # nonogram_t = nonogram.transpose() # # for j in range(0, specification): # my_col_j = nonogram_t.copy()[j] # # for i in range(0, 9): # if my_col_j[i] > 0 and my_col_j[i + 1] > 0: # my_col_j[i + 1] = my_col_j[i + 1] + my_col_j[i] # my_col_j[i] = 0 # # new_list_j = np.array([my_col_j[np.where(my_col_j > 0)]]) # print(new_list_j[0]) # # col_list = col_list + [list(new_list_j)] #