|
| 1 | +# All the adjacent letters in KTANE. |
| 2 | +arrays = { |
| 3 | + "A": ["GJMOY", "HKPRW"], |
| 4 | + "B": ["IKLRT", "CDFYZ"], |
| 5 | + "C": ["BHIJW", "DEMTU"], |
| 6 | + "D": ["IKOPQ", "CJTUW"], |
| 7 | + "E": ["ACGIJ", "KSUWZ"], |
| 8 | + "F": ["CERVY", "AGJPQ"], |
| 9 | + "G": ["ACFNS", "HOQYZ"], |
| 10 | + "H": ["LRTUX", "DKMPS"], |
| 11 | + "I": ["DLOWZ", "EFNUV"], |
| 12 | + "J": ["BQTUW", "EHIOS"], |
| 13 | + "K": ["AFPXY", "DIORZ"], |
| 14 | + "L": ["GKPTZ", "ABRVX"], |
| 15 | + "M": ["EILQT", "BFPWX"], |
| 16 | + "N": ["PQRSV", "AFGHL"], |
| 17 | + "O": ["HJLUZ", "IQSTX"], |
| 18 | + "P": ["DMNOX", "CFHKR"], |
| 19 | + "Q": ["CEOPV", "BDIKN"], |
| 20 | + "R": ["AEGSU", "BNOXY"], |
| 21 | + "S": ["ABEKQ", "GMVYZ"], |
| 22 | + "T": ["GVXYZ", "CJLSU"], |
| 23 | + "U": ["FMVXZ", "BILNY"], |
| 24 | + "V": ["DHMNW", "AEJQX"], |
| 25 | + "W": ["DFHMN", "GLQRT"], |
| 26 | + "X": ["BDFKW", "AJNOV"], |
| 27 | + "Y": ["BCHSU", "EGMTW"], |
| 28 | + "Z": ["JNRSY", "CLMPV"], |
| 29 | +} |
| 30 | + |
| 31 | + |
| 32 | +def calc_letters(letterlist): |
| 33 | + if None in letterlist: |
| 34 | + print("Invalid arguments. Please try again.") |
| 35 | + return |
| 36 | + |
| 37 | + for i in range(3): |
| 38 | + for j in range(4): |
| 39 | + cur_lists = arrays[letterlist[i][j]] |
| 40 | + works = False |
| 41 | + |
| 42 | + for letter in cur_lists[0]: |
| 43 | + if (j > 0 and letterlist[i][j - 1] == letter) or (j < 3 and letterlist[i][j + 1] == letter): |
| 44 | + works = True |
| 45 | + break |
| 46 | + |
| 47 | + for letter in cur_lists[1]: |
| 48 | + if (i > 0 and letterlist[i - 1][j] == letter) or (i < 2 and letterlist[i + 1][j] == letter): |
| 49 | + works = True |
| 50 | + break |
| 51 | + |
| 52 | + print(letterlist[i][j] if works else ".", end="") |
| 53 | + print() |
| 54 | + |
| 55 | + |
| 56 | +def get_input_row(): |
| 57 | + row = input() |
| 58 | + |
| 59 | + if len(row) != 4: |
| 60 | + print("Invalid argument. Please enter that again.") |
| 61 | + return get_input_row() |
| 62 | + |
| 63 | + return list(row.upper()) |
| 64 | + |
| 65 | + |
| 66 | +print("Input your buttons in this format:") |
| 67 | +print("""ABCD |
| 68 | +EFGH |
| 69 | +IJKL |
| 70 | +""") |
| 71 | + |
| 72 | +letters = [get_input_row(), get_input_row(), get_input_row()] |
| 73 | + |
| 74 | +print("Your input:") |
| 75 | +print(letters) |
| 76 | +print() |
| 77 | +print('Buttons to press:') |
| 78 | + |
| 79 | +calc_letters(letters) |
0 commit comments