예제 #1
0
def decode(message): # дешифратор
    m = []
    # в данном цикле формируем числовое представление сообщения для дальнейшей дешифровки
    for mess in message: # перебираем объекты из сообщения
        m.append(mess.row)  # добавляем в список m номер строки объекта из сообщения
        m.append(mess.col)  # добавляем в список m номер столбца объекта из сообщения

    # делим список пополам
    mc = m[0:(len(m)//2)]   #   первая часть списка это номера строк зашифрованного сообщения
    mc2 = m[(len(m)//2):(len(m))]   # вторая часть списка это номера столбцов зашифрованного сообщения

    simbx = 150 # переменная задающая х-координату формируемым объектам, дабы они отображались друг за дружкой, а не друг на друге
    for i in range(len(mc)):    # так как длины mc и mc2 одинаковы, то в цикле проходим от 0 до длины mc
        for simb in Alfavit:    # перебираем символы из алфавита
            if simb.col == mc2[i]:  # если номер столбца символа равен i-му числу из списка номеров столбцов
                if simb.row == mc[i]:   # если номер строки символа равен i-му числу из списка номеров строк
                    pl = Button(simbx, 290, PL_W, PL_H, simb.text)  # то создаем новую кнопку с текстом символа из алфавита
                    pl.row = simb.row   # задаем свойство row новому сиволу и присваиваем ему номер строки символа из алфавита
                    pl.col = simb.col   # задаем свойство col новому сиволу и присваиваем ему номер столбца символа из алфавита
                    pl.font = simb.font
                    decode_message.add(pl)  # добавляем новую кнопку в группу дешифрованного сообщения
                    simbx += PL_W   # прибавляем к simbx значение ширины кнопки алфавита, чтобы сдвинуть следующую кнопку в право
예제 #2
0
def encode(): # процедура шифрования
    mc = [] # список для номеров строк
    mc2 = []    # спискок для номеров столбцов
    for mess in message_list:   # перебираем символы из сообщения
        mc.append(mess.row)     # добавляем в список для номеров строк номер строки символа
        mc2.append(mess.col)    # добавляем в список для номеров столбцов номер столбца символ
    mc += mc2   # склеиваем списки - сначала номера строк, потом номера столбцов

    rez_message = []    # список для результирующего сообщения
    simbx = 150 # начальная позиция по Х для вывода сообщения
    for i in range(1, len(mc), 2):  # в данном цикле перебираем попарно символы из mc начиная с первого.
        for simb in Alfavit:    # перебираем символы алфавита
            if simb.col == mc[i]:   # если номер столбца совпадает со вторым числом из пары (перебираем попарно списком mc)
                if simb.row == mc[i-1]: # если номер строки совпадает с первым числом из пары
                    pl = Button(simbx, 260, PL_W, PL_H, simb.text)  # то создаем кнопку с текстом нажатой кнопки из алфавита
                    pl.col = simb.col   #   новой кнопке назначаем свойства col и row и передаем
                    pl.row = simb.row   # соответствующие значения от нажатой кнопки из алфавита
                    pl.font = simb.font
                    encode_message_group.add(pl) # добавляем новую кнопку в группу зашифрованного сообщения
                    rez_message.append(pl)  # так же помещаем кнопку в список зашифрованного сообщения
                    simbx += PL_W   # прибавляем к simbx значение ширины кнопки алфавита, чтобы сдвинуть следующую кнопку в право
    return rez_message  # передаем результат в виде списка
예제 #3
0
def encode():  # процедура шифрования
    mc = []  # список для номеров строк
    mc2 = []  # спискок для номеров столбцов
    for mess in message_list:  # перебираем символы из сообщения
        mc.append(
            mess.row
        )  # добавляем в список для номеров строк номер строки символа
        mc2.append(
            mess.col
        )  # добавляем в список для номеров столбцов номер столбца символ
    mc += mc2  # склеиваем списки - сначала номера строк, потом номера столбцов

    rez_message = []  # список для результирующего сообщения
    simbx = 150  # начальная позиция по Х для вывода сообщения
    for i in range(
            1, len(mc), 2
    ):  # в данном цикле перебираем попарно символы из mc начиная с первого.
        for simb in Alfavit:  # перебираем символы алфавита
            if simb.col == mc[
                    i]:  # если номер столбца совпадает со вторым числом из пары (перебираем попарно списком mc)
                if simb.row == mc[
                        i -
                        1]:  # если номер строки совпадает с первым числом из пары
                    pl = Button(
                        simbx, 260, PL_W, PL_H, simb.text
                    )  # то создаем кнопку с текстом нажатой кнопки из алфавита
                    pl.col = simb.col  #   новой кнопке назначаем свойства col и row и передаем
                    pl.row = simb.row  # соответствующие значения от нажатой кнопки из алфавита
                    pl.font = simb.font
                    encode_message_group.add(
                        pl
                    )  # добавляем новую кнопку в группу зашифрованного сообщения
                    rez_message.append(
                        pl
                    )  # так же помещаем кнопку в список зашифрованного сообщения
                    simbx += PL_W  # прибавляем к simbx значение ширины кнопки алфавита, чтобы сдвинуть следующую кнопку в право
    return rez_message  # передаем результат в виде списка
예제 #4
0
def decode(message):  # дешифратор
    m = []
    # в данном цикле формируем числовое представление сообщения для дальнейшей дешифровки
    for mess in message:  # перебираем объекты из сообщения
        m.append(
            mess.row)  # добавляем в список m номер строки объекта из сообщения
        m.append(mess.col
                 )  # добавляем в список m номер столбца объекта из сообщения

    # делим список пополам
    mc = m[0:(
        len(m) //
        2)]  #   первая часть списка это номера строк зашифрованного сообщения
    mc2 = m[(len(m) // 2):(
        len(m)
    )]  # вторая часть списка это номера столбцов зашифрованного сообщения

    simbx = 150  # переменная задающая х-координату формируемым объектам, дабы они отображались друг за дружкой, а не друг на друге
    for i in range(
            len(mc)
    ):  # так как длины mc и mc2 одинаковы, то в цикле проходим от 0 до длины mc
        for simb in Alfavit:  # перебираем символы из алфавита
            if simb.col == mc2[
                    i]:  # если номер столбца символа равен i-му числу из списка номеров столбцов
                if simb.row == mc[
                        i]:  # если номер строки символа равен i-му числу из списка номеров строк
                    pl = Button(
                        simbx, 290, PL_W, PL_H, simb.text
                    )  # то создаем новую кнопку с текстом символа из алфавита
                    pl.row = simb.row  # задаем свойство row новому сиволу и присваиваем ему номер строки символа из алфавита
                    pl.col = simb.col  # задаем свойство col новому сиволу и присваиваем ему номер столбца символа из алфавита
                    pl.font = simb.font
                    decode_message.add(
                        pl
                    )  # добавляем новую кнопку в группу дешифрованного сообщения
                    simbx += PL_W  # прибавляем к simbx значение ширины кнопки алфавита, чтобы сдвинуть следующую кнопку в право
예제 #5
0
            Color("#bf3030"),
            alt_text='Показать текст')
button_group.add(pl)

x, y = 35, 30
col, row = 1, 1
# в цикле ниже создаем алфавитную таблицу
for i in ALFAVIT:  # перебираем символы алфавита
    pl = Button(x=x,
                y=y,
                width=PL_W,
                height=PL_H,
                text=i,
                color=(Color('#300571')))  # создаем новую кнопку
    pl.col = col  # задаем кнопке новое свойство col - это номер столбца в котором будет расположена кнопка
    pl.row = row  # задаем кнопке новое свойство row - это номер строки в которой будет расположена кнопка
    pl.font = font.Font(
        'fonts/DS Crystal Regular.ttf',
        21)  # задаем шрифт которым будет отображаться надпись на кнопке
    Alfavit.add(pl)  # добавляем новую кнопку в группу Alfavit
    x += PL_W  # увеличиваем координату X на ширину кнопки, чтобы следующая кнопка отобразилась правее предыдущей
    col += 1  # увеличиваем номер столбца, так как следующая кнопка будет расположена в следующем столбце
    if x > 35 + PL_W * 5:  # если х координата больше расчетного значения для 6 столбца
        x = 35  # то отодгаем икс координату в начальное положение
        y += PL_H  # увеличиваем Y-координату, чтобы следующие объекты отображались на новой строке ниже
        row += 1  # увеличиваем значение строки
        col = 1  # значение столбца сбрасываем на начало отсчета


def encode():  # процедура шифрования
    mc = []  # список для номеров строк
예제 #6
0
pl = Button(x=300, y=30, width=175, height=35, text='Зашифровать', text_size=32, color=Color("#bf3030"))
button_group.add(pl)
pl = Button(300, 70, 175, 35, 'Дешифровать', 32, Color("#bf3030"))
button_group.add(pl)
pl = Button(300, 110, 175, 35, 'Стереть', 32, Color("#bf3030"))
button_group.add(pl)
pl = Button(300, 150, 175, 35, 'Показать коды', 32, Color("#bf3030"), alt_text='Показать текст')
button_group.add(pl)

x, y = 35, 30
col, row = 1, 1
# в цикле ниже создаем алфавитную таблицу
for i in ALFAVIT:   # перебираем символы алфавита
    pl = Button(x=x, y=y, width=PL_W, height=PL_H, text=i, color=(Color('#300571')))  # создаем новую кнопку
    pl.col = col    # задаем кнопке новое свойство col - это номер столбца в котором будет расположена кнопка
    pl.row = row    # задаем кнопке новое свойство row - это номер строки в которой будет расположена кнопка
    pl.font = font.Font('fonts/DS Crystal Regular.ttf', 21)    # задаем шрифт которым будет отображаться надпись на кнопке
    Alfavit.add(pl) # добавляем новую кнопку в группу Alfavit
    x += PL_W   # увеличиваем координату X на ширину кнопки, чтобы следующая кнопка отобразилась правее предыдущей
    col += 1    # увеличиваем номер столбца, так как следующая кнопка будет расположена в следующем столбце
    if x > 35+PL_W*5:   # если х координата больше расчетного значения для 6 столбца
        x = 35  # то отодгаем икс координату в начальное положение
        y += PL_H   # увеличиваем Y-координату, чтобы следующие объекты отображались на новой строке ниже
        row += 1    # увеличиваем значение строки
        col = 1 # значение столбца сбрасываем на начало отсчета

def encode(): # процедура шифрования
    mc = [] # список для номеров строк
    mc2 = []    # спискок для номеров столбцов
    for mess in message_list:   # перебираем символы из сообщения
        mc.append(mess.row)     # добавляем в список для номеров строк номер строки символа