```python=
def create_fleissner_grid(dimensions, forbidden_positions):
grid = [[' ' for _ in range(dimensions)] for _ in range(dimensions)]
for i in range(dimensions):
for j in range(dimensions):
if (i, j) not in forbidden_positions:
grid[i][j] = '#'
return grid
def rotate_clockwise(grid):
return list(zip(*grid[::-1]))
def rotate_counterclockwise(grid):
return list(zip(*grid))[::-1]
def encrypt_message(message, grid, rotation_direction):
encrypted_message = ''
dimensions = len(grid)
for char in message:
for i in range(dimensions):
for j in range(dimensions):
if grid[i][j] == '#':
encrypted_message += message[(i + j) % len(message)]
if rotation_direction == 'clockwise':
grid = rotate_clockwise(grid)
elif rotation_direction == 'counterclockwise':
grid = rotate_counterclockwise(grid)
return encrypted_message
# Exemple d'utilisation
message = "HELLO"
grid_dimensions = 5
forbidden_positions = [(1, 1), (2, 2)] # Exemple de positions interdites
rotation_direction = 'clockwise'
grid = create_fleissner_grid(grid_dimensions, forbidden_positions)
encrypted_message = encrypt_message(message, grid, rotation_direction)
print("Message encrypté:", encrypted_message)
###
def print_grid(grid):
for row in grid:
print(' '.join(row))
def encrypt_message(message, grid, rotation_direction):
encrypted_message = ''
dimensions = len(grid)
for char in message:
print_grid(grid) # Affichage de la grille avant chaque rotation
for i in range(dimensions):
for j in range(dimensions):
if grid[i][j] == '#':
encrypted_message += message[(i + j) % len(message)]
if rotation_direction == 'clockwise':
grid = rotate_clockwise(grid)
elif rotation_direction == 'counterclockwise':
grid = rotate_counterclockwise(grid)
return encrypted_message
# Exemple d'utilisation
message = "HELLO"
grid_dimensions = 5
forbidden_positions = [(1, 1), (2, 2)] # Exemple de positions interdites
rotation_direction = 'clockwise'
grid = create_fleissner_grid(grid_dimensions, forbidden_positions)
print("Grille initiale:")
print_grid(grid)
encrypted_message = encrypt_message(message, grid, rotation_direction)
print("\nMessage encrypté:", encrypted_message)
```