Compare commits

...

7 Commits

3 changed files with 69 additions and 0 deletions

41
src/Woche2/aufgabe2.py Normal file
View File

@ -0,0 +1,41 @@
def key_string(key, text):
keystring = key
while len(keystring) <= len(text):
keystring += key
return keystring[: len(text)]
class VigenereCipher(object):
def __init__(self, key, alphabet):
self.alphabet = alphabet
self.key = key
self.keymap = []
for i in range(len(alphabet)):
self.keymap.append(alphabet)
alphabet = alphabet[1:] + alphabet[0]
def encode(self, text):
keystring = key_string(self.key, text)
encode_string = ""
for index, i in enumerate(text):
index_alpha = self.alphabet.find(i)
if index_alpha == -1:
encode_string += i
else:
index_key = self.alphabet.find(keystring[index])
encode_string += self.keymap[index_key][index_alpha]
return encode_string
def decode(self, text):
keystring = key_string(self.key, text)
decode_string = ""
for index, i in enumerate(text):
if self.alphabet.find(i) == -1:
decode_string += i
else:
index_key = self.alphabet.find(keystring[index])
index_alpha = self.keymap[index_key].find(i)
decode_string += self.alphabet[index_alpha]
return decode_string

15
src/Woche3/menu.py Normal file
View File

@ -0,0 +1,15 @@
class Menu:
def __init__(self, menu):
self.menu = menu
self.selected = 0
def to_the_right(self):
self.selected = (self.selected + 1) % len(self.menu)
def to_the_left(self):
self.selected = (self.selected - 1) % len(self.menu)
def display(self):
display_array = self.menu[:]
display_array[self.selected] = [display_array[self.selected]]
return str(display_array)

View File

@ -0,0 +1,13 @@
def likes(names):
length = len(names)
for i in range(4):
names.append("")
text = [
"no one likes this",
names[0] + " likes this",
names[0] + " and " + names[1] + " like this",
names[0] + ", " + names[1] + " and " + names[2] + " like this",
names[0] + ", " + names[1] + " and " + str(length - 2) + " others like this",
]
return text[length - (length > 3) * (length - 4)]