import copy import json import os import random def create_pairs_dict(lst: list[str]) -> dict[str, str]: result = {} lst_len = len(lst) if lst_len < 2: print("\033[1;31mList length should be at least 2!\033[0m") raise RuntimeError for i in range(lst_len - 1): result[lst[i]] = lst[i+1] result[lst[lst_len-1]] = lst[0] return result # Main input_file = "participants.json" output_file = "pairs.json" if os.path.isfile(input_file): print(f"\033[1;33mReading from {input_file}.\033[0m") with open(input_file, "r", encoding="utf-8") as f: participants_list = json.load(f) else: print("\033[1;31mNo input file found! Please create participants.json file.\033[0m") participants_list: list[str] = ["1", "2", "3", "4"] shuffled_list = copy.copy(participants_list) random.shuffle(shuffled_list) pairs = create_pairs_dict(shuffled_list) print(f"\033[1;33mWriting to {output_file}.\033[0m") with open(output_file, 'w', encoding='utf-8') as f: json.dump(pairs, f, ensure_ascii=False, indent=4) print("\033[1;32mFinished!\033[0m") print("\nResults:") for giver, receiver in pairs.items(): print(f"{giver} → {receiver}")