#!/usr/bin/env python3

import sys
import turtle

def read_file(file_name: str) -> list[tuple[int, str]]:
    with open(file_name, 'r') as inf:
        number_of_segments = int(inf.readline())
        segments: list[tuple[int, str]] = []
        for idx in range(number_of_segments):
            if idx + 1 != number_of_segments:
                (length_str, direction) = inf.readline().split()
            else:
                length_str = inf.readline()
                direction = 'F'

            length = int(length_str)

            segments.append((length, direction))

        return segments

def draw_segments(color: str, unit_length: float, segments: list[tuple[int, str]], thickness: int = 1):
    turtle.color(color)
    turtle.pensize(thickness)
    for length, direction in segments:
        turtle.forward(length * unit_length)
        if direction == 'L':
            turtle.left(90)
        elif direction == 'R':
            turtle.right(90)

def main(args: list[str]):
    if len(args) == 1:
        (input_file, ) = args
        output_file = None
    elif len(args) == 2:
        (input_file, output_file) = args
    else:
        print(f'Użycie: {sys.argv[0]} <plik_wejściowy> [<plik_wyjściowy>]')
        return

    input_segments = read_file(input_file)
    if output_file is not None:
        output_segments = read_file(output_file)
    else:
        output_segments = None

    unit_length = 10

    turtle.speed("fastest")
    turtle.setheading(90)

    draw_segments('black', unit_length, input_segments)

    if output_segments is not None:
        draw_segments('red', unit_length, output_segments, thickness=3)

    turtle.mainloop()

if __name__ == '__main__':
    main(sys.argv[1:])
