| ⇢ | A | grille_cipher_attack added |
| ⇢ | B | grille_cipher_attack.remove_impossibilities() added | |
| ⇢ | A | grille_cipher_attack.find_grille() added | |
| ⇢ | A | grille_cipher_attack.convert_to_matrix() added | |
| ⇢ | A | grille_cipher_attack.rotate() added | |
| ⇢ | A | grille_cipher_attack.all_rotations() added | |
| ⇢ | A | grille_cipher_attack.pick_easiest() added | |
| ⇢ | A | grille_cipher_attack.get_decrypted_text() added | |
| ⇢ | A | grille_cipher_attack.punch_holes() added | |
| ⇢ | A | grille_cipher_attack.get_rotate_back() added | |
| ⇢ | A | grille_cipher_attack.mapping_text_position() added | |
| ⋮ | view more | ||