Tôi đang trong quá trình chuyển đổi phần mềm Tournament Organizer, cho phép tạo và thao tác các giải đấu Double Elimination, sử dụng mẫu thiết kế MVVM để có thể dễ dàng kiểm tra hơn. Trong khi làm như vậy, tôi đang tách ra khỏi 'mô hình' từ một số mã trong giao diện người dùng trực tiếp thao tác cấu trúc khung.Cấu trúc dữ liệu cho Double Elmination Tournament
Đây sẽ là lần lặp thứ ba của phần mềm mà tôi đã viết để xử lý các giải đấu. Đầu tiên được viết bằng PHP và lưu trữ dữ liệu trong cơ sở dữ liệu. Phiên bản thứ hai là phiên bản WPF mà tôi đã tạo, và nó lưu trữ dữ liệu trong bộ nhớ, và sau đó serializes nó vào một tệp XML. Tuy nhiên, trong cả hai phiên bản, có những khía cạnh của việc thực hiện mà tôi cảm thấy không sạch sẽ, và dường như họ phá vỡ luật DRY.
Nếu bạn đang tạo cấu trúc dữ liệu từ đầu để xử lý các dấu ngoặc kép, bạn sẽ làm như thế nào?
Lưu ý rằng không cần phải tự động tạo các dấu ngoặc theo thuật toán (tải từ một loại bỏ đôi được tạo trước với 4/8/16/32 người là cách tôi đang thực hiện ngay bây giờ), chỉ là trường hợp sử dụng chính của việc thiết lập người chiến thắng của trận đấu và 'tiến' họ qua khung.
Chỉnh sửa: Để làm rõ, cấu trúc dữ liệu cần xử lý các giải đấu loại bỏ đôi, vì vậy có khả năng, người thắng cuộc trong một trận đấu có thể sẽ cạnh tranh với người thua cuộc khác.
Thật không may, điều đó không xử lý các giải đấu loại bỏ hai lần: ( – FryGuy