Как мне скрыть слово в матрице случайных чисел?

#python #algorithm #matrix #crossword

#python #алгоритм #матрица #кроссворд

Вопрос:

Я новичок в Python и застрял здесь. Я написал следующую программу, которая генерирует матрицу случайных чисел.

 def randsq(size):
    for i in range(size):
        for j in range(size):
            print(random.randint(0,9), end = '')
        print()
  

Могу ли я в любом случае добавить функцию, которая принимает слово из входного параметра и скрывает его по диагонали внутри матрицы? Итак, если пользователь вводит «дождь», результат выглядит следующим образом:

 r123
1a45
23i4
989n
  

Спасибо!

Комментарии:

1. Это действительно считается скрытым для вас?

2. @marc_s, будет ли «интегрированный» лучшим описанием? извините, я думаю, я просто использовал «скрытый», потому что не очень очевидно, что там есть слово.

3. @sascha Я предполагаю, что этот предыдущий комментарий из OP предназначался для вас

Ответ №1:

Модифицированный код:

 import random
def randsq(word):
    size = len(word)
    for i in range(size):
        for j in range(size):
            if i == j:  # we are at a diagonal-value
                print(word[i], end='')  # it's the i-th diag -> choose i-th char
            else:
                print(random.randint(0, 9), end='')
        print()

randsq('Rain')
  

Вывод:

 R757
0a91
02i9
757n
  

Если вы хотите, чтобы пользователь вводил это слово:

 word_to_hide = input('Which word to hide? ( enter) ')  # will wait for user-input   enter
randsq(word_to_hide)
  

Комментарии:

1. Это потрясающе! Я был далек от этого:/ Если бы я хотел оставить слово на усмотрение пользователя, я бы просто использовал input() в конце?

2. Не обязательно в конце. Вы можете использовать ввод для получения некоторой строки, которая затем является аргументом randsq(word). С моим кодом размер матрицы будет автоматически адаптироваться.