import random import math import numpy as np # # # difficulty = 8 # 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) difficulty = 5 specification = 10 def nonogram(): candidate = np.random.randint(2, size=(specification, specification)) candidate_t = candidate.transpose() sums_row = [] sums_col = [] sums = [] for i in range(0, specification): sums_row = sums_row + [np.sum(candidate[i][j:j + difficulty + 1]) for j in range(0, difficulty)] sums_col = sums_col + [np.sum(candidate_t[i][j:j + difficulty + 1]) for j in range(0, difficulty)] sums = np.sum(candidate) #print(sums_row) #print(sums_col) #print(sums) if max(sums_row) == difficulty + 1 or min(sums_row) == 0 or max(sums_col) == difficulty + 1 or min(sums_col) == 0 or sums!=55: candidate = nonogram() return candidate nonogram = nonogram() #print(nonogram) row1 = "[" for i in range(0, specification): row1 = row1 + str(nonogram[0][i]) + ", " row1 = row1[:-2] + "]," row2 = "[" for i in range(0, specification): row2 = row2 + str(nonogram[1][i]) + ", " row2 = row2[:-2] + "]," row3 = "[" for i in range(0, specification): row3 = row3 + str(nonogram[2][i]) + ", " row3 = row3[:-2] + "]," row4 = "[" for i in range(0, specification): row4 = row4 + str(nonogram[3][i]) + ", " row4 = row4[:-2] + "]," row5 = "[" for i in range(0, specification): row5 = row5 + str(nonogram[4][i]) + ", " row5 = row5[:-2] + "]," row6 = "[" for i in range(0, specification): row6 = row6 + str(nonogram[5][i]) + ", " row6 = row6[:-2] + "]," row7 = "[" for i in range(0, specification): row7 = row7 + str(nonogram[6][i]) + ", " row7 = row7[:-2] + "]," row8 = "[" for i in range(0, specification): row8 = row8 + str(nonogram[7][i]) + ", " row8 = row8[:-2] + "]," row9 = "[" for i in range(0, specification): row9 = row9 + str(nonogram[8][i]) + ", " row9 = row9[:-2] + "]," row10 = "[" for i in range(0, specification): row10 = row10 + str(nonogram[9][i]) + ", " row10 = row10[:-2] + "]" print(row1) print(row2) print(row3) print(row4) print(row5) print(row6) print(row7) print(row8) print(row9) print(row10) #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) # # print("Total green:") # # # total_green = 0 # for i in range(0, specification): # for j in range(0, specification): # total_green = total_green + nonogram[i][j] # # print(total_green) #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)] #