Tôi đang chơi xung quanh với PyGame.
Bây giờ tôi đang cố gắng thực hiện một bản sao QIX .
Tôi có vòng lặp trò chơi của mình và tôi có thể di chuyển trình phát (con trỏ) trên màn hình.
Trong QIX, chuyển động của người chơi để lại dấu vết (đuôi) trên màn hình, tạo ra một đa tuyến.
Nếu đa tuyến với các ranh giới màn hình tạo ra một đa giác, khu vực được lấp đầy.
Làm thế nào tôi có thể thực hiện hành vi này?
Làm thế nào để lưu trữ đuôi trong bộ nhớ?
Làm thế nào để phát hiện khi nó xây dựng một hình dạng kín cần được lấp đầy?
Tôi không cần một giải pháp làm việc chính xác, một số gợi ý, tên algo sẽ rất tuyệt.
Khi bắt đầu, chỉ có đường viền màu xám, nơi người chơi có thể di chuyển con trỏ xung quanh.
- Kịch bản đầu tiên:
Người dùng di chuyển con trỏ của mình từ điểm A máng B, vẽ đa tuyến màu đỏ cho đến điểm C. Tại thời điểm này, do vượt qua biên giới, điểm A phải được kết nối với điểm C tự động, tạo ra một đa giác, cần được lấp đầy ( thứ màu cam đó trên bản vẽ của tôi). Việc điền vào đa giác rất đơn giản trong PyGame, bởi vì tôi cung cấp chuỗi các điểm và PyGame quan tâm đến phần còn lại.
- Kịch bản thứ hai:
Người dùng di chuyển trên đường viền tới điểm D, từ đó anh ta vẽ một đường thẳng đến điểm E. Bởi vì anh ta đang vượt qua đường thẳng của đa giác trước đó, và với các đường thẳng của anh ta và đường viền khác có thể tạo ra một đa giác khác. (Cái màu xanh lá cây).
- Kịch bản thứ ba:
Người chơi di chuyển xa hơn trên đa giác (anh ta có thể di chuyển trên các đường đa giác hiện có) và vẽ một đường từ điểm G đến điểm F. Ở đây một lần nữa, vì đường viền và các đường hiện có, nên điền vào một đa giác khác (đường màu xanh) .